【问题标题】:Maven release from Github Actions来自 Github Actions 的 Maven 版本
【发布时间】:2020-02-03 20:25:01
【问题描述】:

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

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

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

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

【问题讨论】:

标签: maven github maven-release-plugin github-actions


【解决方案1】:

通过添加 workflow_dispatch 事件,您现在可以在手动触发的 GitHub 操作上创建工作流。此外,您可以指定输入,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"
  1. 使用给定的 releaseVersiondevelopmentVersion 设置作业以发布 Maven。
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 }}

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

<settings>
  ...
  <servers>
    <server>
      <id>server.id</id>
      <username>${env.CI_DEPLOY_USERNAME}</username>
      <password>${env.CI_DEPLOY_PASSWORD}</password>
    </server>
  </servers>
</settings>

您可以在项目的设置页面上同时配置secrets CI_DEPLOY_USERNAMECI_DEPLOY_PASSWORD

这是一个 Maven 版本workflow 配置的完整示例供参考。

【讨论】:

  • 如何获取actions@github.com的密码? CI_DEPLOY_PASSWORD?我想通过 ssh 来做
最近更新 更多