一、准备工作
1、安装git,maven,配置gitlab机器和部署服务器无密ssh
2、安装gitlab-runner (参考官网:https://docs.gitlab.com/runner/install/linux-manually.html)
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
sudo chmod +x /usr/local/bin/gitlab-runner
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
3、将用户gitlab-runner加入sudoer,配置无密码切换。这步不是必须,是为了后面远程部署的方案之一做准备
二、注册runner
gitlab中的每个项目有一个runner的token,在项目的setting--ci/cd,runner中查看。注册的时候需要填写,这样就可以区分不同项目的runner。
执行gitlab-runner register进行注册:
coordinator URL填写上图中红色部分的url
token填写上图中标蓝的token
描述随便写
tag比较重要,需要和后续的.gitlab-ci.yml文件中tag保持一致
executor一般选择shell模式。
注册完成后,重新刷新setting-ci/cd页面,可以看到一个已经注册的runner,在页面上可以修改一些配置。
三、配置构建过程
在项目的根目录下新建一个.gitlab-ci.yml文件,格式参考https://docs.gitlab.com/ce/ci/yaml/README.html
例如:
image: maven:latest
# 本次构建的阶段:build package
stages:
- package
- deploy
# 打包
package:
stage: package
tags:
- package
script:
- echo "=============== 开始打包任务 ==============="
- mvn package -U -Dmaven.test.skip=true
- sudo scp target/adapter-aliyun-0.0.1-SNAPSHOT.jar root@192.168.0.200:/home/app
deploy:
stage: deploy
tags:
- package
script:
- sudo ssh root@192.168.0.200 "bash /home/app/restart-aliyun.sh > /dev/null 2>&1 &"