如何使用 [=10th=] 工作流的二进制文件设置 Github Secret?

How to Set Gihub Secret with a Binary File for Github Workflow?

我想将我的 API 配置文件 (binary.file) 添加到 Github 秘密 (MY_BINARY_SECRET)。然后在工作流中再次读取并写入binary.file

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install System
        run: |
          sudo apt-get update
          sudo apt-get install -y pip python3.8-venv libcurl4-openssl-dev

      - name: Set up configurations
        shell: bash
        run: |
          echo "${{ secrets.MY_BINARY_SECRET }}" > binary.file
          python3 .... # the python script will need binary.file to complete authentication  

然而,我尝试了很多小时以不同的方式将二进制内容复制到 Github Secret,但都失败了。我尝试了 pbcopylesscat。有谁知道如何通过 github 操作中的 Github Secret 写入二进制文件?或者更好的解决方案?

谢谢!

(扩展我的评论):

使用base64将二进制字符串编码为文本并将其解码回二进制。这是非常标准的技巧。

首先,在家编码:

echo "$MY_BINARY_SECRET" | base64 --wrap=0 > secret.b64

--wrap=0 使输出文本为一长行;对以下 echo 有用。

上传文本文件 secret.b64 作为 GitHub 的秘密。使用

解码
echo -n "${{ secrets.MY_BINARY_SECRET }}" | base64 --decode > binary.file

建议:先尝试本地解码,再与原字符串进行比较。必须一样。