Gitlab --- CI好厲害
Written on November 13th, 2017 by Richard LinGitLab有個功能好厲害
gitlab中可以在根目錄裡加一個叫做.gitlab-ci.yml
的檔案,當有branch做更改時gitlab就會去讀取.gitlab-ci.yml
,並根據裡面所寫的東西來做操作。
本次會要在.gitlab-ci.yml
中若是dev branch更新時要做完docker裡的build跟push,並且若是master更改tag時也要做build跟push。
image: docker:latest
stages:
- build
dev_job:
stage: build
only:
- dev
script:
- docker build -t <target> .
- docker push <target>
tags_job:
stage: build
only:
- tags
except:
- /.*(?<!master)$/i
script:
- docker build -t <target> .
- docker tag <target> <target>:$CI_COMMIT_TAG
- docker push <target>:$CI_COMMIT_TAG
Stage
可以自訂出不同種的stage,本次只有build時會用到所以對stage還不慎了解,另外可以有test release等。
Job
Job為我們可以自訂gitlab要做的事情,要注意的是Job彼此是不同container所以如果要資料互通的話需要用其他的特殊語法Cache
Job-stage
指定哪個stage會做這件job
Job-only & except
詳細按這裡
Job-script
詳細按這裡