GitHub 操作:使用 PowerShell 将环境变量传递到操作中

Air*_*475 5 powershell environment-variables github-actions

我正在尝试构建将在 PowerShell 中运行的工作流。我正在为我的分支名称设置一个环境,以便在检出不同存储库的步骤中使用。

run: |
  $branchName = $Env:GITHUB_REF -replace "refs/heads/", ""
  echo "CURRENT_BRANCH=${branchName}" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
Run Code Online (Sandbox Code Playgroud)

在后面的步骤中,我试图传入变量:

- name: Checkout repo  
  uses: actions/checkout@v2
  with:
    repository: 'MyOrg/MyRepo'
    ref: ${env:CURRENT_BRANCH}
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的格式,包括大括号,但我一直从构建中获取输出,该输出显示该确切文本作为路径。我不确定如何对其进行评估。
当我这样做时, ${{ env:CURRENT_BRANCH }}我收到以下错误:

工作流无效。.github/workflows/publish.yml(第 54 行,第 14 列):意外符号:'env:CURRENT_BRANCH'。位于表达式中的位置 1:env:CURRENT_BRANCH

Mar*_*tek 7

要在 GitHub Actions 工作流程中引用给定上下文(env在本例中)的变量,我们必须使用点 ( .) 字符,但您使用了冒号 ( :)。要修复上述错误,应调整工作流程:

- name: Checkout repo  
  uses: actions/checkout@v2
  with:
    repository: 'MyOrg/MyRepo'
    ref: ${{env.CURRENT_BRANCH}}
Run Code Online (Sandbox Code Playgroud)

此外,您不必检测当前分支并将其传递给结账操作。actions/checkout@v2默认情况下将使用当前分支。所以你只需要拥有:

- name: Checkout repo  
  uses: actions/checkout@v2
- name: Next Step
[...]
Run Code Online (Sandbox Code Playgroud)