gitlab高级功能之CI/CD组件 - 实践(二)
上一篇主要讲解了CI/CD组件的原理,看起来稍微有一点枯燥,那么接下来给大家演示下如何使用。
案例
- 创建一个项目(README.md,template目录)
案例1
step1: 在template中新建yml文件,cat templates/test-stage.yml
说明:
1、创建变量变量stage,stage-2,stage-3,分别默认值为test,build,deploy
2、编写三个job
spec:
inputs:
stage:
default: test
stage-2:
default: build
stage-3:
default: deploy
---
component-job-1:
script:
- echo job 1
- env
stage: $[[ inputs.stage ]]
component-job-2:
script:
- echo job 2
- env
stage: $[[ inputs.stage-2 ]]
component-job-3:
script:
- echo job 3
- env
stage: $[[ inputs.stage-3 ]]
step2: 编写.gitlab-ci.yml文件
方式1: 三个变量使用默认值,表示引用里面的三个job
include:
- component: 192.168.31.100/ops/components/test-stage@main
# 因为使用的是默认的值,也可以忽略下一行的stages写法
stages: [build,deploy,post]
方式2: 三个变量使用定义不同的值,依然饮用里面的三个job
include:
- component: 192.168.31.100/ops/components/test-stage@main
inputs:
stage: part1
stage-2: part2
stage-3: part3
stages:
- part1
- part2
- part3
方式3: 只使用某个变量,即只引用某一个job。目前并支持这种行为,除非编写某个功能的job
案例2
step1: 在template中新建yml文件,cat templates/test-v1.yml
spec:
inputs:
name:
default: wangkaixuan
department:
default: cs
what:
default: support
stage:
default: pre
---
doing-what:
stage: $[[ inputs.stage ]]
script:
- your name is $[[ inputs.name ]],you are located in $[[ inputs.department ]],your daily work are doing $[[ inputs.what ]].
- env
step2: 编写.gitlab-ci.yml文件
include:
- component: 192.168.31.100/ops/components/test-stage@main
inputs:
stage: one
stage-2: two
stage-3: three
- component: 192.168.31.100/ops/components/test-v1@main
inputs:
name: wkx
what: "all do work"
stage: post
stages: [one,two,three,post]