【问题标题】:Github return empty string as secrets while running actionsGithub 在运行操作时返回空字符串作为秘密
【发布时间】:2021-08-30 11:17:20
【问题描述】:

当我这样做时

${{ secrets.MY_SECRET }}

它返回空字符串,

我是提交更改的人及其我的存储库,因此在授权机密方面应该没有问题,并且还克隆了它而不是分叉,

这就是我的行动工作的样子

build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        
      - name: Setup Node.js environment
        uses: actions/setup-node@v2.1.5

      - name: Download Modules
        run: npm ci
      - name: Test
        env:
          TEST_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          TEST_SECRET: ${{ secrets.TEST_SECRET }}
        run: |
          echo ${#TEST_GITHUB_TOKEN}
          echo ${#TEST_SECRET}

      - name: React Build 
        run:  npm run build
        env:
          CI: true
          REACT_APP_FIREBASE_API_KEY: ${{ secrets.REACT_APP_FIREBASE_API_KEY }}
          REACT_APP_PIXABAY_API_KEY: ${{ secrets.REACT_APP_PIXABAY_API_KEY }}
          REACT_APP_TEST: 'TESTING'

      - name: Upload a Build Artifact
        uses: actions/upload-artifact@v2.2.3
        with:
          name: docs
          path: './build'

TEST_GITHUB_TOKEN 返回 40

并且 TEST_SECRET 返回 0

并且 REACT_APP_TEST 环境变量按预期工作,这意味着秘密是没有被传递的东西

GitHub Repository

【问题讨论】:

  • @GuiFalourd ${#var} 打印出var 的长度,这应该不是问题。
  • 只是为了确定:您已将TEST_SECRET 添加到您的存储库,是吗? GITHUB_TOKEN 的特殊之处在于它是预定义的。
  • 您是否尝试过在启用debug logging 的情况下运行?
  • 另外,您在问题中混淆了MY_SECRETTEST_SECRET,请确保使用正确的。
  • 您是否阅读了以下问题并检查了您使用的是环境密码还是存储库密码stackoverflow.com/questions/66521958/…

标签: github yaml github-actions github-secret


【解决方案1】:

TL;DR 使用正确的环境访问机密

基本上,您可以在两个地方放置您的秘密:环境秘密和存储库秘密, 存储库机密会自动提供给作业,但要访问环境,您必须明确告诉它像这样传递环境

jobs:
  myJob:
    environment: myEnironmentName   
    runs-on: ubuntu-latest
  • 您可以使用任何操作系统

前往

repo >> 设置 >> 秘密

并检查您的机密是否存储在环境机密或回购机密中,如果它们存储在环境机密中,则您必须像上面的代码中那样显式访问它。

我非常感谢所有评论并帮助找到答案的社区成员, 谢谢:)

【讨论】:

    猜你喜欢
    • 2021-02-11
    • 2021-05-12
    • 1970-01-01
    • 2020-09-19
    • 2022-01-07
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多