【问题标题】:GitHub Action: Pass Environment Variable to into Action using PowerShellGitHub 操作:使用 PowerShell 将环境变量传递给操作
【发布时间】:2021-02-16 13:58:47
【问题描述】:

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

run: |
  $branchName = $Env:GITHUB_REF -replace "refs/heads/", ""
  echo "CURRENT_BRANCH=${branchName}" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append

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

- name: Checkout repo  
  uses: actions/checkout@v2
  with:
    repository: 'MyOrg/MyRepo'
    ref: ${env:CURRENT_BRANCH}

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

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

【问题讨论】:

    标签: powershell environment-variables github-actions


    【解决方案1】:

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

    - name: Checkout repo  
      uses: actions/checkout@v2
      with:
        repository: 'MyOrg/MyRepo'
        ref: ${{env.CURRENT_BRANCH}}
    

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

    - name: Checkout repo  
      uses: actions/checkout@v2
    - name: Next Step
    [...]
    

    【讨论】:

    • 第二点:我正在检查两个存储库。第一个是执行动作的地方,它将选择正确的分支。但是,第二个存储库使用Master。这是你所期望的吗?
    • 我知道我以前尝试过,但也许我搞砸了其他事情。这次奏效了!行动令人筋疲力尽。
    【解决方案2】:

    我在其他地方找到的一个解决方案并将其作为一个选项发布在这里,尽管我想知道在我的场景中是否可能使用环境变量。 解决方案是使用步骤中的Outputs

    - name: Output Variables
      id: SetVariables
      run: |
        $branchName = $Env:GITHUB_REF -replace "refs/heads/", ""
        echo "Branch: ${branchName}"
        echo "::set-output name=branch::${branchName}"
    
    - name: Checkout Repo 2
      uses: actions/checkout@v2
      with:
        repository: 'MyOrg/MyRepo'
        ref: ${{ steps.SetVariables.outputs.branch }}
    

    【讨论】:

      【解决方案3】:

      现在这是一种工作方法,more info here:

      echo "action_state=yellow" >> $GITHUB_ENV

      下面的那个不再适合我。一些研究表明这是由于security issue

      echo "::set-output name=action_state::yellow"

      【讨论】:

        猜你喜欢
        • 2022-06-16
        • 2021-03-01
        • 2020-02-03
        • 2022-11-10
        • 2021-06-18
        • 1970-01-01
        • 2021-11-06
        • 2021-10-10
        • 1970-01-01
        相关资源
        最近更新 更多