Bitbucket自定义流水线:如何将用户变量传递至definitions步骤?
解决自定义流水线变量传递至复用步骤的脚本使用问题
问题分析
你当前的问题出在复用步骤的脚本中多余的export操作——在Bitbucket Pipeline中,步骤variables字段定义的变量会自动注入为环境变量,无需手动导出,反而多余的export可能导致变量值被覆盖为空。
修正后的代码
1. 定义复用步骤(definitions部分)
definitions: steps: - step: &TagVersion trigger: manual script: - echo "VERSION $VERSION" # 直接使用已注入的环境变量
2. 自定义流水线(custom部分)
custom: run_custom: - variables: - name: VERSION - step: script: - echo "starting" - parallel: - step: <<: *TagVersion variables: VERSION: $VERSION # 传递流水线级别的VERSION变量到复用步骤
关键说明
- 步骤级别的
variables会自动成为当前步骤运行环境的环境变量,脚本可以直接引用$VERSION。 - 无需在脚本中执行
export VERSION=$VERSION,这一步会尝试将当前脚本上下文的$VERSION(此时可能未被正确解析或为空)重新导出,反而覆盖了已注入的正确变量值。
内容的提问来源于stack exchange,提问作者Kelly
相关产品推荐
相关产品推荐

