gitlab + gitlab-runner 集成 CICD

gitlab + gitlab-runner 集成 CICD

1 gitlab-runner 安装

  • 1.1 下载执行文件
  1.  
    # Linux x86-64
  2.  
    sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
  3.  
     
  4.  
    # Linux x86
  5.  
    sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386
  6.  
     
  7.  
    # Linux arm
  8.  
    sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm
  • 1.2 设置执行权限
sudo chmod +x /usr/local/bin/gitlab-runner
  • 1.3 创建 GitLab CI 用户
useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
  • 1.4 运行服务
  1.  
    gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
  2.  
    gitlab-runner start

2 gitlab-runner 注册

2.1 获取 Gitlab 注册令牌

打开 gitlab 项目 -> 设置 -> CI / CD -> Runners 设置

Token

2.2 LINUX 注册

  • 运行注册
sudo gitlab-runner register
  • 输入你的 GitLab URL
  1.  
    Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
  2.  
    https://xxx.xxx
  • 输入 注册令牌 来注册 Runner
  1.  
    Please enter the gitlab-ci token for this runner
  2.  
    xxx
  • 输入 Runner 说明
  1.  
    Please enter the gitlab-ci description for this runner
  2.  
    [hostame] my-runner
  • 输入 Runner 的 tags
  1.  
    Please enter the gitlab-ci tags for this runner (comma separated):
  2.  
    my-tag,another-tag
  • 输入 Runner 执行方式
  1.  
    Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
  2.  
    shell
  • 如果是在 Docker 中运行, you'll be asked for the default image to be used for projects that do not define one in .gitlab-ci.yml:
  1.  
    Please enter the Docker image (eg. ruby:2.1):
  2.  
    alpine:latest

3 链接成功

3.1 runner 列表

ducafecat_2018-08-17-15-16-23

3.2 runner 修改

ducafecat_2018-08-17-15-17-48

4 编写 .gitlab-ci.yml 集成

  1.  
    image: java:8
  2.  
    stages:
  3.  
    - build
  4.  
    - build-pro
  5.  
     
  6.  
    #测试环境
  7.  
    build:
  8.  
    stage: build
  9.  
    script:
  10.  
    - pwd
  11.  
    - cd project/my_app
  12.  
    - /usr/local/maven/bin/mvn clean package -P test
  13.  
    - sh /usr/local/project_deploy_script/app/app_test.sh
  14.  
    tags:
  15.  
    - deploy-app
  16.  
    only:
  17.  
    - develop
  18.  
    #正式环境
  19.  
    stage: build-pro
  20.  
    script:
  21.  
    - pwd
  22.  
    - cd project/my_app
  23.  
    - /usr/local/maven/bin/mvn clean package -P pro
  24.  
    - sh /usr/local/project_deploy_script/app/app.sh
  25.  
    tags:
  26.  
    - deploy-app
  27.  
    only:
  28.  
    - master

5 执行集成

  • 下次提交代码就会走集成任务了

ducafecat_2018-08-17-15-26-05

  • 任务阶段

ducafecat_2018-08-17-15-27-32

  • 详情

ducafecat_2018-08-17-15-29-48

ducafecat_2018-08-17-15-30-38

参考

原文地址:https://www.cnblogs.com/ExMan/p/13471524.html