CI/CD
以 Coding 为例
# 前言
RuoYi-Cloud-Plus 编译得到的 jar 包有别于一般 Spring Boot 项目的 jar 包,后者生产和开发环境共用一个 jar 包,通过启动参数、环境变量等方式传递参数来区分环境,而 RuoYi-Cloud-Plus 默认是通过 pom 文件中的变量来存储环境参数,默认为 dev 环境,但我个人不建议将 prod 的参数存储在项目中,而是通过环境变量的方式传递,至于 dev 的参数,通常都是内网资源,保密要求不高的项目,可以存储在 pom 里。
参考:Apache Maven Resources Plugin – Filtering (opens new window)
# 检出
流程配置详情 - 什么是 DevOps? DevOps 介绍 | CODING DevOps (opens new window)
- 每次 push 时,触发构建
- 只 pull 最新的代码即可
stage('检出') {
steps {
checkout(scm: [
$class: 'GitSCM',
branches: [[name: GIT_BUILD_REF]],
userRemoteConfigs: [[
url: GIT_REPO_URL,
credentialsId: CREDENTIALS_ID
]]], changelog: false, poll: false)
}
}
# Maven 编译
stage('Maven构建') {
agent {
docker {
reuseNode 'true'
registryUrl 'https://coding-public-docker.pkg.coding.net'
image 'public/docker/openjdk:17-2024.03'
args '-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker --entrypoint='
}
}
steps {
echo '自定义构建过程开始'
sh 'mvn clean install -D maven.test.skip=true -P dev'
}
}
由于构建需要用到 maven 和 jdk17,使用 docker 镜像构建更为方便
上次更新: 2024/04/28, 12:56:23