美文网首页
基于gitlab的golang项目构建

基于gitlab的golang项目构建

作者: 天地一小儒 | 来源:发表于2019-11-26 17:39 被阅读0次

    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项目构建

          本文链接:https://www.haomeiwen.com/subject/vgqywctx.html