从 Github Actions 向 .ps1 脚本传递变量参数不起作用

S. *_*nyk 5 powershell arguments environment-variables github-actions

我需要使用 Github Actions 将分支名称作为参数传递给 .ps1 脚本。Github 操作部分:

    runs-on: windows-latest
    env:
      DOTNET_CLI_TELEMETRY_OPTOUT: 'true'

    steps:
    - name: Extract branch name
      shell: bash
      run: echo "${GITHUB_REF}"
      id: extract_branch

    - uses: actions/checkout@v1
    - name: Run a one-line script
      run: .\Scripts\my_script.ps1 -branch_name ${GITHUB_REF}
      shell: powershell
Run Code Online (Sandbox Code Playgroud)

.ps1部分:

##############################################
#Script Title: Download File PowerShell Tool
#Script File Name: Download-File.ps1 
#Author: Ron Ratzlaff  
#Date Created: 4/21/2016 
##############################################

#Requires -Version 3.0
param($branch_name)


"Current branch"
$branch = git rev-parse --abbrev-ref HEAD
"$branch"
"${branch}"
"${GITHUB_REF}"
"$GITHUB_REF"
"$branch_name"
"{branch_name}"
Write-Host $branch_name
Run Code Online (Sandbox Code Playgroud)

我显示了 .ps1 部分,以便使用不同的显示方式显示 .ps1 脚本内部的分支名称。因为分支名称取决于很多脚本逻辑。因此,它不显示任何内容。但:

  1. run: echo "${GITHUB_REF}"部分Extract branch name完全显示分支名称
  2. 如果我像这样传递硬编码参数,run: .\Scripts\my_script.ps1 -branch_name customtext它将被传递到脚本并以不同的方式成功显示。

如何GITHUB_REF在.ps1中实现传递值并读取/显示它?

Luc*_*cas 5

Powershell 中访问环境变量与 bash 不同,需要在其前面加上env:. 对于您的脚本,您可以使用 访问引用$env:GITHUB_REF

run或者,您可以通过替换属性来使用 GitHub Actions 公开的模板.\Scripts\my_script.ps1 -branch_name ${{github.ref}}来填充branch_name参数。