代码之家  ›  专栏  ›  技术社区  ›  joesan

在GitHub操作中使用Shell脚本中的环境变量

  •  0
  • joesan  · 技术社区  · 4 年前

    我有一个项目,我正在使用GitHub Actions for CI/CD。我有个shell脚本,我想从Actions yml中注入环境变量。以下是我目前所掌握的:

      - name: docker-push
        env:
          USER: joesan
          SOME_GITHUB_REPO_NAME: github-repo-name
          GH_REPO: github.com/$USER/$SOME_GITHUB_REPO_NAME
        run: |
          echo "Running sbt assembly"
          echo $GITHUB_REF
          echo "Pushing tag into Docker Registry"
          sh ./scripts/tag_deployment.sh
    

    在tag_deployment.sh中,我尝试使用这些变量:

    ....
    ....
    git clone https://${GH_REPO}
    cd "${SOME_GITHUB_REPO_NAME}"
    ....
    ....
    

    但我看到当操作运行时,它不会打印出设置的内容!

    Cloning into '$SOME_GITHUB_REPO_NAME'...
    fatal: unable to access 'https://github.com/$USER/$SOME_GITHUB_REPO_NAME/': The requested URL returned error: 400
    

    如何将这些环境变量正确地注入到我的shell脚本中?

    0 回复  |  直到 4 年前
        1
  •  0
  •   joesan    4 年前

    从GitHub文档中理解起来并不直观。我设法通过全局移动环境变量来解决这个问题,如下所示:

    env:
      USER: joesan
      DEPLOYMENT_REPO_NAME: some-repo-name
    

    然后在我的其他工作定义中使用它,如下所示:

      - name: docker-push
        env:
          GH_REPO: github.com/${{ env.USER }}/${{ env.DEPLOYMENT_REPO_NAME }}