Github Actions未收到密钥

16

我看过其他的SO答案,但似乎都不起作用。我想我只是试图用Github Actions做一些非常简单的事情。只需使一个access_key可用于我的github action,而不将其放入我的github仓库中。因此,我看到我们可以创建action secrets应该传递给github action。我也知道我们不能为了安全性而记录机密密钥,所以我期望在尝试日志记录时出现***。但是,我无论如何都想不出为什么这些机密信息不是***而是空的。即使在我的脚本中使用它们时,它们也似乎没有任何价值。以下是我工作流程相关的内容:

name: CI
on:
  push:
    branches:
      - master
env:
  AWS_S3_BUCKET: ${{ secrets.AWS_PRODUCTION_BUCKET_NAME }}
  AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
  AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  AWS_REGION: ${{ secrets.AWS_REGION }}
jobs:
  deploy:
    runs-on: ubuntu-latest
    env:
      CI: true
    strategy:
      matrix:
        node-version: [14.x]
    steps:
    - uses: actions/checkout@v1
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}
        publish_dir: ./build
    - name: Test Env
      run: |
        echo 'The GitHub Action Secret will be masked:  '
        echo ${{ secrets.GITHUB_TOKEN }}
        echo 'Testing secret if its masked: '
        printenv
当我运行这段代码时,我发现GITHUB_TOKEN确实是***,这很合理。但是我添加到存储库设置 > 密钥 > 操作密钥的所有密钥都是空白的,而不是 ***,如果我尝试通过 ${{ secrets.AWS_ACCESS_KEY }} 使用它们,也是空白的。我的存储库是公开的,我也有权限推送到主分支。

我在这里执行printenv,因为我已经尝试过${{ secrets.AWS_ACCESS_KEY }},我只想看看环境变量的样子。 - npm packages
4个回答

38

1
谢谢!!我简直不敢相信使用密钥这么难。花了我两个小时。GitHub应该做得更好。 - cdeutsch
1
救了我一整天的困境!天啊! - Satch
另外,另一个潜在的原因是“当从一个派生的代码库触发工作流时,秘密信息不会传递给运行器”。当尝试从一个派生版本向组织的代码库推送更改时,就会出现这个问题。 - undefined

5

看起来有不同种类的密钥。我正在添加操作密钥,这对我来说很有意义。我需要用于操作的密钥。还有另一部分叫做环境密钥,当我将其放入其中时,它可以工作。有点令人困惑。


5

这正是发生在我的那一边的事情。谢谢你,刚刚为我节省了很多时间! - Hrafn

1

我看到的一个大问题是你正在尝试在作业之外访问这些机密。从官方文档这里可以看出,这是通过加密步骤来完成的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接