golang项目使用gitlab-runner自动编译
背景:
gitlab 版本: 8.12.x
go版本: 1.13.x
gitlab-runner版本:1.11.x
go配置部分:
下载相应版本的go,本次使用1.13版本
https://studygolang.com/dl
配置go环境,在"/etc/profile"配置变量
export GOROOT=/opt/go
export GOPATH=/data/golang
export PATH=$PATH:$GOROOT/bin
验证
go version
gitlab-runner配置部分:
因为我们现在的gitlab版本比较低,所以只能使用runner的版本是1.1x的。runner的安装参考一下repo内容:
name=runner_gitlab-ci-multi-runner
baseurl=https://packages.gitlab.com/runner/gitlab-ci-multi-runner/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/runner/gitlab-ci-multi-runner/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[runner_gitlab-ci-multi-runner-source]
name=runner_gitlab-ci-multi-runner-source
baseurl=https://packages.gitlab.com/runner/gitlab-ci-multi-runner/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/runner/gitlab-ci-multi-runner/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
再执行
yum install -y gitlab-ci-multi-runner-1.11.2-1.x86_64
gitlab-runner配置:
在命令行针对gitlab的project进行注册,有token和url需要关注,在project的runner里面可以找到
执行命令"gitlab-runner register"进行注册
需要按照步骤输入:
输入gitlab的服务URL,这个使用的是https://gitlab.com/
输入gitlab-ci的Toekn,获取方式参考上图
关于集成服务中对于这个runner的描述
给这个gitlab-runner输入一个标记,这个tag非常重要,在后续的使用过程中需要使用这个tag来指定gitlab-runner
是否运行在没有tag的build上面。在配置gitlab-ci的时候,会有很多job,每个job可以通过tags属性来选择runner。这里为true表示如果job没有配置tags,也执行
是否锁定runner到当前项目
选择执行器,gitlab-runner实现了很多执行器,可用在不同场景中运行构建,详情可见GitLab Runner Executors,这里选用Shell模式
配置完成,在project中添加ci脚本(没有deploy过程)
stages:
- test
- build
- deploy
test:
stage: test
tags:
- golang-runner
script:
- go test ./...
build:
stage: build
tags:
- golang-runner
script:
- go build
运行展示
有疑问加站长微信联系(非本文作者)