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

时间:2021-03-25 06:28:57

标签: shell github-actions

我有一个项目,我将 GitHub Actions 用于 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 脚本中?

1 个答案:

答案 0 :(得分:0)

从 GitHub 文档中理解并不是那么直观。我设法通过像这样全局移动环境变量来解决这个问题:

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

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

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