前端配置gitlab-ci

一、简单描述

二、在服务器上安装 node 和 npm

1. 在 node 官网下载 node

1) 通过一下命令查看自己的 Linux 服务器是 64 位还是 32 位(x86_64表示64位系统, i686 i386表示32位系统)

1
uname -a

2) 在 node 的官网上找到最新的 node 包,找到最新的稳定版

2. 上传至服务器上

通过 scp 命令上传 node 的安装包至服务器上的 usr/local 目录中

1
scp -P your_port /your_dir/node your_user@your_server:/usr/local

3. 解压安装

1
2
3
4
5
// 解压
xz -d node-vx.x.tar.xz

// 安装
tar -xvf node-vx.x.tar

4. 建立软连接

1
2
ln -s /usr/local/node-vx.x/bin/node /usr/local/bin/
ln -s /usr/local/node-vx.x/bin/npm /usr/local/bin/

三、在服务端安装 gitlab-runner

1. 安装 runner

1
2
3
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash

yum install gitlab-ci-multi-runner

2. 在 gitlab 中打开相应项目,查看并复制 url 和 token

9eabc0a133270c95b6446b93f4dbae10.png

3. 用上面复制得到的 url 和 token 在服务器上注册

1
gitlab-ci-multi-runner register
  • Enter your GitLab instance URL:(填写上面截图中步骤3复制的 GitLab 的 URL )
    Please enter the gitlab-ci coordinator URL:

  • Enter the token you obtained to register the Runner:(填写上面截图中步骤4复制的 GitLab 的 token 信息)
    Please enter the gitlab-ci token for this runner:

  • Enter a description for the Runner, you can change this later in GitLab’s UI:( runner 的描述)

  • Please enter the gitlab-ci description for this runner:

  • Enter the tags associated with the Runner, you can change this later in GitLab’s UI:( runner 的标签,用逗号分开,标签要后面的 .gitlab-ci.yml 文件中的 tag 一样)
    Please enter the gitlab-ci tags for this runner (comma separated):

  • Enter the Runner executor: (runner的执行者)
    Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:

4. 注册完成,修改文件权限

注册完成后,将 gitlab-runner 文件夹的用户所属修改为 gitlab-runner ,这样 gitlab-runner 对其才会有执行权限。( gitlab-runner 的文件夹会在 ~/.local/bin 目录下)

1
2
3
4
5
// 修改所属用户为 gitlab-runner
sudo chown -R gitlab-runner:gitlab-runner /home/gitlab-runner

// 修改读写权限
sudo chmod -R 777 /home/gitlab-runner

注意:
1) 权限不够,会导致 runner 在执行的时候报错 permission denied
2) gitlab 上 clone 下来的文件在 Linux 环境中可能也会没有读写权限,进而也会报错 permission denied ,此时就要把 clone 下来的项目的目录进行修改权限。

1
sudo chmod -R 777 /projects/project_name

5. 查看 runner 的状态,开启 runner 的 service

注册好之后,如果在 gitlab-ci 的界面上看到的 runner 的旁边不是绿点,而是黑色三角的感叹号,可以使用下面的代码来开启 runner 的 service:

1
2
3
gitlab-runner start
// 或
gitlab-runner run

启动成功之后如下图:
32c33e7eb1587ee3499c91d730279f64.png

四、编辑.gitlab-ci.yml

五、注意事项和一些问题

1. npm 报错

注册 runner 之后,会在 Linux 服务器上新建一个名为 gitlab-runner 的用户,此用户默认是没有 npm 的权限的,所以 .gitlab-ci.yml 文件中在执行有 npm 的命令的时候,就会报错 npm command not found。 所以就要修改 PATH 环境变量。

修改 PATH 环境变量

1) 找到并打开 profile 文件

1
vim /etc/profile

2) 找到设置 PATH 的行并添加以下代码

1
export PATH=/usr/local/bin:$PATH

3) 使其生效

1
2
// 重启服务器
reboot

注意:其有效期限为永久有效,对所有用户有效。

2. gitlab-runner 一直处于 pending(等待) 状态

项目触发 runner ,但是一直处于 pending。
可能是 runner 卡住了,也有可能是因为服务器资源不足。
在服务器上执行下面这条命令:

1
gitlab-ci-multi-runner list

查看 runner 是否还在,如果在,再执行下面这条命令:

1
gitlab-ci-multi-runner verify

如果发现 runner 还活着,但是就是不执行流程。
下面有两种解决方案:
1) 解决方案1:

1
2
// 这条命令回去执行 runner 服务,但是每次都需要运行次命令才回去执行任务(不推荐使用)
gitlab-ci-multi-runner run

2) 解决方案2:

1
2
// 重启 runner ,发现会自动去执行触发 runner 任务
gitlab-ci-multi-runner restart