Skip to content

Publish a Release

Publish a Release #1

Workflow file for this run

name: Publish a Release
on:
workflow_dispatch:
inputs:
version:
description: 'Version without leading "v" (1.0, 2.3.4, 0.1.0-pre1)'
required: true
default: ''
image_tags:
description: 'Extra docker image tags ("latest,test")'
required: true
default: 'latest,release'
jobs:
publish:
runs-on: ubuntu-latest
timeout-minutes: 20
permissions:
contents: write
packages: write
steps:
- name: Ensure version does not start with 'v'
uses: actions/github-script@v7
with:
github-token: ${{ github.token }}
script: |
version = context.payload.inputs.version;
if (/^v/.test(version)) throw new Error("Bad version number: " + version)
- uses: actions/checkout@v4
- name: Cache data/sources
uses: ./.github/cache-sources-action
- uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: 'maven'
- name: Check tag does not exist yet
run: if git rev-list "v${{ github.event.inputs.version }}"; then echo "Tag already exists. Aborting the release process."; exit 1; fi
- run: ./scripts/set-versions.sh "${{ github.event.inputs.version }}"
- run: ./scripts/build-release.sh
- run: ./scripts/test-release.sh "${{ github.event.inputs.version }}"
- name: Create tag
uses: actions/github-script@v7
with:
github-token: ${{ github.token }}
script: |
github.rest.git.createRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: "refs/tags/v${{ github.event.inputs.version }}",
sha: context.sha
})
- run: mv target/*with-deps.jar planetiler-openmaptiles.jar
- run: sha256sum planetiler-openmaptiles.jar > planetiler-openmaptiles.jar.sha256
- run: md5sum planetiler-openmaptiles.jar > planetiler-openmaptiles.jar.md5
- name: Create Release
uses: softprops/action-gh-release@v2
with:
fail_on_unmatched_files: true
tag_name: v${{ github.event.inputs.version }}
draft: true
files: |
planetiler-openmaptiles.jar*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: 'Build and push to dockerhub'
run: ./mvnw -B -ntp -Pjib-multi-arch -Djib.to.tags="latest" package jib:build --file pom.xml
- run: sha256sum target/*with-deps.jar
- run: md5sum target/*with-deps.jar
- name: 'Upload artifact'
uses: actions/upload-artifact@v4
with:
name: planetiler-build
path: target/*with-deps.jar