基于gitlab的golang项目构建

· · 1131 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

1. 准备Makefile

根目录下创建名为Makefile的文件。内容如下:

export VERSION=1.0.0
export ENV=prod
export PROJECT=bpsp

TOPDIR=$(shell pwd)
# OBJ_DIR=$(OUTPUT)/$(PROJECT)
# OBJTAR=$(OBJ_DIR).tar.gz
SOURCE_BINARY_DIR=$(TOPDIR)/bin
SOURCE_BINARY_FILE=$(SOURCE_BINARY_DIR)/$(PROJECT)
SOURCE_MAIN_FILE=main.go

BUILD_TIME=`date +%Y%m%d%H%M%S`
BUILD_FLAG=-ldflags "-X main.version=$(VERSION) -X main.buildTime=$(BUILD_TIME)"


# all: build pack
all: build
    @echo "ALL DONE"
    @echo "Program:         "  $(PROJECT)
    @echo "Version:         "  $(VERSION)
    @echo "ENV:             "  $(ENV)

build:
    @echo "start go build...."
    @rm -rf $(SOURCE_BINARY_DIR)/*
    @go build $(BUILD_FLAG) -o $(SOURCE_BINARY_FILE) $(SOURCE_MAIN_FILE)

# pack:
#   @echo "\n\rpacking...."
#   @tar czvf $(OBJTAR) -C $(OBJ_DIR) .

其中,bpsp可以换成任意项目名称。

2. 准备.gitlab.ci.yml

2.1绑定Runner到项目

手动绑定:进入项目>>Settings>>Runners>>Set up a specific Runner manually:


image.png

2.2下载GitLab Runner

# CentOS
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
sudo yum install gitlab-ci-multi-runner

2.3注册GitLab Runner

CentOS官方文档说明
其中,token密码从2.1图中打码的地方获取。

2.4查看Runner状态

sudo gitlab-runner list
# Listing configured runners                          ConfigFile=/etc/gitlab-runner/config.toml
# my-runner                                           Executor=docker Token=ShLLfihpPJYzm717qa41 URL=https://gitlab.com

2.5 .gitlab-ci.yml编写

image: golang:alpine

before_script:
  - export
  - mkdir -p /go/src/gitlab.com/jaderabbit/bpsp
  - cp -r . /go/src/gitlab.com/jaderabbit/bpsp/
  - cd /go/src/gitlab.com/jaderabbit/bpsp/

stages:
  - build

# jobs
build-jobs:
  stage: build
  script:
    - go build .

2.6本地测试

gitlab-runner exec docker build-jobs

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:

查看原文:基于gitlab的golang项目构建

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1131 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传