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

Love The Way You Lie 2022-04-15 05:55 286阅读 0赞

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

大概流程图是这样子的
10

设置kubernetes的deployment的规则(需要自己实现), 执行器是docker,编译目录(执行目录都是在/builds这个目录下),每一个执行器都有不一样的工作目录

.gitlab-ci.yml的内容如下

  1. stages:
  2. - build
  3. - deploy
  4. golang-build:
  5. stage: build
  6. tags:
  7. - docker
  8. only:
  9. - master # 仅在master分支变更时才触发执行
  10. services:
  11. - harbor.xxx.cn/enncloud/golang:1.8.3
  12. image: harbor.xxx.cn/enncloud/golang:1.8.3
  13. script:
  14. - pwd
  15. - go env
  16. - ls /go/
  17. - cp -r /builds/weihongwei/cicdproject/* /go/src/
  18. - cd /go/src/beeblog/;
  19. - echo "==========" > test.txt
  20. - go env
  21. - go build -o mytest;
  22. - cp mytest /builds/weihongwei/cicdproject/beeblog/
  23. - ls /builds/weihongwei/cicdproject/beeblog/
  24. artifacts:
  25. name: enn12
  26. paths:
  27. - beeblog
  28. golang-deploy:
  29. tags:
  30. - docker
  31. stage: deploy
  32. image: docker
  33. before_script:
  34. - docker login harbor.xxx.cn -u admin -p xxx
  35. dependencies:
  36. - golang-build
  37. script:
  38. - ls
  39. - pwd
  40. - ls /builds/weihongwei/cicdproject/beeblog/
  41. - docker build -t harbor.xxx.cn/create-cicd-hub/gitlab-beeblog:v1122 .
  42. - docker push harbor.xxx.cn/create-cicd-hub/gitlab-beeblog:v1122

artifacts dependenciescache这两种方法可以实现job之间数据的同步
另外需要在代码仓库创建Dockerfile文件
代码仓库列表
code

Dockerfile内容

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

提交变更可触发

执行步骤如下

jo

job2

pods

参考
gitlab-ci

发表评论

表情:
评论列表 (有 0 条评论,286人围观)

还没有评论,来说两句吧...

相关阅读

    相关 GitLab CI/CD

    1、持续集成(Continuous Integration)         持续集成指的是频繁的将代码集成到主干,每次集成都通过自动化的构建(包括编译、发布、自动化测试)来