From c444e6480854d88f26ade4ba9c53a430e3dd6f68 Mon Sep 17 00:00:00 2001 From: Github Actions <72205272+jockx-net@users.noreply.github.com> Date: Wed, 4 Aug 2021 13:08:26 +0200 Subject: [PATCH] Actions pipeline for automatic Github Release --- .github/workflows/maven-central-release.yml | 41 ---------- .github/workflows/release-new-version.yml | 84 +++++++++++++++++++++ pom.xml | 1 + 3 files changed, 85 insertions(+), 41 deletions(-) delete mode 100644 .github/workflows/maven-central-release.yml create mode 100644 .github/workflows/release-new-version.yml diff --git a/.github/workflows/maven-central-release.yml b/.github/workflows/maven-central-release.yml deleted file mode 100644 index 4dcba93ad..000000000 --- a/.github/workflows/maven-central-release.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: Maven Central Relase -on: - workflow_dispatch: - inputs: - releaseVersion: - description: 'Release version' - required: false - -env: - MAVEN_OPTS: -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn - GITHUB_BOT_NAME: github-actions - GITHUB_BOT_EMAIL: 41898282+github-actions[bot]@users.noreply.github.com - -jobs: - maven-central-release: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - run: git config --global user.email "${GITHUB_BOT_EMAIL}" - - run: git config --global user.name "${GITHUB_BOT_NAME}" - - name: Set up JDK 11 - uses: actions/setup-java@v2 - with: - java-version: 11 - distribution: adopt - server-id: ossrh - server-username: OSSRH_TOKEN_USERNAME - server-password: OSSRH_TOKEN_PASSWORD - gpg-private-key: ${{ secrets.JAVA_NATIVE_PGP_KEY }} - gpg-passphrase: PGP_KEY_PASSPHRASE - - name: Set release version if provided as input - if: github.event.inputs.releaseVersion != '' - run: echo "VERSIONS=-DreleaseVersion=${{ github.event.inputs.releaseVersion }}" >> $GITHUB_ENV - - name: Publish artifacts to Maven Central - run: mvn -B release:prepare release:perform -P package,maven-central-release ${VERSIONS} - env: - OSSRH_TOKEN_USERNAME: ${{ secrets.OSSRH_TOKEN_USERNAME }} - OSSRH_TOKEN_PASSWORD: ${{ secrets.OSSRH_TOKEN_PASSWORD }} - PGP_KEY_PASSPHRASE: ${{ secrets.JAVA_NATIVE_PGP_KEY_PASSPHRASE }} - - name: Push changes back to repo - run: git push && git push --tags --force diff --git a/.github/workflows/release-new-version.yml b/.github/workflows/release-new-version.yml new file mode 100644 index 000000000..751011769 --- /dev/null +++ b/.github/workflows/release-new-version.yml @@ -0,0 +1,84 @@ +name: Release New Version +on: + workflow_dispatch: + inputs: + releaseVersion: + description: 'Release version' + required: false + +env: + MAVEN_OPTS: -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn + GITHUB_BOT_NAME: github-actions + GITHUB_BOT_EMAIL: 41898282+github-actions[bot]@users.noreply.github.com + +jobs: + maven-central-release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - run: git config --global user.email "${GITHUB_BOT_EMAIL}" + - run: git config --global user.name "${GITHUB_BOT_NAME}" + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + java-version: 11 + distribution: adopt + server-id: ossrh + server-username: OSSRH_TOKEN_USERNAME + server-password: OSSRH_TOKEN_PASSWORD + gpg-private-key: ${{ secrets.JAVA_NATIVE_PGP_KEY }} + gpg-passphrase: PGP_KEY_PASSPHRASE + - name: Set release version if provided as input + if: github.event.inputs.releaseVersion != '' + run: echo "VERSIONS=-DreleaseVersion=${{ github.event.inputs.releaseVersion }}" >> $GITHUB_ENV + - name: Publish artifacts to Maven Central + run: mvn -B release:prepare release:perform -P package,maven-central-release ${VERSIONS} + env: + OSSRH_TOKEN_USERNAME: ${{ secrets.OSSRH_TOKEN_USERNAME }} + OSSRH_TOKEN_PASSWORD: ${{ secrets.OSSRH_TOKEN_PASSWORD }} + PGP_KEY_PASSPHRASE: ${{ secrets.JAVA_NATIVE_PGP_KEY_PASSPHRASE }} + - run: echo "releaseTag=$(git tag --points-at HEAD^)" >> $GITHUB_ENV + - run: echo "releaseVersion=$(echo ${{ env.releaseTag }} | cut -c2-)" >> $GITHUB_ENV + - name: Push changes back to repo + run: git push && git push --tags --force + outputs: + releaseTag: ${{ env.releaseTag }} + releaseVersion: ${{ env.releaseVersion }} + + github-release: + runs-on: ubuntu-latest + needs: maven-central-release + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ needs.maven-central-release.outputs.releaseTag }} + - run: git config --global user.email "${GITHUB_BOT_EMAIL}" + - run: git config --global user.name "${GITHUB_BOT_NAME}" + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + java-version: 11 + distribution: adopt + - name: Build jar with dependencies included + run: mvn -B install -Ppackage,jar-with-dependencies + - name: Publish as release + uses: ncipollo/release-action@v1 + with: + name: ${{ needs.maven-central-release.outputs.releaseVersion }} + tag: ${{ needs.maven-central-release.outputs.releaseTag }} + artifacts: target/*.jar + token: ${{ secrets.GITHUB_TOKEN }} + + update-readme: + runs-on: ubuntu-latest + needs: maven-central-release + env: + ver: ${{ needs.maven-central-release.outputs.releaseVersion }} + steps: + - uses: actions/checkout@v2 + - run: git config --global user.email "${GITHUB_BOT_EMAIL}" + - run: git config --global user.name "${GITHUB_BOT_NAME}" + - run: sed -i "/jssc<\/artifactId>/{n;s/.*<\/version>/${ver}<\/version>/}" README.md + - run: sed -i "s/io.github.java-native:jssc:.*\"/io.github.java-native:jssc:${ver}\"/" README.md + - run: sed -i "s/io.github.java-native:jssc:.*'/io.github.java-native:jssc:${ver}'/" README.md + - run: git diff --quiet README.md || git commit -m "Update README.md" README.md && git pull --rebase && git push diff --git a/pom.xml b/pom.xml index 326e3c058..bc05be5d4 100644 --- a/pom.xml +++ b/pom.xml @@ -324,6 +324,7 @@ jar-with-dependencies + false