Gitlab Flow与DevOps流程举例分析

发布时间:2021-12-10 14:31:54 作者:iii
来源:亿速云 阅读:182

这篇文章主要介绍“Gitlab Flow与DevOps流程举例分析”,在日常操作中,相信很多人在Gitlab Flow与DevOps流程举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Gitlab Flow与DevOps流程举例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

操作

为在迭代便利性、部署严谨性上取得平衡,项目组(其实是我~。。~啦)设计了如下Gitlab flow & DevOps流程。

Gitlab Flow与DevOps流程举例分析  

一个完整的迭代上线周期:

 
第①阶段:开发阶段
 
第②阶段:测试阶段
 
第③阶段:部署阶段

这里为什么保留master分支, 是因为理论上当feature分支合并回develop分支,develop已经被污染了,这里保留master只为兜底。

Gitlab Flow与DevOps流程举例分析Gitlab Flow与DevOps流程举例分析Gitlab Flow与DevOps流程举例分析

后续就是开始新的sprint周期了,git release分支名/tag标签名跟随迭代。

 

Gitlab Flow小结

整个过程贯彻了git flow 预发布分支release,hotfix的核心用法, 同时在部署方式上也有一定的改进。

 

作业小抄

集成测试采用docker-compose部署;alpha,prod是采用k8s部署;从上面的Gitlab  flow 知道:

  • Git develop分支、release-分支、tag标签、master分支会打出容器镜像,
  • Git develop分支代码(ImageTag:develop)(只)会自动部署集成测试环境,
  • Git release- 分支(ImageTag:release-1.0.0)(只)会自动部署到alpha,
  • Git tag标签(ImageTag:v1.0.0) 手动点击部署到prod
stages:
  - build
  - build_image
  - deploy

variables:
  deploy_path: "/home/eap/website"

build:
  stage: build
  script: 
    - pwd
    - "for d in $(ls app/src);do echo $d;pro=$(pwd)/app/src/$d/$d.csproj; dotnet build $pro; done"
  tags:
    - my-tag

build_image:EAPWebsite:
  stage: build_image
  script:
    - dotnet publish app/src/EAP.Web/EAP.Web.csproj  -c release -o container/app/publish/
    - docker build -t $DOCKER_REGISTRY_HOST/eap/website:$CI_COMMIT_REF_NAME  container/app       
    - docker login $DOCKER_REGISTRY_HOST -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD
    - docker push $DOCKER_REGISTRY_HOST/eap/website:$CI_COMMIT_REF_NAME
  tags: 
    - my-tag
  only:     
    - tags
    - develop
    - master
    - /^release-.*$/i
    
deploy:intergate-test:
  stage: deploy
  script:
    - ssh -t testUser@10.202.42.252 "cd /home/eap/website && export TAG=$CI_COMMIT_REF_NAME && docker-compose pull website && docker-compose -f docker-compose.yml up -d"
  tags:
    - my-tag
  only:
    - develop      # 开发阶段,intergate Test环境只会部署ImageTag:develop镜像

deploy:alpha:
  stage: deploy
  script:
    - ssh -t testUser@10.201.82.170 "sudo kubectl set image  deployment/eap-website  eap-website=repository.****.com:8443/eap/website:${CI_COMMIT_REF_NAME} && sudo kubectl rollout status deployment/eap-website"
  tags:
    - my-tag
  only:
    - /^release-.*$/i      # alpha环境只部署以ImageTag:release-开头镜像
  
deploy:prod:
  stage: deploy
  script:
    - ssh -t testUser@10.202.42.20 "sudo kubectl set image deployment/eap-website  eap-website=repository.****.com:8443/eap/website:${CI_COMMIT_REF_NAME} && sudo kubectl rollout status deployment/eap-website" 
  tags:
    - my-tag
  only:
    - tags
    - master
  when: manual              # prod环境,人工点击部署

到此,关于“Gitlab Flow与DevOps流程举例分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. gitlab,gitlab runner自动化部署docke
  2. git及gitlab在项目开发中的实践应用一

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

gitlab devops

上一篇:计算机中node.dll指的是什么

下一篇:如何开启hive metastore服务

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》