您有一个很棒的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
让我们在上述代码中讨论我们在做什么:
-
on:
标签指示何时应触发此操作。在此示例中,当某人创建拉动请求或将代码推到主分支时,我会触发它。 jobs:
此步骤定义了这项工作所涉及的各个步骤。我们将使用Ubuntu-latest OS版本。-
然后,我们将使用预构建的操作结帐获取代码。
-
之后,我们设置了java来编译罐子。
-
我们正在使用Maven构建JAR文件。我们将启动它创建一个JAR文件。
-
创建JAR文件时,我们将进行一些按摩以添加释放号码,然后使用上传Artifact Action作为伪影上传。
-
最后,我们将使用marvinpinto/action-automation-rease行动来创建和上传新版本。 marketplace中有多个可用的操作来创建版本。
就是这样!现在,每次您推出新代码时,GitHub操作都会为您创建和上传JAR。
您可以看到工作示例here。