如何在 GitHub 中自动化 Maven 项目的版本控制?

德米特罗·查索夫斯基

我正在尝试将自动或半自动版本控制转换为GitHub.

我研究了自动化发布工作流程的可能性,它似乎不是GitHub.

每当我在分支pom.xml上创建标签GitHub或合并到master分支时,我都希望自动更新版本

德米特罗·查索夫斯基

我找到了一个可以进一步扩展的 Github Actions 解决方案。每当我发布并手动指定发布说明和更改日志时,因此可以从github.event.release.tag_name

mvn -B versions:set -DnewVersion=${{ github.event.release.tag_name }} -DgenerateBackupPoms=false

对实际 GitHub 工作流程的参考在这里

.github/workflows/deploy.yml 在撰写本文时:

name: Publish package to the Maven Central Repository
on:
  release:
    types: [created]

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - name: Check out Git repository
        uses: actions/checkout@v2
      - name: Install Java and Maven
        uses: actions/setup-java@v1
        with:
          java-version: 8
      - if: github.event.release
        name: Update version in pom.xml (Release only)
        run: mvn -B versions:set -DnewVersion=${{ github.event.release.tag_name }} -DgenerateBackupPoms=false
      - name: Release Maven package
        uses: samuelmeuli/[email protected]
        with:
          maven_profiles: deploy, verify
          gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
          gpg_passphrase: ${{ secrets.GPG_PASSPHRASE }}
          nexus_username: ${{ secrets.OSSRH_USERNAME }}
          nexus_password: ${{ secrets.OSSRH_TOKEN }}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在IntelliJ中禁用新项目的版本控制?

如何在jsp页面中获取Maven项目的版本号?

在推广基础ci环境中如何处理项目的jira版本和maven版本

如何在多模块Maven项目自动重用依赖版本?

如何在maven项目的main方法中获取TestClass?

自动化 Github 提交到 Google AppEngine 版本

Maven 项目中自动化框架组件的结构

如何基于GitHub Webhook自动化Docker部署?

如何使用一些自动化脚本在Github上下载存储库所有版本的源代码?

如何在Maven原型中嵌入原型项目版本?

如何在 logback.xml 中获取 Maven 项目版本

如何在多模块Maven项目中让子项目继承超级项目的依赖版本?

如何使用JUnit创建Maven插件的自动化测试?

如何在Bitrise上运行Maven / JVM(例如Appium + Saucelabs / Selenium + Browserstack)测试自动化

如何从API捕获项目的最新GitHub版本?

如何在Eclipse中自动为Maven项目配置Checkstyle

Maven 发布插件 - 如何提升发布项目的版本

Selenium自动化项目(Java)中的JavaScript或如何不滚动<选择>列表

如何在Intellij Idea中更改项目的Java版本?

如何在Hg中删除项目的指定版本?

如何自动化引用源文件夹之外的多个项目的Web项目?

在 Laravel 中自动化项目

如何在多台机器上设置Maven项目的自动部署?

如何正确版本控制(svn:ignore)Java项目(Maven,Spring)?

在Powershell中为github自动化ssh-keygen

如何在Soap ui中自动化访问令牌

如何在自动化中验证音频/视频流

如何在多台机器中运行自动化

如何在 watir 中半自动化网页?