Skip to content

Commit

Permalink
Actions pipeline for automatic Github Release
Browse files Browse the repository at this point in the history
  • Loading branch information
Github Actions authored and pietrygamat committed Aug 7, 2021
1 parent 4558bc6 commit c444e64
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 41 deletions.
41 changes: 0 additions & 41 deletions .github/workflows/maven-central-release.yml

This file was deleted.

84 changes: 84 additions & 0 deletions .github/workflows/release-new-version.yml
Original file line number Diff line number Diff line change
@@ -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 "/<artifactId>jssc<\/artifactId>/{n;s/<version>.*<\/version>/<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
1 change: 1 addition & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,7 @@
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</execution>
</executions>
Expand Down

0 comments on commit c444e64

Please sign in to comment.