github 操作未收到机密

npm*_*ges 17 github-actions

我看过其他答案,但似乎都不起作用。我想我只是想用 Github Actions 做一些非常简单的事情。只需让 access_key 可用于我的 github 操作,而不将其放入我的 github 存储库中。所以我看到我们可以创建应该action secrets传递给 github 操作的内容。我也明白我们不能只记录安全密钥,所以我希望在尝试记录时改为记录密钥。我一生都无法弄清楚为什么秘密不存在,但它们是空的。即使我在脚本中使用它们,它们似乎也没有任何价值。这是我相关的工作流程******

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
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我发现GITHUB_TOKEN确实如此***,这是有道理的。但是我添加到存储库设置 > 秘密 > 操作秘密中的所有秘密,它们只是空白,而不是,如果我尝试通过其也空白***使用它们。${{ secrets.AWS_ACCESS_KEY }}

我的仓库是公开的,我也在努力掌握。我对我的存储库拥有管理员权限。

foz*_*foz 40

就我而言,我没有引用包含脚本中秘密的环境。最终在文档中找到了这一点,但令人难以置信的是它只返回空白秘密而不是引发某种错误消息。

jobs:
  myjobname:
    runs-on: ubuntu-latest
    environment: myenvironment  # THIS WAS MISSING
    steps:
      # The steps in the action
Run Code Online (Sandbox Code Playgroud)

文档链接:https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idenvironment

  • 谢谢你!!我不敢相信秘密这么难使用。我花了2个小时。做得更好 GitHub (2认同)
  • 让我免于被困一整天!天啊! (2认同)

Lar*_*röm 6

就我而言,我尝试在包含的工作流程文件(来自同一存储库)中使用机密。只有当你使用secrets: inherit. 例如:

jobs:
  build:
    uses: ./.github/workflows/.build-application.yml
    # The following is required to use secrets in .build-application.yml:
    secrets: inherit
Run Code Online (Sandbox Code Playgroud)

请参阅文档https://docs.github.com/en/actions/using-workflows/reusing-workflows#passing-inputs-and-secrets-to-a-reusable-workflow


npm*_*ges 5

好吧,看起来有不同种类的秘密。我添加的Action Secrets内容对我来说很有意义。我想要行动的秘密。还有另一个部分Environment Secrets,当我把它放进去时,它就起作用了。有点令人困惑。


Raj*_*aju 1

我发现的一个大问题是,你试图获取工作之外的秘密。从这里的官方文档来看,是通过加密在步骤级别完成的。