?> 待完善
devops-framework/
├── buildSrc # gradle项目构建目录
├── devops-boot-project # devops-boot源码目录
│ ├── devops-boot-core # 核心实现模块
│ ├── devops-boot-dependencies # maven bom模块
│ ├── devops-boot-starters # starter组件目录
│ └── devops-boot-tools # gradle脚本等工具目录
├── devops-boot-sample # sample项目
└── docs # 项目文档项目采用主干开发模式,主要包含以下几种分支:
master主干开发分支release-*已发布的版本分支...其他特性分支,如jdk17
- 发布jar包到本地仓库,同时会发布插件jar包
./gradlew publishToMavenLocal- 发布jar包到Sonatype中央仓库,同时会发布插件jar包
./gradlew publish- 发布gradle格式插件包到gradle portal
./gradlew publishPlugins当需要发布到中央仓库时,会读取以下环境变量:
ORG_GRADLE_PROJECT_repoUsernameSonatype用户名ORG_GRADLE_PROJECT_repoPasswordSonatype密码ORG_GRADLE_PROJECT_signingKeygpg签名keyORG_GRADLE_PROJECT_signingKeyIdgpg签名key idORG_GRADLE_PROJECT_signingPasswordgpg签名密码
配合github流水线自动发布时, 项目中编写的github流水线release.yml
会自动读取以下github secrets并设置为对应的环境变量:
secrets.SONATYPE_USERNAMEsecrets.SONATYPE_PASSWORDsecrets.SIGNING_KEYsecrets.SIGNING_KEY_IDsecrets.SIGNING_PASSWORD
项目采用语义化版本管理,同时通过github流水线进行自动化发布。自动化发布过程包括版本升级、创建发布分支、 创建tag、创建github release、部署jar包等等
发布需要人工触发,分为以下两个步骤:
-
创建发布分支
运行
Create release branchAction。创建发布分支只允许从master或者hotfix-*创建。 -
发布Jar包
运行
ReleaseAction,选择要发布的发布分支release-*。发布只允许从release-*发布。