gitlab cicd (五)系列之CD功能实现

本编是继gitlab cicd (四)系列之安装git-runner kubernetes安装方式之后关于解决gitlab CD的问题

大概流程图是这样子的
gitlab cicd (五)系列之CD功能实现_第1张图片

设置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文件
代码仓库列表
gitlab cicd (五)系列之CD功能实现_第2张图片

Dockerfile内容

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

提交变更可触发

执行步骤如下

gitlab cicd (五)系列之CD功能实现_第3张图片

gitlab cicd (五)系列之CD功能实现_第4张图片

gitlab cicd (五)系列之CD功能实现_第5张图片

参考
gitlab-ci

你可能感兴趣的:(cicd)