centos

Golang在CentOS如何进行持续集成

小樊
35
2025-08-16 14:56:42
栏目: 编程语言

在CentOS上进行Golang持续集成可按以下步骤操作,以Jenkins和GitLab CI为例:

一、环境准备

  1. 安装Golang

    sudo yum install golang
    export GOROOT=/usr/local/go
    export GOPATH=$HOME/go
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
    
  2. 选择CI工具

    • Jenkins:需安装Go插件,适合复杂流水线。
    • GitLab CI/CD:原生支持Go,配置简单,适合GitLab仓库。
    • Drone:轻量级,支持自托管,需搭配Docker。

二、配置Jenkins(示例)

  1. 安装插件
    在Jenkins管理界面安装:Go Plugin、Git Plugin、Pipeline Plugin。

  2. 创建Pipeline Job

    • 配置源码管理:选择Git,填写仓库URL和凭证。
    • 编写Pipeline脚本(示例):
      pipeline {
          agent any
          tools {
              go 'go1.20' // 配置Go版本
          }
          stages {
              stage('Checkout') {
                  steps {
                      git branch: 'main', url: 'https://github.com/your-repo.git'
                  }
              }
              stage('Build') {
                  steps {
                      sh 'go build -o myapp'
                  }
              }
              stage('Test') {
                  steps {
                      sh 'go test ./...'
                  }
              }
              stage('Deploy') {
                  steps {
                      sh './deploy.sh' // 自定义部署脚本
                  }
              }
          }
      }
      
  3. 触发构建
    保存后手动运行或通过Git Webhook自动触发。

三、配置GitLab CI/CD(示例)

  1. 创建.gitlab-ci.yml

    stages:
      - build
      - test
      - deploy
    
    build:
      stage: build
      image: golang:1.20
      script:
        - go mod download
        - go build -o myapp
      artifacts:
        paths:
          - myapp
    
    test:
      stage: test
      image: golang:1.20
      script:
        - go test -v ./...
    
    deploy:
      stage: deploy
      image: docker:latest
      services:
        - docker:dind
      script:
        - docker build -t my-go-app:latest .
        - docker push my-go-app:latest
      only:
        - main
    
  2. 触发构建
    推送代码到GitLab仓库,CI/CD流程自动执行。

四、关键优化

五、工具对比

工具 优势 适用场景
Jenkins 插件丰富,支持多步骤流水线 复杂企业级项目
GitLab CI 与GitLab深度集成,配置简洁 GitLab仓库项目
Drone 轻量级,支持Docker原生 微服务或云原生项目

参考资料:

0
看了该问题的人还看了