gitlab cicd (五)系列之CD功能实现
本编是继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
还没有评论,来说两句吧...