Gitlab CI/CD

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010511236/article/details/79360140

三丰云,免费虚拟主机和免费云服务器相当不错,使用起来非常快,对于个人用户来说足够用了,有需要的朋友来看看吧,我已经使用过了 体验很不错的
https://www.sanfengyun.com/

Gitlab CI/CD
1.概述
Gitlab是常用的开源git代码管理工具之一,随着发展也推出了ci/cd解决方案.
顾名思义具体来说ci/cd主要完成以下两个工作.

ci(持续构建)
代码提交后触发自动化的单元测试,代码预编译,构建镜像,上传镜像等.

cd(持续发布)
持续发布则指将构建好的程序发布到各种环境,如预发布环境,正式环境.

2.特性
gitlab ci/cd具有以下特性

跨平台支持
只要支持go语言的平台均可以在上面进行ci,目前基本涵盖了大部分的操作系统.
多语言支持
构建时是通过脚本触发,因此基本上支持所有的语言.
Pipeline
可以通过不同的阶段形成工作流
支持docker
可以构建docker镜像,同时也支持触发在Kubernetes允许.
所有特性具体见:
https://about.gitlab.com/features/gitlab-ci-cd/

3.结构

gitlab ci/cd是由独立的runner程序完成,runner采用go语言编写,因此可以很好的进行跨平台,通常可以将runner部署到任何gitlab server之外的服务器,从而避免对gitlab server的影响.

runner项目见:

https://gitlab.com/gitlab-org/gitlab-runner

4.gitlab ci/cd流程
gitlab通过在项目的根目录放置.gitlab-ci.yml文件来触发pipline,文件书写遵循yml语法,因此,概括来说gitlab ci/cd只需要两步,

写好.gitlab-ci.yml文件,并放置到项目根目录
配置好gitlab runner.
完成后,提交代码时会自动根据gitlab-ci.yml的触发条件进行执行相应的stage.
4.1 gitlab-ci.yml文件
stages:

  • test
  • build
  • deploy

test:
stage: test
script: echo “Running tests”
only:

  • tags

build:
stage: build
script: echo “Building the app”
only:

  • tags

deploy_staging:
stage: deploy
script:
- echo “Deploy to staging server”
environment:
name: staging
url: https://staging.example.com
only:

  • tags

deploy_prod:
stage: deploy
script:
- echo “Deploy to production server”
environment:
name: production
url: https://example.com
when: manual
only:

  • tags

如上,是一个具有ci/cd功能的.gitlab-ci.yml文件的写法,

.gitlab-ci.yml的具体写法,以及关键字含义见:
https://docs.gitlab.com/ee/ci/yaml/README.html

关于gitlab为什么使用.gitlab-ci.yml,见:
https://about.gitlab.com/2015/05/06/why-were-replacing-gitlab-ci-jobs-with-gitlab-ci-dot-yml/

4.2 runner配置
runner配置主要分为三步,

首先安装runner
这里有安装脚本,具体见:https://docs.gitlab.com/runner/#install-gitlab-runner

然后注册runner到gitlab
https://docs.gitlab.com/runner/#register-gitlab-runner

更多配置见
https://docs.gitlab.com/runner/executors/README.html

5.总结
总的来说,gitlab-ci基本上可以完成完整的构建及发布,但也会存在一些缺点:
1.发布部分,需要将程序部署到哪个服务器固化到.gitlab-ci文件中,另外,如果runner上直接进行部署,那么runner所在的机器则需要直接或间接的访问所有的发布的机器,这里存在一定安全问题.
2.程序发布没有审计,对于小公司来说,这问题可能不突出,但是当研发团队扩大,以及公司业务增加之后,对于发布过程的权限管理以及审计则显得很重要.
————————————————
版权声明:本文为CSDN博主「zhojhon」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010511236/article/details/79360140

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值