【ubuntu 18.04】gitlab配置gitlab-runner,实现CI/CD
1. 下载gitlab-runner
Download and install binary # Download the binary for your system sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
2. 安装
# Give it permissions to execute sudo chmod +x /usr/local/bin/gitlab-runner # Create a GitLab CI user sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash # Install and run as service sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner sudo gitlab-runner start
3. 注册runner
Command to register runner sudo gitlab-runner register --url http://192.168.10.99/ --registration-token $REGISTRATION_TOKEN
信息获取
注册流程
master@master:~/spring-boot-demo$ sudo gitlab-runner register --url http://192.168.10.99/ --registration-token avMBwSLHcaYAQzBHpMcj Running in system-mode. Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/): [http://192.168.10.99/]: Please enter the gitlab-ci token for this runner: [avMBwSLHcaYAQzBHpMcj]: Please enter the gitlab-ci description for this runner: [master]: Please enter the gitlab-ci tags for this runner (comma separated): java Whether to run untagged builds [true/false]: [false]: true Whether to lock the Runner to current project [true/false]: [true]: Registering runner... succeeded runner=avMBwSLH Please enter the executor: docker-ssh+machine, kubernetes, parallels, shell, ssh, virtualbox, docker+machine, docker, docker-ssh: shell Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
注册成功
4. 编写.gitlab.yml文件
文件内容
stages: - install_deps - test - build - deploy_test - deploy_production cache: key: ${CI_BUILD_REF_NAME} paths: - ./ install_deps: stage: install_deps only: - master script: - echo install_deps test: stage: test script: - mvn verify artifacts: when: always reports: junit: - target/surefire-reports/TEST-*.xml - target/failsafe-reports/TEST-*.xml build: stage: build only: - master script: - mvn clean package -DskipTests deploy_test: stage: deploy_test only: - master script: - echo test deploy_production: stage: deploy_production only: - master script: - echo deploy_production
5. 测试结果(提交代码到仓库)
查看每个job执行情况
Test的job日志
基本完成