流水线编排
手册分类
- 1. 禅道DevOps解决方案介绍
- 1.1 关于禅道DevOps解决方案
- 2. 安装与升级
- 2.1 快速安装
- 3. 应用
- 3.1 管理应用
- 4. 代码库
- 5. 流水线
- 6. 制品库
- 6.1 管理制品库
- 7. 部署
- 8. DevOps设置
- 9. 命令行工具
- 9.1 安装及升级
- 9.2 status子命令说明
变量 分享链接
作者:赵红梅
最后编辑:赵红梅 于 2024-10-29 14:45:46
浏览量:152
在流水线中,变量可以在三个不同的层级设置:
- 流水线层级(Pipeline Level):流水线环境变量对于流水线中的所有运行步骤都是可用的。
- 阶段层级(Stage Level):阶段环境变量对于该阶段中的所有运行步骤可用。每个阶段可以有自己独立的环境变量,这些变量不会影响到其他阶段。
- 步骤层级(Step Level):运行步骤的环境变量仅在该步骤中可用。
需要注意的是,当变量名称相同时,不同层级的变量会按照优先级进行解析,优先级顺序为:步骤 > 阶段 > 流水线 。步骤中的变量会覆盖阶段中的变量,而阶段中的变量又会覆盖流水线中的变量。这种机制使得在复杂的流水线配置中,开发者能够精确控制变量的使用和影响。
流水线层级(Pipeline Level)
流水线环境变量对于流水线中的所有运行步骤都可用。
kind: pipeline
spec:
options:
envs:
GOOS: linux
GOARCH: amd64
stages:
- type: ci
spec:
steps:
- name: test 1.20
type: run
spec:
container: golang:1.20
script: |
go build
go test
- name: test 1.21
type: run
spec:
container: golang:1.21
script: |
go build
go test
阶段层级(Stage Level)
阶段环境变量对于该阶段中的所有运行步骤可用。
kind: pipeline
spec:
stages:
- type: ci
spec:
envs:
GOOS: linux
GOARCH: amd64
steps:
- name: test 1.20
type: run
spec:
container: golang:1.20
script: |
go build
go test
- name: test 1.21
type: run
spec:
container: golang:1.21
script: |
go build
go test
步骤层级(Step Level)
运行步骤的环境变量仅在该步骤中可用:
kind: pipeline
spec:
stages:
- type: ci
spec:
steps:
- name: test
type: run
spec:
container: golang
envs:
GOOS: linux
GOARCH: amd64
script: |
go build
go test
后台步骤也支持环境变量:
kind: pipeline
spec:
stages:
- type: ci
spec:
steps:
- name: database
type: background
spec:
container: mariadb
envs:
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
MYSQL_DATABASE: test
- name: test
type: run
spec:
container: mariadb
script: |-
sleep 15
mariadb -u root -h database --execute="SELECT VERSION();"