Gitlab-CI 初级篇 - Gitlab Runner

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

内容简介:在项目根目录下添加 .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

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

查看所有标签

猜你喜欢:

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

解密硅谷

解密硅谷

[美]米歇尔 E. 梅西纳(Michelle E. Messina)、乔纳森 C. 贝尔(Jonathan C. Baer) / 李俊、李雪 / 机械工业出版社 / 2018-12 / 50.00

《解密硅谷》由身处硅谷最中心的连续创业者米歇尔·梅西纳和资深的投资人乔纳森·贝尔联合撰写,二人如庖丁解牛一般为读者深入剖析硅谷成功的原因:从硅谷的创新机制、创业生态、投资领域的潜规则、秘而不宣的价值观等角度,让阅读本书的人能够在最短的时间内,拥有像硅谷人一样的商业头脑,从而快速发现机遇,顺利地躲过创业的坑,熬过创业生死挑战中的劫数,带领初创公司顺利地活下去,并实现快速增长。 如果初创公司能够......一起来看看 《解密硅谷》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具