docker 安装gitlab
$ sudo docker pull gitlab/gitlab-ce:latest
GitLab CI/CD
CI 环节包括3个Stage(阶段)
- build 编译
- test 测试
- deploy 发布
- Stage 在.gitlab-ci.yml中通过如下定义:
stages:
- build
- test
- deploy
- Job关联到Stage, 当一个Stage执行的时候, 与其关联的所有Job都会被执行。
注意: Job是可并行执行的。可以利用多个Runner来加速CI/CD的流程
# job_build_module_A 被关联到Stage
job_build_module_A:
stage: build
- Job的执行
job_bulid_module_A:
script:
- cd module_A
- mvn clean comile
- 公共配置
- before_script
- after_script
在所有Job的script执行前和执行后调用
-
Job 执行总揽 before_script -> script -> after_script
-
Runner
- install runner 进入仓库-> 设置 -> CI/CD -> Runner -> install 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
useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
gitlab-runner install --user=root --syslog=false --working-directory=/home/gitlab-runner # 在/etc/init.d/下生成gitlab-runner脚本,用于start stop命令。 指定--user=root
gitlab-runner start
-
注册runner
- 进入仓库-> 设置 -> CI/CD -> Runner
- gitlab-runner register
- 注册后找到gitlab 仓库-> 设置 -> CI/CD -> Runner 编辑 勾选 “运行未标记的作业” 不然runner 跑job时如果没有tags 不会执行。
-
启动
gitlab-runner stop|start
- 修改gitlab clone url
vim /etc/gitlab/gitlab.rb
external_url 'http://xx.xx.xx.xx:30000/'
gitlab-ctl restart
vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: xx.xx.xx.xx
port: xx
https: false