關鍵字介紹
script 由Runner執行的Shell腳本。 image 使用docker鏡像, image:name service 使用docker services鏡像, services:name before_script 執行作業前運行的腳本 after_script 作業完成后運行的腳本 stages 定義管道中的步驟,依次運行 stage 定義管道中步驟的作業段 only 指定作業限制only:refs,only:kubernetes,only:variables,和only:changes tags 指定執行作業的runner allow_failure 允許job失敗 when 什么時候開始工作, on_success 只有當前一個階段的所有工作都成功時(或者因為它們被標記而被認為是成功的allow_failure)才執行工作 。這是默認值。 on_failure 僅當前一階段的至少一個作業失敗時才執行作業。 always 無論先前階段的工作狀態如何,都可以執行工作。 manual 手動執行作業 delayed 延遲作業。后面跟start_in,start_in 30minutes(延遲30分鍾),不加單位,默認為秒。最長可延遲1小時。
environment 作業部署到的環境名稱 #暫未搞清 cache key:"$CI_JOB_STAGE-$CI_COMMIT_REF_SLUG" #為每分支,每步驟啟用緩存 artifacts job成功時附加到作業的文件或目錄 dependencies 此job依賴其他jobz,主要作用於作業優先級 converage 給定作業代碼覆蓋率設置 retry 在發生故障時,可以自動重試作業的次數。 parallel 應該並行運行多少個作業實例 trigger 定義下游管道觸發器 include 允許此作業包含外部YAML extends 此作業將繼承的配置項 pages 上傳作業結果用於gitlab pages variables 作業級別定義作業變量
簡單使用案例
runner的執行方式為shell的簡單示例。
1 cache: 2 key:"$CI_JOB_STAGE-$CI_COMMIT_REF_SLUG" #為每分支提供緩存 3 paths: 4 - node_modules #緩存哪些文件/文件夾 5 - bower_components 6 before_script: 7 -echo "執行前運行腳本" 8 after_script: 9 -echo "執行后運行腳本" 10 stages: #設置步驟有哪些,常用三大塊,創建,測試,發布 11 -build 12 -test 13 -deploy 14 Job1: #設置某一步的運行工作,每個步驟可有多個job同步進行,也可設置dependencies限制 15 stage:build #此job屬於哪個步驟 16 script: 17 -echo "go go go" 18 only: 19 -master #哪個分支觸發 20 tags: 21 -share #指定runner,注冊runner時填寫的tag 22 test: 23 stage:test 24 script: 25 -echo "測試開始" 26 only: 27 -master 28 tags: 29 -share 30 deploy: 31 stage:deploy 32 when: 33 - manual #上面有解釋 34 script: 35 -echo "部署開始" 36 only: 37 -master 38 tags: 39 -share