使用GitHub操作自动化JAR文件创建和释放工件上传
#java #springboot #cicd #githubactions

您有一个很棒的Java项目,每次更改代码库时,您都需要手动创建JAR文件并将其上传为版本。让我们看看如何自动化此版本工作流程。在这篇文章中,我假设您的回购位于Github。

  • 我们将使用github actions

  • 如果该目录尚不存在,则在您的存储库中创建一个.github/workflows目录。

  • 在.github/Workflows目录中,创建一个名为Release.Yml。

  • 的文件
  • 在Release.YML中复制以下代码

name: Java CI to create and upload release on pull request
on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

env:
  build-number: ${GITHUB_RUN_NUMBER}

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-java@v3
        with:
          java-version: '11'
          distribution: 'temurin'
          cache: 'maven'
      - run: mvn clean package -DskipTests
      - run: mkdir staging && mv target/yb-workload-sim.jar target/yb-workload-sim-${{ env.build-number }}.jar && cp target/*.jar staging
      - uses: actions/upload-artifact@v3
        with:
          name: Package
          path: staging
          retention-days: 1
      - uses: marvinpinto/action-automatic-releases@latest
        with:
          repo_token: "${{ secrets.YOUR-GITHUB-TOKEN }}"
          automatic_release_tag: "${{ github.run_number }}"
          title: "Automated Build ${{ github.run_number }}"
          prerelease: true
          files: staging/*.jar

让我们在上述代码中讨论我们在做什么:

  1. on:标签指示何时应触发此操作。在此示例中,当某人创建拉动请求或将代码推到主分支时,我会触发它。

  2. jobs:
    此步骤定义了这项工作所涉及的各个步骤。我们将使用Ubuntu-latest OS版本。

  3. 然后,我们将使用预构建的操作结帐获取代码。

  4. 之后,我们设置了java来编译罐子。

  5. 我们正在使用Maven构建JAR文件。我们将启动它创建一个JAR文件。

  6. 创建JAR文件时,我们将进行一些按摩以添加释放号码,然后使用上传Artifact Action作为伪影上传。

  7. 最后,我们将使用marvinpinto/action-automation-rease行动来创建和上传新版本。 marketplace中有多个可用的操作来创建版本。

就是这样!现在,每次您推出新代码时,GitHub操作都会为您创建和上传JAR。

您可以看到工作示例here

Screenshot showcasing the automated CI build and release process