php ci 工作流,Docker 及 GitLab CI 在前端工作流上的实践分享(二)

上一篇讲了 Docker 的使用,这篇同样通过一个简单示例,来讲讲 GitLab CI。

一、什么是 GitLab CI ?

gitlab-ci 全称是 gitlab continuous integration,也就是基于 gitlab 的持续集成工具。中心思想是当每一次

push到gitlab的时候,都会触发一次脚本执行,然后脚本的内容包括了测试,编译,部署等一系列自定义的内容。

高版本的 GitLab 自带了 GitLab CI,所以不需要另外安装。

二、什么是 GitLab-Runner ?

GitLab-Runner 是脚本执行的承载者,GitLab-CI 事先注册好 GitLab-Runner,再 push 代码,对应的 Runner 就会执行你所定义的脚本。

d4c89c680145a186c11de5e460acccff.png

三、安装 GitLab-Runner

Gitlab Runner安装方式有两种,一种是直接二进制文件安装,一种是基于docker镜像安装。

二进制文件安装

[1] 下载对应操作系统的二进制包,我这里使用的是mac版本,

sudo curl --output /usr/local/bin/gitlab-ci-multi-runner https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-darwin-amd64

[2] 给 gitlab-ci-multi-runner 设置权限

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

以上是官方安装文档,如果有问题,可以手动到版本下载列表下载对应的版本,然后复制到/usr/local/bin/目录下 ---- 反正我是自己下载安装才能用的,泪目 T T

[3] 注册runner

首先,进入到你的 gitlab 项目网页,找到 Settings -> Pipelines,然后找到对应的 url 和 token

83cb872018f11ac41839c3d08fcc91d8.png

然后在终端输入

gitlab-ci-multi-runner register

b9edb90ecd733baf0a49ffd6bcc25bae.png

然后刷新你的网页,会看到

4fac9e1222f25b725743af8e3e6ea800.png

说明注册成功了。

另外,我们可以通过 gitlab-ci-multi-runner list 查询你注册的runner ,用 gitlab-ci-multi-runner status 查看 runner 服务是否运行中。

docker镜像安装

[1] 先获取 gitlab-runner 镜像

sudo docker pull gitlab/gitlab-runner:latest

[2] 启动 gitlab-runner container

sudo docker run -d --name gitlab-runner --restart always \

-v /srv/gitlab-runner/config:/etc/gitlab-runner \

-v /var/run/docker.sock:/var/run/docker.sock \

gitlab/gitlab-runner:latest

[3] 注册runner

sudo docker exec -it gitlab-runner gitlab-ci-multi-runner register

注册过程略,方式同方式一步骤3.

四、配置.gitlab-ci.yml

GitLab CI的一切工作,都是由 .gitlab-ci.yml 来配置的。详细文档可以参考这里

首先,在项目根目录下创建 .gitlab-ci.yml 文件(编辑完要提交到g itlab 才能生效):

#定义 stages,用来定义工作阶段,多个 stages 会按顺序进行

stages:

- build

- deploy_test

- deploy_production

# 设置缓存

cache:

paths:

- node_modules/

- dist/

# 安装依赖 before_script 会在每个 stages 执行之前运行

before_script:

- npm install

# 编译 这里对应上方 stages ,

build:

stage: build

script: # script 为要执行的命令,可以多条按顺序执行

- npm run build

# 部署测试服务器

deploy_test:

stage: deploy_test

only: # only 定义触发分支,即只有在dev分支提交是 才执行以下命令

- dev

script:

- bash scripts/dev.sh

# 部署生产服务器

deploy_production:

stage: deploy_production

only:

- master

script:

- bash scripts/deploy.sh

配置完成后,当你在项目 push 代码到 gitlab 的时候,就会触发 gitlab-ci,然后执行你定义的代码。

可以在

11bdc35f63455aa6faad105d05edd5b4.png

running 表示正在运行,passed 表示通过了。

ps:有个容易遇到的坑,当你卡在 pending 不动的时候,可以看看你的 runner 是否设置了 '无 tag 标签也运行'

回到你的 runner,点编辑

cc83251100bb303665085591f9b09df5.png

然后,勾选第二项 Run untagged jobs

运行日志可以在这里查看

173a0267c51b8f2e991b986773b73217.png

那么到这,GitLab CI 的基本使用,已经完成啦,赶快去试一下吧 :)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值