1. 程式人生 > >gitlab cicd (五)系列之CD功能實現

gitlab cicd (五)系列之CD功能實現

本編是繼gitlab cicd (四)系列之安裝git-runner kubernetes安裝方式之後關於解決gitlab CD的問題

大概流程圖是這樣子的
10

設定kubernetes的deployment的規則(需要自己實現), 執行器是docker,編譯目錄(執行目錄都是在/builds這個目錄下),每一個執行器都有不一樣的工作目錄

.gitlab-ci.yml的內容如下

stages:
  - build
  - deploy
golang-build:
  stage: build
  tags:
    - docker
  only: 
   - master # 僅在master分支變更時才觸發執行
  services:
  - harbor.xxx.cn/enncloud/golang:1.8.3
  image: harbor.xxx.cn/enncloud/golang:1.8.3
  script:
         - pwd
         - go env
         - ls /go/
         - cp -r /builds/weihongwei/cicdproject/* /go/src/
         - cd /go/src/beeblog/;
         - echo "==========" > test.txt
         - go env
         - go build -o mytest;
         - cp mytest /builds/weihongwei/cicdproject/beeblog/ 
         - ls /builds/weihongwei/cicdproject/beeblog/
  artifacts:
    name: enn12
    paths:
      -  beeblog
golang-deploy:
  tags:
    - docker
  stage: deploy
  image: docker
  before_script:
  - docker login harbor.xxx.cn -u admin -p xxx
  dependencies:
    - golang-build
  script:
        - ls
        - pwd
        - ls /builds/weihongwei/cicdproject/beeblog/
        - docker build -t harbor.xxx.cn/create-cicd-hub/gitlab-beeblog:v1122 .
        - docker push harbor.xxx.cn/create-cicd-hub/gitlab-beeblog:v1122

artifacts dependenciescache這兩種方法可以實現job之間資料的同步
另外需要在程式碼倉庫建立Dockerfile檔案
程式碼倉庫列表
code

Dockerfile內容

FROM harbor.xxx.cn/qinzhao-harbor/ubuntu:v1.0.0
ADD beeblog /beeblog
WORKDIR /beeblog
EXPOSE 8080
CMD ["./mytest"]

提交變更可觸發

執行步驟如下

jo

job2

pods

參考
gitlab-ci