尝试将 GitHub secret 作为参数传递给 powershell 脚本,但在执行工作流程时获取 ***
并且失败:
- name: Connecting to shared drive
env:
username: ${{secrets.TEST_USERNAME }}
password: ${{secrets.TEST_PASSWORD }}
run: ${{ github.workspace }}\Connect-Drive.ps1 ${{ env.username }} ${{ env.password }}
执行时出现此错误:
The term '***' is not recognized as a name of a cmdlet, function, script file, or executable
最佳答案
关于那些星号***
,根据Accessing your secrets :
Warning: GitHub automatically redacts secrets printed to the log ...
因此,这些 secret 会自动在日志中进行编辑。
使用 env
将 secret 设置为环境变量后,您可以直接使用 $Env:<variable>
syntax而不是使用${{ env.variable }}
:
- name: Connecting to shared drive
env:
username: ${{ secrets.TEST_USERNAME }}
password: ${{ secrets.TEST_PASSWORD }}
run: |
"$Env:GITHUB_WORKSPACE\Connect-Drive.ps1" "$Env:username" "$Env:password"
需要double quotes左右$Env:<variable>
可扩展。
请参阅Default environment variables对于 GITHUB_WORKSPACE
.
如果您确实使用 env
context ,请确保使用引号。在这种情况下,最好使用单引号,因为这些值可能包含可由 shell 扩展的文字。请参阅Quoting Rules for Powershell 7.2了解更多详细信息,GHA 托管的 Windows 运行者有 Powershell 7.2.10 preinstalled .
关于powershell - 如何将 GitHub secret 作为参数传递给 powershell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76008500/