GitLab CI/CD 配置
概念
持續集成的相關概念,可以看這篇文章 持續集成是什么? - 阮一峰的網絡日志
操作示例
創建測試項目 sample-web
,然后打開項目的 Runners
配置
找到這個地方,后邊要用
然后搭建 gitlab-runner
,CI/CD 需要通過它實現
# 創建 gitlab-runner 目錄
mkdir -p /usr/local/gitlab-runner && cd /usr/local/gitlab-runner
# 映射目錄
mkdir -p /usr/local/gitlab-runner/config
# 啟動
docker run -d --name gitlab-runner --restart always \
-v /usr/local/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:v12.10.0
注冊 runner
docker exec -it gitlab-runner gitlab-ci-multi-runner register
根據提示逐步輸入信息
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.10.227/ # 這是上邊 GitLab Runners 里的地址
Please enter the gitlab-ci token for this runner:
be1FkhGu1nN3dsoa5Wnv # 這是上邊 GitLab Runners 里的Token
Please enter the gitlab-ci description for this runner:
[32e99182c32c]: helloworld # 描述,自由發揮
Please enter the gitlab-ci tags for this runner (comma separated):
java8 # tags,相當於這個環境的名字,后邊用的到
Registering runner... succeeded runner=be1FkhGu
Please enter the executor: docker, docker-ssh, ssh, docker+machine, docker-ssh+machine, custom, parallels, shell, virtualbox, kubernetes:
docker # 執行方式,我用的 docker
Please enter the default Docker image (e.g. ruby:2.6):
maven:3-jdk-8 # docker 鏡像,這是個 java 項目,我用的 maven:3-jdk-8,根據自己需要填寫
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
提示成功,可以在 GitLab Runners 里看到我們剛剛注冊的 runner
在項目中添加 .gitlab-ci.yml
文件
文件描述了有哪些步驟,每步的名稱,執行了什么命令,使用哪個分支,使用哪個 runner 等信息
stages:
- build
- test
- deploy
job_build:
stage: build
script:
- mvn clean install -s settings.xml
only:
- master
tags:
- java8
job_test:
stage: test
script:
- mvn test -s settings.xml
tags:
- java8
job_deploy:
stage: deploy
script:
- echo "deploy over..."
tags:
- java8
提交代碼,可以看到 CI/CD 的執行情況