Gitlab-CI 初级篇 - Gitlab Runner

栏目: 编程工具 · 发布时间: 7年前

内容简介:在项目根目录下添加 .gitlab-ci.yml 文件,整个持续集成系统是 Gitlab 自带的,要做的就是添加一个 Runner 到系统里来解析文件中的 script 部分。官方提供了安装方法,个人选择的是 install on macOS,按顺序安装:在注册 Runner 前需要做一些准备:

在项目根目录下添加 .gitlab-ci.yml 文件,整个持续集成系统是 Gitlab 自带的,要做的就是添加一个 Runner 到系统里来解析文件中的 script 部分。

安装 Gitlab Runner

官方提供了安装方法,个人选择的是 install on macOS,按顺序安装:

  1. 下载:
sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
复制代码
  1. 打开权限: sudo chmod +x /usr/local/bin/gitlab-runner
  2. 注册 Runner
  3. 安装并启动 Runner:
cd ~
 gitlab-runner install
 gitlab-runner start
复制代码

在注册 Runner 前需要做一些准备:

  1. 安装 Docker,并启动
  2. 通过 Gitlab 界面获取 Token。获取流程如下所示:
  • 登入 Gitlab,依次进入 Settings -> CI/CD -> Runners
  • 获取到的 Token 如图所示:
    Gitlab-CI 初级篇 - Gitlab Runner

注册 Gitlab Runner:

  1. 运行下面的命令:
sudo gitlab-runner register
复制代码
  1. 输入 Gitlab 实例的 URL:
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
 https://gitlab.com
复制代码
  1. 输入用来注册 Runner 的 token:
Please enter the gitlab-ci token for this runner
xxx
复制代码
  1. 输入 Runner 的描述,随后可在 GitLab 界面中修改:
Please enter the gitlab-ci description for this runner
 [hostame] my-runner
复制代码
  1. 输入与 Runner 绑定的标签(可修改):
Please enter the gitlab-ci tags for this runner (comma separated):
 runner
复制代码
  1. 选择 Runner 的执行方式:
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
 docker
复制代码
  1. 如果选择的执行方式是 Docker,会要求填写默认的镜像,这个镜像也可以在 .gitlab-ci.yml 中定义:
Please enter the Docker image (eg. ruby:2.1):
 alpine:latest
复制代码

Gitlab 同时提供非交互式的注册,一行命令就可以:

sudo gitlab-runner register \
  --non-interactive \
  --url "https://gitlab.com/" \
  --registration-token "获取的 token " \
  --executor "docker" \
  --docker-image alpine:latest \
  --description "runner" \
  --tag-list "docker,aws" \
  --run-untagged \
  --locked="false" \
复制代码

注册流程走完会在 ~/etc/gitlab-runner/ 目录下生成 config.toml 配置文件,这时候就可以在 Gitlab 的设置中看到激活的 Runner:

Gitlab-CI 初级篇 - Gitlab Runner

配置 .gitlab-ci.yml 文件

在这里只贴上个人配置,详细的资料都可以查到,在这里就不赘述了:

stages:
  - build
  - deploy

build:
  image: node:alpine
  stage: build
  script:
    - npm install
    - npm run build
  artifacts:
    expire_in: 1 week
    paths:
      - dist/
  only:
    - master

deploy_staging:
  image: alpine:latest
  stage: deploy
  before_script:
    - apk update
    - apk add --no-cache rsync openssh
  script:
    - mkdir -p ~/.ssh
    - echo "$SSH_PRIVATE_KEY" >> ~/.ssh/id_dsa
    - chmod 600 ~/.ssh/id_dsa
    - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
    - rsync -rav --delete dist/ "$SERVER_USER_HOST:$SERVER_MASTER_PATH"
  only:
    - master


复制代码

配置文件中建立了两个工程,分别是 build 和 deploy,需要补充的几点:

  • build 工程中通过 artifacts 标记新建的 dist 文件,以便在其它工程中能够复用这个文件;
  • 使用 ssh 登录服务器;
  • 使用 rsync 进行远程文件同步;
  • 考虑到安全性,配置文件中类似 $SERVER_USER_HOST 这样的变量在 Settings -> CI/CD -> Variables 中设置;
  • 在 Gitlab 设置中移除 tags 检测:
    Gitlab-CI 初级篇 - Gitlab Runner

使用命令行运行 Runner, sudo gitlab-runner run ,启动成功后如下截图:

Gitlab-CI 初级篇 - Gitlab Runner

构建成功后如下截图:

Gitlab-CI 初级篇 - Gitlab Runner

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

Web Design for ROI

Web Design for ROI

Lance Loveday、Sandra Niehaus / New Riders Press / 2007-10-27 / USD 39.99

Your web site is a business--design it like one. Billions of dollars in spending decisions are influenced by web sites. So why aren't businesses laser-focused on designing their sites to maximize thei......一起来看看 《Web Design for ROI》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具