Skip to content

Release LITIENGINE #514

Release LITIENGINE

Release LITIENGINE #514

Workflow file for this run

name: Release LITIENGINE
on:
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+'
workflow_dispatch:
inputs:
incrementVersion:
type: choice
description: "increment version?"
required: true
default: 'none'
options:
- none
- patch
- minor
- major
schedule:
# Midnight every day
- cron: "0 0 * * *"
permissions:
contents: write
jobs:
release:
name: Release build
runs-on: ubuntu-latest
permissions:
contents: write
packages: read
steps:
- uses: actions/[email protected]
with:
fetch-depth: 0
- name: JDK Setup
uses: actions/[email protected]
with:
distribution: temurin
java-version: 21
- name: Gradle Setup
uses: gradle/gradle-build-action@v2
- name: Increment version
if: inputs.incrementVersion != 'none' && inputs.incrementVersion != ''
env:
GRGIT_USER: ${{ secrets.GITHUB_TOKEN }}
run: |
./gradlew incrementVersion --increment=${{inputs.incrementVersion}}
./gradlew pushTags
latest_tag=$(git describe --tags --abbrev=0)
echo "RELEASE_VERSION=$latest_tag" >> "$GITHUB_ENV"
- name: Publish Snapshot
if: inputs.incrementVersion == 'none' || inputs.incrementVersion == ''
env:
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.OSSRH_USERNAME }}
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.OSSRH_PASSWORD }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PGP_SECRET }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PGP_PASSPHRASE }}
run: ./gradlew publishToSonatype closeSonatypeStagingRepository
- name: Publish Stable
if: inputs.incrementVersion != 'none' && inputs.incrementVersion != ''
env:
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.OSSRH_USERNAME }}
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.OSSRH_PASSWORD }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PGP_SECRET }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PGP_PASSPHRASE }}
run: ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
- name: Create release notes
if: inputs.incrementVersion != 'none' && inputs.incrementVersion != ''
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref_name }}
run: |
gh release create "$RELEASE_VERSION" \
--repo="$GITHUB_REPOSITORY" \
--title="$RELEASE_VERSION" \
--generate-notes \
--draft
- name: Announce release
if: inputs.incrementVersion != 'none' && inputs.incrementVersion != ''
run: |
curl -X POST -H "Authorization: Bearer ${{ secrets.MASTODON_ACCESS_TOKEN }}" \
-F "status=#LITIENGINE version ${{ env.RELEASE_VERSION }} has just been released!
#GameDev #indiedev #videogames #IndieGameDev
${{ github.server_url }}/${{ github.repository }}/releases/tag/$RELEASE_VERSION" \
https://fosstodon.org/api/v1/statuses
package:
name: Package distribution
if: inputs.incrementVersion != 'none' && inputs.incrementVersion != ''
needs: release
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Package
run: ./gradlew jpackage -Prelease=true
- name: Upload package
uses: actions/upload-artifact@v4
with:
name: utiLITI-${{ runner.os }}
path: utiliti/build/jpackage
# TODO consider uploading the artifacts to itch.io automatically with butler, https://github.com/jdno/setup-butler