gitlab-CI/CD

以前使用的是jenkins做的持续集成的工具,但是比较头疼的是创建项目,想想,如果你刚进一家公司,如果没有持续集成工具,你得多痛苦,jenkins虽然说确实方便,插件多,但是用过gitlab的CI/CD感觉jenkins已经无爱了,以为刚好公司抛弃svn,转用gitlab,所以对gitlab的持续集成做了一些学习,确实好用,进入正题,这里我们要用到gitlab-runner做发布管理。
下载gitlab-runner,根据自己的系统选择相应的安装包:

sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-linux-386
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-linux-amd64
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-linux-arm

授权:

sudo chmod +x /usr/local/bin/gitlab-runner

创建CI用户:

sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

注册Runner:

sudo gitlab-runner register

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
http://10.40.2.22  #自己的gitlab地址


Please enter the gitlab-ci token for this runner
XXXXX  #这里是写你要用gitlab-runner管理的项目的token,可以去项目里查看,例如:
gitlab-CI/CD_第1张图片
image.png
gitlab-CI/CD_第2张图片
image.png

Please enter the gitlab-ci description for this runner
[hostame] my-runner

Please enter the gitlab-ci tags for this runner (comma separated):
my-tag,another-tag

Whether to run untagged jobs [true/false]:
[false]: true
Whether to lock Runner to current project [true/false]:
[true]: true
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
shell    #这里选用shell比较简单,如果你用的是docker,你可以选docker

下载并运行:
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start

基本的条件有了,接下来我们项目进行配置,例如:

gitlab-CI/CD_第3张图片
image.png

我这个测试项目名字是consumerBanking,在这个项目目录下,创建一个“.gitlab-ci.yml”文件,这里面的用的是pipeline语法,内容如下:

gitlab-CI/CD_第4张图片
image.png

写好之后,现在我们要用gitlab-runner,怎么用哪??看下面:

gitlab-CI/CD_第5张图片
image.png

这里是我创建的几个gitlab-runner管理,现在我用最下面那个,让它对我这个像项目生效,点击编辑:

gitlab-CI/CD_第6张图片
image.png

让我们的项目加入这个runner管理,首先来看一下:

gitlab-CI/CD_第7张图片
image.png

这个是我还没跟新项目前的pipeline的状态,现在我要加入一个1.txt文件:

gitlab-CI/CD_第8张图片
image.png

现在再看看pipeline的状态:

gitlab-CI/CD_第9张图片
image.png

我们再来看看pipeline执行的结果:

gitlab-CI/CD_第10张图片
image.png

完美通过,当然这只是测试,真正要用的时候,我们会在pipeline做一些脚本调用以及要执行的命令,也可以掌控命令执行的顺序,以及发布的顺序.

注意:这个配置会在你每次提交代码的时候就执行pipeline里发布

当然在我们开发的时候,我们大多数情况不希望我一提交代码就更新发布,如果想要手动控制发布的话,需要在.gitlab-ci.yml文件中加入“when”语法的,修改之后如下:

gitlab-CI/CD_第11张图片
image.png

这样我就可以手动控制整个发布,以及每个发布模块,想什么时候更就什么时候更,当我做commit动作后,pipeline的界面如下:

gitlab-CI/CD_第12张图片
image.png

想发布的时候 ,点一下,想发布那个模块,点一下,就是点点点,人性吧,哈哈哈哈哈。http://blog.csdn.net/wmq880204/article/details/70141771

你可能感兴趣的:(gitlab-CI/CD)