在CentOS系统上使用Golang进行持续集成(CI)和打包,可以遵循以下步骤:
首先,确保你的CentOS系统上已经安装了以下工具:
sudo yum install -y golang
sudo yum install -y git
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
确保你的Go环境变量已经配置好:
echo "export GOPATH=$HOME/go" >> ~/.bashrc
echo "export PATH=$PATH:$GOPATH/bin" >> ~/.bashrc
source ~/.bashrc
假设你的项目结构如下:
myproject/
├── main.go
├── Dockerfile
└── .gitlab-ci.yml # 或者 Jenkinsfile
在项目根目录下创建一个Dockerfile
,用于构建Docker镜像:
# 使用官方Go镜像作为基础镜像
FROM golang:1.17
# 设置工作目录
WORKDIR /app
# 复制go.mod和go.sum文件
COPY go.mod go.sum ./
# 下载所有依赖
RUN go mod download
# 复制项目源代码
COPY . .
# 构建可执行文件
RUN go build -o myapp .
# 暴露端口(如果需要)
EXPOSE 8080
# 运行可执行文件
CMD ["./myapp"]
在项目根目录下创建一个.gitlab-ci.yml
文件:
stages:
- build
- test
- deploy
variables:
DOCKER_IMAGE: myproject
build:
stage: build
script:
- docker build -t $DOCKER_IMAGE .
- docker push $DOCKER_IMAGE
test:
stage: test
script:
- go test ./...
deploy:
stage: deploy
script:
- echo "Deploying $DOCKER_IMAGE to production"
# 添加部署脚本
在Jenkins中创建一个新的Pipeline项目,并配置Jenkinsfile
:
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'docker build -t myproject .'
sh 'docker push myproject'
}
}
stage('Test') {
steps {
sh 'go test ./...'
}
}
stage('Deploy') {
steps {
echo 'Deploying myproject to production'
// 添加部署脚本
}
}
}
}
将代码推送到GitLab仓库,GitLab CI/CD会自动触发构建流程。
在Jenkins中运行Pipeline项目,Jenkins会按照Jenkinsfile
中的配置执行构建、测试和部署步骤。
通过以上步骤,你可以在CentOS系统上使用Golang进行持续集成和打包。根据你的具体需求,可以进一步调整和优化CI/CD流程。