Skip to content

Create prereleases on push to main, and allow manual dispatch to crea… #14

Create prereleases on push to main, and allow manual dispatch to crea…

Create prereleases on push to main, and allow manual dispatch to crea… #14

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle
name: Gradle Package
on:
release:
types: [created]
push:
branches:
- main
workflow_dispatch:
inputs:
prerelease_tag:
description: 'Tag name for the prerelease (e.g., v1.0.0-beta.1)'
required: true
type: string
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
packages: write
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github. workspace }} # location for the settings.xml file
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
- name: Build with Gradle
run: ./gradlew build
# The USERNAME and TOKEN need to correspond to the credentials environment variables used in
# the publishing section of your build.gradle
- name: Publish to GitHub Packages
run: ./gradlew publish
env:
USERNAME: ${{ github.actor }}
TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Upload release asset for official releases
- name: Upload Release Asset
if: github.event_name == 'release'
uses: softprops/action-gh-release@v2
with:
files: build/libs/showscript.jar
# Create prerelease on push to main
- name: Create Prerelease on Push to Main
if: github.event_name == 'push' && github. ref == 'refs/heads/main'
uses: softprops/action-gh-release@v2
with:
tag_name: prerelease-${{ github.sha }}
name: Prerelease ${{ github.sha }}
prerelease: true
files: build/libs/showscript.jar
body: |
Automated prerelease from commit ${{ github.sha }}
Branch: main
Commit: ${{ github. event.head_commit. message }}
# Create prerelease on manual dispatch
- name: Create Prerelease on Manual Dispatch
if: github.event_name == 'workflow_dispatch'
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ inputs.prerelease_tag }}
name: Prerelease ${{ inputs.prerelease_tag }}
prerelease: true
files: build/libs/showscript.jar
body: |
Manual prerelease from branch ${{ github.ref_name }}
Commit: ${{ github.sha }}