
流水線編排
手冊分類

- 1. 禅道DevOps解決方案介紹
- 1.1 關于禅道DevOps解決方案
- 2. 安裝與升級
- 2.1 快速安裝
- 3. 代碼庫
- 4. 流水線
- 5. 掃描
- 6. 制品庫
- 6.1 管理制品庫
- 7. 應用
- 7.1 管理應用
- 8. 部署
- 9. 配置
- 10. 命令行工具
- 10.1 安裝及升級
- 10.2 status子命令說明
條件判斷 分享鏈接 /book/devops/1514.html
作者:趙紅梅
最后编辑:赵红梅 于 2024-10-29 14:42:07
浏覽量:2081
本篇目錄
條件判斷指的是流水线中步驟的運行條件。
條件判斷中有很多變量可以使用。
tip 提示
- 每個倉庫可以創建多條流水線。
- 爲觸發器(如推送、合並請求和新建標簽)創建流水線,可以減少對條件的需求。
以下是支持的條件比較操作符:
類型 | 操作符 |
---|---|
比較 |
== , !=
|
邏輯判斷 |
not , and , or
|
正則匹配 |
matches
|
字符串 |
contains , startsWith , endsWith
|
以下是支持的函數:
類型 | 語法 |
---|---|
總是執行 |
always()
|
故障時 |
failure()
|
下面的流水線示例,當目標分支是main
時,捕獲合並請求事件,運行test
步驟:
kind: pipeline
spec:
stages:
- type: ci
spec:
steps:
- name: test
type: run
when: |
build.event == "pull_request"
and
build.target == "main"
spec:
container: ruby
script: |-
bundle install --jobs=3 --retry=3
rake
下面的这个條件判斷,当非main
分支的代碼,觸發合並請求事件時:
when: |
build.event == "pull_request"
and
build.target != "main"
下面的示例,僅在build.action合並請求創建後,才觸發:
when: build.action == "pullreq_created"
分支判斷
限制在哪个目標分支,執行流水線。
下面的示例,流水線的 build
步驟,只在目標分支名是 main
, 或以 feature/
開頭時觸發:
kind: pipeline
spec:
stages:
- type: ci
spec:
steps:
- name: build
type: run
when: |
build.target == "main"
or
build.target startsWith "feature/"
spec:
container: golang
script: |-
go build
go test
條件判斷可以通过正则表達式来匹配,效果一样:
when: build.target matches "main|feature/.*"
事件
設置基于哪些事件執行流水線。
下面的示例,只有當手動觸發流水線時,才執行clean cache
步驟:
kind: pipeline
spec:
stages:
- type: ci
spec:
steps:
- name: clean cache
type: run
when: build.event == "manual"
spec:
container: node:18
script: |-
npm cache clean --force
引用
基于Git 引用,限制流水線的執行。
Git引用(Git reference)它指的是指向某个特定对象(通常是提交、分支或标签)的指针,幫助用户在版本控制中追踪和管理代碼的历史变化。这个概念在Git的操作中非常重要,因爲它涉及到如何定位和引用不同的版本或分支。
例如,当你在Git中创建一个分支时,这个分支就是一个“Reference”,它指向某个特定的提交。这使得开发者能够轻松切换、比較和合并不同的代码版本。
下面的示例,僅當分支名是以 feature-
開頭,或創建tag時觸發build
步驟:
kind: pipeline
spec:
stages:
- type: ci
spec:
steps:
- name: build
type: run
when: |
build.ref startsWith "refs/heads/feature-"
or
build.ref startsWith "refs/tags/"
spec:
container: golang
script: |-
go build
go test
狀態
当流水线的狀態符合条件时,触发相关的步驟。
下面的示例,僅當test
步驟失败时,触发 notify
步驟:
kind: pipeline
spec:
stages:
- type: ci
spec:
steps:
- name: test
type: run
spec:
container: gradle:jdk10
script: |-
gradle assemble
gradle check
- name: notify
type: plugin
when: failure()
spec:
name: slack
inputs:
webhook: ${{ secrets.get("slack_webhook") }}
-
禅道産品
禅道開源版 禅道企業版 禅道旗艦版 禅道IPD版 -
核心功能
産品管理 項目管理 質量管理 效能管理 -
使用文檔
基本版手冊 企業版手冊 旗艦版手冊 IPD版手冊 開發中心手冊 -
幫助中心
积分問答 常見問題 論壇交流 使用視頻 Gitee GitHub -
關于我們
關于我們 禅道軟件 最新動態 禅道活動 -
禅道社區
禅道博客 積分排行 積分商城 禅道書院 -
聯系方式
聯系人:高麗亞 電話:17667930330 微信:17667930330 Q Q:3645260865北京、上海、深圳分部
友情鏈接:
ZTF自動化測試框架
ZenData測試數據生成器
喧喧IM
敏捷開發
敏捷咨詢
測試窩
悅庫網盤
Ledge知識平台
渠成軟件
ZDOO全協同企業管理軟件
融管理社區
ZenDAS數據分析工具
ZenShot跨平台截圖工具
飛信釘即時通訊解決方案
項目管理
IPD學習網
PMP百科網
艾體驗
創無記2049