gitlab cicd (五)系列之CD功能實現
阿新 • • 發佈:2018-12-15
本編是繼gitlab cicd (四)系列之安裝git-runner kubernetes安裝方式之後關於解決gitlab CD的問題
大概流程圖是這樣子的
設定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
dependencies
和cache
這兩種方法可以實現job之間資料的同步
另外需要在程式碼倉庫建立Dockerfile
檔案
程式碼倉庫列表
Dockerfile內容
FROM harbor.xxx.cn/qinzhao-harbor/ubuntu:v1.0.0
ADD beeblog /beeblog
WORKDIR /beeblog
EXPOSE 8080
CMD ["./mytest"]
提交變更可觸發
執行步驟如下
參考
gitlab-ci