Gitlab --- CI好厲害

GitLab有個功能好厲害


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


詳細按這裡

comments powered by Disqus