centos8安装gitlab runner

添加官方仓库
Add the GitLab official repository to your servers package manager.

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

Install the GitLab Runner service.

sudo yum install gitlab-runner

Test that the GitLab Runner is running

sudo service gitlab-runner status

在 GNU/Linux 系统上注册 Runner:

<pre>$ gitlab-runner register</pre>

# 输入 GitLab 实例 URL::[查看地址setting 》CI/CD 》 Runners settings ]

<pre>Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
https://gitlab.oneitfarm.com/</pre>

# 输入获取到的用于注册 Runner 的 token:[查看地址setting 》CI/CD 》 Runners settings ]

<pre>Please enter the gitlab-ci token for this runner
xxx</pre>

# 输入该 Runner 的描述,稍后也可通过 GitLab's UI 修改:

<pre>Please enter the gitlab-ci description for this runner
[hostame] xxx</pre>

# [给该 Runner 指派 tags](https://docs.gitlab.com.cn/ce/ci/runners/#using-tags), 稍后也可以在 GitLab's UI 修改: 【tags需要定义,不同的job可以通过tag跑不同的runner】

<pre>Please enter the gitlab-ci tags for this runner (comma separated):
IDG-mamidian</pre>

#选择 Runner 是否接收[未指定 tags](https://docs.gitlab.com.cn/ce/ci/runners/#using-tags) 的任务(默认值:false), 稍后可以在 GitLab's UI 修改:

<pre>Whether to run untagged jobs [true/false]:
[false]: false</pre>

# 选择是否为当前项目锁定该 Runner, 之后也可以在 GitLab's UI 修改。 该功能通常用于被指定为某个项目的 Runner (默认值:true):

<pre>Whether to lock Runner to current project [true/false]:
[true]: true</pre>

# 选择 [Runner executor](https://docs.gitlab.com.cn/runner/executors/README.html):

<pre>Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
shell</pre>

# 如果你选择 Docker 作为你的 executor,注册程序会让你设置一个默认的镜像, 作用于 .gitlab-ci.yml 中未指定镜像的项目:

<pre>Please enter the Docker image (eg. ruby:2.1):
alpine:latest</pre>

# 注册成功后可在项目页面 》settings 》CI/CD 》Runner setting下看到相关配置,并可一修改runner配置

注意:Tags必填且要唯一

注意,如果是特定项目给个人使用就用Specific Runners ,只有管理员才可以创建共享runner。

GitLab CI 中的基本概念

Runner

配合 GitLab 执行 CI 任务,是实际执行 CI 任务的进程,并将执行结果返回给 GitLab。一般一个项目分配一个 Runner,但也可以多个项目共享一个 Runner。
Executor

执行器,有多种选择,如:docker、shell 等,决定 Runner 以什么环境执行作业,一个 Runner 对应一个 Executor。
Pipline

流水线,流水线代表项目 CI/CD 的整个流程,分为多个阶段(在 .gitlab-ci.yml 中自己规定)。
Stage

阶段,一个 Pipline 对应多个阶段。
Job

CI/CD 中最小的执行单元,一个 Stage 对应多个 Jobs。

实例:

# 流水线分为测试阶段和构建阶段
stages:
  - test
  - build

# 测试作业
test_job:
  stage: test
  image: golang:1.14.2
  tags:
    - demo-project-runner
  services:
    # 执行测试时依赖 MySQL 服务
    - name: mysql:8.0.17
      # golang 容器中可与 mysql 容器通信的别名(内部会 DNS 解析)
      alias: mysql
      command: ['--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
  # 指定作业级变量,会作为环境变量传入 golang 和 mysql 容器
  variables:
    MYSQL_HOST: mysql
    MYSQL_ROOT_PASSWORD: root
    MYSQL_DATABASE: test
  # 执行脚本前的工作,设置 goproxy 加快依赖下载速度
  before_script:
    - go env -w GO111MODULE=on
    - go env -w GOPROXY=https://goproxy.cn,direct
  # 执行代码检查和单元测试
  script:
    - go vet ./...
    - go test -v -race ./...

# 构建作业
build_job:
  stage: build
  image: docker:latest
  
  # services:
  #  - docker:dind
  # variables:
  #   DOCKER_DRIVER: overlay2
  #   DOCKER_TLS_CERTDIR: ''
  
  script:
    # 可将一些变量放在 GitLab 项目设置里,防止密码被包含在代码中
    - docker build -t goapp:latest .
    - docker login -u $DOCKER_REGISTRY_USERNAME -p $DOCKER_REGISTRY_PASSWORD $DOCKER_REGISTRY_ADDR
    - docker tag goapp:latest ${DOCKER_REGISTRY_ADDR}/xvrzhao/goapp:latest
    - docker push ${DOCKER_REGISTRY_ADDR}/xvrzhao/goapp:latest
  tags:
    - demo-project-runner
  # 指定 master 分支的提交才会触发该作业
  only:
    - master

参考:
通过 GitLab Runner 实现 CI/CD 工作流(上)

GitLab CI/CD自动化部署(持续集成)

GitLab内置了 CI CD 工具,强大啊!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少陽君

谢谢老板的拿铁

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值