Gitlab CI CD 笔记

136 阅读1分钟

一、在 gitlab 上新建一个项目

第一步:

FDC01B44-ED22-4570-8DAB-D5784FF76A2A.png

第二步:

0FB9890F-4408-4717-B722-56047E7E1C8F.png

第三步:

05F3F057-5AC6-45E4-B23A-4C3F9DE59E29.png

二、创建本地项目

-  yarn init -y

... // 搭建自己的项目

三、创建 ssh 密钥

// mac
-  ssh-keygen -t rsa -C "your_email@qq.com" 

运行命令之后,会出现如下询问行:

// 系统询问行
Enter file in which to save the key (/Users/zerofox/.ssh/id_rsa)

// 此时你需要为密钥命名
-  id_rsa_gitlab

回车后,会默认在 ~/.ssh 目录下创建密钥文件


-  cd ~/.ssh
-  ls

// .ssh 目录下会新增以下文件

config // ssh 配置文件
id_rsa_gitlab // 私钥
id_rsa_gitlab.pub // 公钥
known_hosts

四、建立 ssh 连接

// 打开创建好的公钥并复制
-  vim -id_rsa_gitlab.pub

进入 gitlab 按以下步骤找到 ssh 配置

第一步:

9F329EAC-CA01-468B-849E-E585CC1161F7.png

第二步:

3A59B1F3-95D9-4454-A139-2DFBB8A44470.png

第三步:

21AE27BD-695D-45B8-A658-60C5F206E3B2.png

第四步:

-  cd ~/.ssh
-  vim config

Host gitlab.com
HostName gitlab.com
User xxx // gitlab 用户名
IdentityFile ~/.ssh/id_rsa_gitlab // 私钥

将上面的配置信息粘贴进 config 文件并保存

五、连接 gitlab 远程库

// 初始化 git
git init 

// 绑定远程库
// your_gitlab_address 即远程库项目下点击 clone 按钮时的 ssh 地址
git remote add origin git@code.hzmantu.com:xxxxxx/ci_test.git

// 创建 .gitlab-ci.yml 文件

-  git add ./
-  git commit -m 'test'

这里有两点注意:

  1. 远程仓库一定要开启 push 权限,不然推代码的时候会被拒绝提交
  2. 本地 commit 之前一定要先绑定远程库,不然 git 会检测不到文件的变更

远程仓库开启代码权限:

左侧 Settings -> Repository -> Protected branches 板块

E7D85635-545F-4E63-ABBB-CBB35A385EA3.png

六、服务器安装 node

// 安装前最好新建一个自己的目录

// 下载 node 包
-  wget https://nodejs.org/dist/v16.13.0/node-v16.13.0-linux-x64.tar.xz

// 解压
-  tar -xf node-v16.13.0-linux-x64.tar.xz

// path 配置
// profile.d 目录是用户环境变量目录
-  cd etc/profile.d

// 新建一个自定义名称的 .sh 文件
- touch node .sh

// 将 node bin 路径复制进去
export PATH=$PATH:/usr/mynode/node-v16.13.0-linux-x64/bin

// 测试是否配置成功
-  node -v

// 安装 yarn
-  sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
-  yum install yarn

// 测试是否安装成功
-  yarn -v

七、服务器安装 gitlab-runner

// 安装
-  wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

// 分配权限
-  chmod +x /usr/local/bin/gitlab-runner

// 创建 runner 用户
-  useradd --comment 'test' --create-home gitlab-runner --shell /bin/bash

// 注意:上一步操作将 runner 用户命名为了 gitlab-runner 这个名字会在下一步安装过程中用到

// gitlab-runner 安装
-  gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner

// 查看本地注册 runner
-  gitlab-runner list

// 删除 runner,删除之前要确保远程 runner 已被删除
-  gitlab-runner verify --delete --name runner_1 // 删除 runner

八、注册 runner

左侧 Settings -> CI/CD -> Runners 板块 创建 Specific Runners

55CDE4C3-1C0D-4E1B-8A43-BF1D39911E35.png


// 在服务器端注册 runner
-  gitlab-runner register

// 系统询问项
Enter the GitLab instance URL (for example, https://gitlab.com/):
// 将 gitlab 上刚创建的 Register the runner with this URL 值粘贴在这里

// 系统询问项
Enter the registration token:
// 将 gitlab 上刚创建的 And this registration token 值粘贴在这里

// 系统询问项
Enter a description for the runner: // 随意填写

// 系统询问项
// 重要!ci 文件中主要通过这个值来将 job 分配给 runner
Enter tags for the runner (comma-separated): runner_1

注册完成之后,gitlab Runners 板块的下方会出现 Available specific runners,但是注意,此时的 runner 的状态是灰色的,还不可用,需要再服务器上启动 runner

// 启动服务器上的 runner
-  gitlab-runner start

此时,gitlab Runners 板块下方的 runner_1 的绿灯会亮起,表示可用,至此,配置部分告一段落。

九、创建 ci 文件

stages:
  - install
  - build
  - deploy

cache:
  paths: 
    - node_modules/

install:
  stage: install
  tags: // 指定runner
   - runner_1
  script:
    - yarn install

build:
  stage: build
  tags: // 指定runner
    - runner_1
  script:
    - yarn build

deploy:
  stage: deploy
  tags: // 指定runner
    - runner_1
  script:
    - rm -rf /www/test/*
    - cp -rf ${CI_PROJECT_DIR}/dist/* /www/test/