官方文檔
https://docs.gitlab.com/ce/ci/yaml/README.html
通用示例
stages: #定義步驟列表類型山宾,從上往下執(zhí)行
- build
- release
build: #job名字
stage: build #和stages對(duì)應(yīng)的名字
image: i.harbor.xxxx.com/public/node:10-alpine-node-sass #使用的鏡像,如果不寫落君,就是注冊(cè)runner默認(rèn)鏡像
script: #鏡像執(zhí)行命令一忱,這里我構(gòu)建node的東西
- npm install && npm run build
- ls -al
artifacts: #構(gòu)建完成后眯娱,構(gòu)建的產(chǎn)物(目錄或者文件),丟給后面的步驟
paths:
- .nuxt/
- .
tags: #選擇runner的tag
- rancher
- dev
only: #構(gòu)建選擇,如下弛作,只選擇develop的分支構(gòu)建
- develop
release:
stage: release
before_script: #執(zhí)行前執(zhí)行
- eval $(ssh-agent -s)
- echo "$HIFIVE_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
image: i.harbor.xxxx.net/public/ssh-client:rsync
script:
- ssh -p 22 -o StrictHostKeyChecking=no root@1.1.1.1 -- "pm2 del hifive-openmusic-web|true"
- rsync -azP --exclude=".gitignore" --exclude=".git" --delete ./ root@1.1.1.1:/data/wwwroot/hifive-openmusic-web/
- ssh -p 22 -o StrictHostKeyChecking=no root@1.1.1.1 -- "ls -al /data/wwwroot/hifive-openmusic-web/"
- ssh -p 22 -o StrictHostKeyChecking=no root@1.1.1.1 -- "cd /data/wwwroot/hifive-openmusic-web/ && pm2 start npm --watch --name hifive-openmusic-web -- run start "
tags:
- rancher
- dev
only:
- develop
when: on_success #只有當(dāng)上一個(gè)job成功才執(zhí)行,默認(rèn)就是on_success
name | 說(shuō)明 |
---|---|
script | 由Runner執(zhí)行的Shell腳本馒稍。 |
image | 使用docker鏡像皿哨。也可用:image:name和image:entrypoint。image: centos:7 |
services | 使用docker services圖像纽谒。也可用:services:name证膨,services:alias,services:entrypoint鼓黔,和services:command央勒。 |
before_script | 覆蓋在作業(yè)之前執(zhí)行的一組命令。 |
after_script | 覆蓋作業(yè)后執(zhí)行的一組命令澳化。 |
stages | 定義管道中的階段崔步。列表 |
stage | 定義作業(yè)階段(默認(rèn)值:) test。 |
only | 創(chuàng)建作業(yè)時(shí)限制(常用于分支選擇)缎谷。也可用:only:refs井濒,only:kubernetes,only:variables列林,和only:changes瑞你。常見(jiàn)用法:only: - branches #所有分支 - tags - /^issue-.*$/ #正則匹配issue-的分支 - master #master分支 |
except | 在未創(chuàng)建作業(yè)時(shí)限制(常用于排除分支)。也可用:except:refs希痴,except:kubernetes者甲,except:variables,和except:changes润梯。 |
tags | 用于選擇Runner的標(biāo)簽列表常用范例:tags: - runner - dev |
allow_failure | 讓工作失敗过牙。失敗的作業(yè)無(wú)助于提交狀態(tài)。 |
when | 什么時(shí)候開(kāi)始工作纺铭。參數(shù): on_success:只有當(dāng)前一個(gè)階段的所有工作都成功時(shí)(或者因?yàn)樗鼈儽粯?biāo)記而被認(rèn)為是成功的allow_failure)才執(zhí)行工作 寇钉。這是默認(rèn)值。 on_failure:僅當(dāng)前一階段的至少一個(gè)作業(yè)失敗時(shí)才執(zhí)行作業(yè)舶赔。 always:無(wú)論先前階段的工作狀態(tài)如何扫倡,都可以執(zhí)行工作。 manual:手動(dòng)執(zhí)行作業(yè)(在GitLab 8.10中添加)竟纳。 |
environment | 作業(yè)部署到的環(huán)境的名稱撵溃。也可用:environment:name,environment:url锥累,environment:on_stop缘挑,和environment:action。 |
cache | 后續(xù)運(yùn)行之間應(yīng)緩存的文件列表桶略。也可用:cache:paths语淘,cache:key诲宇,cache:untracked,和cache:policy惶翻。 |
artifacts | (構(gòu)建產(chǎn)物交給下一個(gè)階段)成功附加到作業(yè)的文件和目錄列表姑蓝。也可用:artifacts:paths,artifacts:name吕粗,artifacts:untracked纺荧,artifacts:when,artifacts:expire_in颅筋,artifacts:reports宙暇,和artifacts:reports:junit。在GitLab 企業(yè)版垃沦,這些都是可供選擇:artifacts:reports:codequality客给,artifacts:reports:sast,artifacts:reports:dependency_scanning肢簿,artifacts:reports:container_scanning靶剑,artifacts:reports:dast,artifacts:reports:license_management池充,artifacts:reports:performance和artifacts:reports:metrics桩引。常用范例: artifacts: #構(gòu)建完成后,構(gòu)建的產(chǎn)物(目錄或者文件)收夸,丟給后面的步驟 paths: - .nuxt/ - . |
dependencies | 作業(yè)所依賴的其他作業(yè)坑匠,以便您可以在它們之間傳遞工件。 |
coverage | 給定作業(yè)的代碼覆蓋率設(shè)置卧惜。 |
retry | 在發(fā)生故障的情況下厘灼,可以自動(dòng)重試作業(yè)的次數(shù)和次數(shù)。 |
parallel | 應(yīng)該并行運(yùn)行多少個(gè)作業(yè)實(shí)例咽瓷。 |
trigger | 定義下游管道觸發(fā)器设凹。 |
include | 允許此作業(yè)包含外部YAML文件。也可用:include:local茅姜,include:file闪朱,include:template,和include:remote钻洒。 |
extends | 此作業(yè)將繼承的配置條目奋姿。 |
pages | 上傳作業(yè)結(jié)果以用于GitLab Pages。 |
variables | 在作業(yè)級(jí)別定義作業(yè)變量素标。 |
我的網(wǎng)站
愛(ài)運(yùn)維:https://www.iyunw.cn
python粉絲:https://www.pythonfans.cn