【发布时间】:2021-08-28 00:51:15
【问题描述】:
我们正在尝试将 CI 从 Jenkins 迁移到 Maven 项目的 Github 操作。 Maven 存储库允许将 POM 版本精确推送一次,除非版本以 -SNAPSHOT 结尾。
因此,在我们当前的流程中,我们区分推送到develop,仅当项目版本以-SNAPSHOT 结尾时才推送到Maven 存储库,推送到main,如果NOT 以-SNAPSHOT 结尾。
在 Jenkins 中是这样的:
stage("on Merge to develop") {
when {
anyOf {
branch "develop"
}
expression {
return env.POM_VERSION ==~ /.*-SNAPSHOT/
}
not {
changeRequest()
}
}
steps {
echo "======== Merge into Develop ========"
}
}
stage("on publish release (merge to main)") {
when {
anyOf {
branch "master"
branch "main"
}
not {
expression {
return env.POM_VERSION ==~ /.*-SNAPSHOT/
}
}
not {
changeRequest()
}
}
steps {
echo "======== Merge into Master & PUSH ========"
}
}
在 GitHub 操作中,我们知道如何在特定分支上运行操作,但我们如何:
- 将 POM 版本放入 env(或其他变量)中?
- 根据 POM 版本有条件地运行步骤?
当然——如果有更好的方法,我们会改造我们的流程
【问题讨论】:
标签: maven jenkins github-actions