Publish releases #64
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# GitHub Actions workflow to publish new releases. | |
name: "Publish releases" | |
on: workflow_dispatch | |
env: | |
JAVA_VERSION: 21 | |
jobs: | |
github: | |
name: "GitHub" | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
outputs: | |
version: "${{ steps.version.outputs.version }}" | |
steps: | |
- name: "Checkout repository" | |
uses: actions/checkout@v3 | |
- name: "Fetch git tags" # Required for axion-release-plugin | |
run: git fetch --tags --unshallow | |
- name: "Set up Java ${{ env.JAVA_VERSION }}" | |
uses: actions/setup-java@v3 | |
with: | |
java-version: "${{ env.JAVA_VERSION }}" | |
distribution: "liberica" | |
- name: "Grant execute permission for gradlew" | |
run: chmod +x gradlew | |
- name: "Release new version" | |
run: | | |
git config user.name 'github-actions[bot]' | |
git config user.email 'github-actions[bot]@users.noreply.github.com' | |
./gradlew release | |
- name: "Get current version" | |
id: version | |
run: echo "::set-output name=version::$(./gradlew -q -Prelease.quiet cV)" | |
maven: | |
name: "Maven" | |
runs-on: ubuntu-latest | |
needs: [ github ] | |
steps: | |
- name: "Checkout repository" | |
uses: actions/checkout@v3 | |
with: | |
ref: "refs/tags/${{ needs.github.outputs.version }}" | |
- name: "Fetch git tags" # Required for axion-release-plugin | |
run: git fetch --tags --unshallow | |
- name: "Set up Java ${{ env.JAVA_VERSION }}" | |
uses: actions/setup-java@v3 | |
with: | |
java-version: "${{ env.JAVA_VERSION }}" | |
distribution: "adopt" | |
- name: "Grant execute permission for gradlew" | |
run: chmod +x gradlew | |
- name: "Gradle publish" | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: "shadowJar publish" | |
env: | |
MAVEN_NAME: ${{ secrets.MAVEN_NAME }} | |
MAVEN_TOKEN: ${{ secrets.MAVEN_TOKEN }} | |
docker: | |
name: "Docker" | |
runs-on: ubuntu-latest | |
needs: [ github ] | |
steps: | |
- name: "Checkout repository" | |
uses: actions/checkout@v3 | |
with: | |
ref: "refs/tags/${{ needs.github.outputs.version }}" | |
- name: "Fetch git tags" # Required for axion-release-plugin | |
run: git fetch --tags --unshallow | |
- name: "Set up QEMU" | |
uses: docker/setup-qemu-action@v2 | |
- name: "Set up Docker Buildx" | |
uses: docker/setup-buildx-action@v2 | |
- name: "Login to DockerHub" | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: "Login to GitHub Container Registry" | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: "Build and push" | |
id: docker_build | |
uses: docker/build-push-action@v3 | |
with: | |
context: . | |
platforms: "linux/amd64,linux/arm64" | |
push: true | |
tags: | | |
dzikoysk/reposilite:latest | |
dzikoysk/reposilite:${{ needs.github.outputs.version }} | |
ghcr.io/dzikoysk/reposilite:latest | |
ghcr.io/dzikoysk/reposilite:${{ needs.github.outputs.version }} |