从 Github Actions 发布 Maven

use*_*821 5 github maven maven-release-plugin github-actions

我想知道我们是否可以在关闭里程碑后使用 Github Actions 来提交发布。

mvn release:prepare && mvn release:perform所以我之前所做的就是在本地计算机上提交,然后推送它。然而,通过 Github Actions,我希望能够从工作流程本身自动执行发布提交。

到目前为止,所有使用 Maven 和 Github Actions 的教程都仅限于运行clean install或测试检查或部署,但从未发布。

有人有使用 Github Actions 设置 Maven 版本的经验吗?谢谢

小智 9

添加工作流_dispatch事件后,您现在可以在手动触发的 GitHub Actions 上创建工作流。此外,您还可以指定输入,GitHub 将其显示为 UI 中的表单元素。这在使用 Maven 削减版本时特别有用。

  1. 创建一个包含两个输入字段的新工作流程:releaseVersiondevelopmentVersion
on:
  workflow_dispatch:
    inputs:
      releaseVersion:
        description: "Default version to use when preparing a release."
        required: true
        default: "X.Y.Z"
      developmentVersion:
        description: "Default version to use for new local working copy."
        required: true
        default: "X.Y.Z-SNAPSHOT"
Run Code Online (Sandbox Code Playgroud)
  1. 设置一个作业以使用给定的releaseVersion和来发布 Maven developmentVersion
jobs:
  release:
    runs-on: ubuntu-latest

    steps:
      # Checkout source code, set up Java, etc. Then...

      - name: Configure Git User
        run: |
          git config user.email "actions@github.com"
          git config user.name "GitHub Actions"

      - name: Maven Release
        run: mvn release:prepare release:perform -B -s .maven_settings.xml -DreleaseVersion=${{ github.event.inputs.releaseVersion }} -DdevelopmentVersion=${{ github.event.inputs.developmentVersion }}
        env:
          CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }}
          CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }}
Run Code Online (Sandbox Code Playgroud)

您必须.maven_settings.xml在项目的根目录中保存一个文件,其中包含username和 ,password以便在将工件下载或上传到repositoriesdistributionManagement部分中配置的存储库之前进行身份验证。

<settings>
  ...
  <servers>
    <server>
      <id>server.id</id>
      <username>${env.CI_DEPLOY_USERNAME}</username>
      <password>${env.CI_DEPLOY_PASSWORD}</password>
    </server>
  </servers>
</settings>
Run Code Online (Sandbox Code Playgroud)

您可以在项目的设置页面上配置机密 CI_DEPLOY_USERNAME和。CI_DEPLOY_PASSWORD

下面是 Maven 发布工作流配置的完整示例,供参考。