【发布时间】:2020-10-10 04:12:21
【问题描述】:
我在 Github Actions 中有两个 ps1 脚本。 我的场景:
- 第一个脚本在构建之前执行
- 项目构建
- 第二个脚本在构建后执行。
我需要在第一个脚本中设置值并在第二个脚本中使用它。
所以我决定使用BUILD_NUMBER 环境变量并将其设置为10 作为默认值。
jobs:
Droid:
runs-on: windows-latest
env:
BUILD_NUMBER: "10"
在第一个脚本中,我尝试以多种方式设置此变量,但在第二个脚本中,BUILD_NUMBER 的值是 10。
我尝试设置它:
[Environment]::SetEnvironmentVariable($env:BUILD_NUMBER, $buildNumber, 'Machine')
$env:BUILD_NUMBER: '123'
但在第二个脚本中,我通过 $newName = "${env:BUILD_NUMBER}" 获得了 10 个值
Github Actions 端的完整代码:
name: CI
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches:
- 'master'
- 'develop'
- 'feature/*'
- 'rc/*'
pull_request:
branches:
- 'master'
- 'develop'
- 'feature/*'
- 'rc/*'
jobs:
Droid:
runs-on: windows-latest
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 'true'
BUILD_NUMBER: "10"
steps:
- uses: actions/checkout@v1
- name: Run a calculate version and set sign in password script
run: .\Scripts\CalculateVersionAndSetSignPassword.ps1
shell: powershell
# Build goes here. It is skipped by me for testing purposes
- uses: actions/checkout@v1
- name: Run a change apk name script
run: |
.\Scripts\ChangeApkName.ps1
shell: powershell
【问题讨论】:
-
您是否在这两个脚本之间重新启动?环境变量在启动时加载,因此如果您更改现有变量,则不必重新启动,但如果您创建新变量,则需要重新启动才能使变量可用。
-
@NekoMuseme 如果我理解正确的话,我似乎不会在这两个步骤之间重新开始
-
从 Powershell 初始化新的环境变量需要重启。尝试改用
cmd /c "setx name value" -
我不需要初始化一个新的。我需要为第一个脚本中的现有值设置一个值。我应该试试你的解决方案吗?
-
如果您要更改现有的,只需使用
$env:name = "value"而不是[Environment]::SetEnvironmentVariable($env:BUILD_NUMBER, $buildNumber, 'Machine')
标签: powershell environment-variables arguments github-actions