Azure Pipeline YAML文件中如何修改变量?输出未达预期
解决YAML中变量值动态修改的问题
在GitHub Actions这类CI/CD的YAML配置里,直接修改variables定义的静态变量行不通——这类变量在workflow启动时就已被解析固定。要实现先输出test再输出uat,得用环境变量动态覆盖的方式,具体步骤如下:
- 先定义初始变量(静态变量或环境变量均可)
- 在后续步骤中通过
GITHUB_ENV环境文件更新变量值
示例配置一(用env定义初始值)
name: Test Variable Update on: [push] env: myvariable: test # 初始值设为test jobs: build: runs-on: ubuntu-latest steps: - name: 输出初始值 run: echo ${{ env.myvariable }} # 输出test - name: 更新变量值为uat run: echo "myvariable=uat" >> $GITHUB_ENV - name: 输出更新后的值 run: echo ${{ env.myvariable }} # 输出uat
示例配置二(兼容原variables定义)
如果你的原配置是用variables字段定义的变量,也可以用同样方式覆盖:
name: Test Variable Update on: [push] variables: myvariable: test jobs: build: runs-on: ubuntu-latest steps: - name: 输出初始变量值 run: echo ${{ variables.myvariable }} # 输出test - name: 覆盖变量为uat run: echo "myvariable=uat" >> $GITHUB_ENV - name: 输出覆盖后的值 run: echo ${{ env.myvariable }} # 输出uat
注意:一旦用GITHUB_ENV设置了环境变量,后续步骤需要用${{ env.myvariable }}引用,原${{ variables.myvariable }}的静态值不会被修改。
内容的提问来源于stack exchange,提问作者Arsany
相关产品推荐
相关产品推荐

