一、在 gitlab 上新建一个项目
第一步:
第二步:
第三步:
二、创建本地项目
- 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
配置
第一步:
第二步:
第三步:
第四步:
- 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'
这里有两点注意:
- 远程仓库一定要开启
push
权限,不然推代码的时候会被拒绝提交 - 本地 commit 之前一定要先绑定远程库,不然
git
会检测不到文件的变更
远程仓库开启代码权限:
左侧 Settings
-> Repository
-> Protected branches
板块
六、服务器安装 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
// 在服务器端注册 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/