『中级篇』docker之CI/CD持续集成-整个流程串联(75)

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
原文链接地址:『中级篇』docker之CI/CD持续集成-整个流程串联(75)

前面主要说了CI python,CI java,CDpython,这次主要说下从gitlab,gitlab-ci,gitlab CICD的整个从开发流程到发布流程的,一个工作的流程。源码:https://github.com/limingios/docker/tree/master/No.11

流程很重要,建议都演示下。

  • 设置下

setting --Repositoryt ---Protected Branches

『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第1张图片
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第2张图片

allowed to push 改成 No one 任何人都不能直接往master分支里面push代码

『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第3张图片

setting -- general ---Merge request
刚才给master设置了任何都不能修改改变,那我们的流程应该如何改变呢,任何人只能在分支模式下工作,当发现没有问题可以提交到自己的分支,提交到merge request,管理员收到merge请求后,可以将开发人员自己的分支合并到master主分支上。

『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第4张图片
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第5张图片
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第6张图片
  • 创建一个新的分支dev 这个名字可以以每个人名字命名,一个人一个分支

Repository -- Branches -- new Branches

『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第7张图片
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第8张图片
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第9张图片
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第10张图片
  • 代码 pull 然后切换到dev分支

已经在dev分支了。

『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第11张图片
  • 修改代码 提交代码 push到dev分支

随便找个代码 修改下,看看这个流程

『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第12张图片
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第13张图片
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第14张图片
  • 提交后自动在dev分支pipline了
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第15张图片
  • 发送merge请求
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第16张图片
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第17张图片
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第18张图片

先进行pipline然后才merge 。

『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第19张图片
  • 发现代码错误了。
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第20张图片

pipline 有问题,就不允许mege了,merge request 列表

『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第21张图片

管理员这是告诉开发人员,你的代码有问题,开发人员开始修复代码重新提交。

『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第22张图片

commit-push代码

重新merge request

『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第23张图片
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第24张图片
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第25张图片
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第26张图片
  • 之前的代码还有个问题

现在任何的分支发生变化,它都进行了deploy,现在修改成只有master才进行deploy。

增加了 only master 只有master 才进行deploy

stages:
  - style
  - test
  - deploy

pep8:
  stage: style
  script:
    - pip install tox
    - tox -e pep8
  tags:
    - python2.7
    
unittest-py27:
   stage: test
   script:
     - pip install tox
     - tox -e py27
   tags:
     - python2.7

unittest-py34:
   stage: test
   script:
     - pip install tox
     - tox -e py34
   tags:
     - python3/4
     
docker-deploy:
   stage: deploy
   script:
     - docker build -t flask-demo .
     - if [ $( docker ps -aq --filter name=web) ]; then docker rm -f web;fi
     - docker run -d -p 5000:5000 --name web flask-demo
   tags:
     - test1
   only:
     - master
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第27张图片
  • 可以正常的pipline后就可以merge了,master分支已经变化。master分支开始触发pipline。dev分支里面也没有deploy了
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第28张图片
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第29张图片
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第30张图片

PS:基本目前这种就是开发和测试,CICD的完整的流程。git的工作流,基于分支的工作流。部署到CI的服务器上。CD其实分几种情况,可能部署到生产的环境的机器,另外的一个单独系统,我们生产的环境的部署,一般情况是根据发布来部署的。今天这个基本是开发和测试,没有包括生产环境的。下次项目发布做部署,应该可以gitlab,gitlab-ci的什么流程


往期精彩
  1. docker导学(一)
  2. 容器的技术概述(二)
  3. docker的魅力初体验-5分钟安装wordpress不走弯路(三)
  4. docker官网介绍(四)
  5. 如何在mac上安装docker(五)
  6. 如何在window上安装docker(六)
  7. 如何在mac上通过vagrant安装虚拟机(七)
  8. 如何在window上通过vagrant安装虚拟机(八)
  9. docker-Machine的本地使用(九)
  10. docker-Machine的本地使用(十)
  11. 在linux/mac下通过Docker-Machine在阿里云上的使用(11)
  12. docker架构和底层技术(12)
  13. docker Image概述(13)
  14. 手动建立一个base Image(14)
  15. 什么是Container(15)
  16. 构建自己的Docker镜像(16)
  17. Dockerfile详解(17)
  18. 镜像的发布(18)
  19. Dockerfile实战(19)
  20. 容器的操作(20)
  21. Dockerfile实战CMD和ENTRTYPOINT的配合(21)
  22. 容器的资源限制(22)
  23. docker网络(23)
  24. docker学习必会网络基础(24)
  25. Linux网络命名空间(25)
  26. Docker Bridge详解(26)
  27. 容器之间的Link(27)
  28. 容器的端口映射(28)
  29. 容器网络之host和none(29)
  30. 多容器复杂应用的部署(30)
  31. overlay网络和etcd实现多机的容器通信(31)
  32. docker的数据持久化存储和数据共享(32)
  33. windows下vagrant 通过SecureCRT连接centos7(33)
  34. 数据持久化之Data Volume(34)
  35. 数据持久化之bind Mounting(35)
  36. docker 使用bind Mounting实战(36)
  37. docker容器安装wordpress(37)
  38. docker Compose到底是什么(38)
  39. Docker Compose的安装和基本使用(39)
  40. Docker 水平扩展和负载均衡(40)
  41. Docker compose 部署一个复杂的应用(41)
  42. 容器编排Docker Swarm介绍(42)
  43. docker-swarm创建一个多节点集群(43)
  44. play with docker 的使用(44)
  45. docker-swarm中的Service创建维护和水平扩展(45)
  46. 在docker-swarm集群里通过serivce部署wordpress(46)
  47. 集群服务间通信之RoutingMesh(47)
  48. RoutingMesh之Ingress负载均衡(48)
  49. Docker-Stack部署wordpress(49)
  50. Docker-Stack部署投票应用(50)
  51. Docker-Secret管理和使用(51)
  52. Docker service更新(52)
  53. Docker的收费模式(53)
  54. Docker-cloud介绍(54)
  55. Docker Cloud自动构建 Docker image(55)
  56. Docker企业版的在线免费体验(56)
  57. docker企业版本地安装之UCP(57)
  58. docker体验阿里云的容器服务(58)
  59. 阿里云安装Docker企业版UCP和DTR(59)
  60. Kubenetes简介(60)
  61. Minikube快速搭建K8S单节点环境(61)
  62. K8S最小调度单位Pod(62)
  63. K8S横向扩展功能ReplicaSet和ReplicationController(63)
  64. k8s重要的Deployment(64)
  65. Vagrant在本地搭建多节点K8S集群(65)
  66. k8s基础网络Cluster Network(66)
  67. k8s的Service简介和演示(67)
  68. k8s的NodePort类型Service以及Label的简单实用(68)
  69. CI/CD持续集成/持续部署(69)
  70. docker之CI/CD持续集成-gitlab安装(70)
  71. docker之CI/CD持续集成—GitLab CI服务器(71)
  72. docker之CI/CD持续集成—真实Python项目的CI演示(72)
  73. docker之CI/CD持续集成—真实JAVA-Maven项目的CI演示(73)
  74. docker之CI/CD持续集成-CD演示(74)
『中级篇』docker之CI/CD持续集成-整个流程串联(75)_第31张图片

你可能感兴趣的:(『中级篇』docker之CI/CD持续集成-整个流程串联(75))