0

我正在尝试将 Github Actions 用于 CI。我在 GitHub 上的存储库中创建了一些秘密,并使用 git-secret 工具加密了源中的一些文件。最后,我为 github 写了 netx yml-script 作为 action


    build:

        runs-on: ubuntu-latest

        steps:

            - name: Checkout sources
              uses: actions/checkout@v2

            - name: Configure GPG Key
              uses: crazy-max/ghaction-import-gpg@v3
              with:
                gpg-private-key: ${{ secrets.GPG_SIGNING_KEY }}
                passphrase: ${{ secrets.SECRET_PWD }}
                git-user-signingkey: true
                git-commit-gpgsign: true

            - name: Reveal secrets
              env:
                SECRET_PWD: ${{ secrets.SECRET_PWD }}
              run: |
                sudo apt install git-secret                     
                git secret tell my@email.com                
                git secret reveal -p $(echo $SECRET_PWD | sed 's/./& /g')
            - name: Build images
              run: docker-compose build

我想这描述了下一个管道:

  1. 结帐当前分支
  2. 使用 PK(gpg 密钥?)和 PWD 安装 gpg 所需的工具
  3. 将带有 PK 电子邮件的用户添加到白名单
  4. 解密 .secret 文件
  5. 最后构建 docker 镜像。

我对吗?

我的问题是步骤 3-4。我在日志中有错误

> Setting up git-secret (0.2.3-1) ...
> Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
> done. my@email.com added as someone who know(s) the secret.
> cleaning up...
> Error: Process completed with exit code 1.

我已经在本地机器(linux)上检查了我的解决方案,它就像一个魅力。好吧,也许有人知道我在 yml-script 中的错误在哪里?

4

1 回答 1

0

我猜这个问题是“git secret tell”行。“告诉”步骤需要由已经有权透露秘密的其他人(您)提前完成。从文档中

现在通过运行 git secret tell persons@email.id 将此人添加到您的秘密仓库(这将是与公钥关联的电子邮件地址)

新添加的用户还不能读取加密文件。现在,使用 git secret reveal 重新加密文件;git secret hide -d,然后提交并推送新加密的文件。

看起来“git secret reveal”步骤失败了。在本地调用“git secret tell my@email.com”后,您是否重新加密并推送秘密文件?

在 github 操作本身中,您无需再次运行“tell”步骤。

于 2021-04-01T14:40:32.633 回答