94 lines
No EOL
3.2 KiB
YAML
94 lines
No EOL
3.2 KiB
YAML
name: Release tagged build
|
|
|
|
on:
|
|
workflow_call:
|
|
secrets:
|
|
MAVEN_USER:
|
|
required: false
|
|
MAVEN_PASSWORD:
|
|
required: false
|
|
CURSEFORGE_TOKEN:
|
|
required: false
|
|
MODRINTH_TOKEN:
|
|
required: false
|
|
inputs:
|
|
workspace:
|
|
description: 'setupCIWorkspace/setupDecompWorkspace'
|
|
required: false
|
|
default: "setupCIWorkspace"
|
|
type: string
|
|
workflow_dispatch:
|
|
inputs:
|
|
workspace:
|
|
description: 'setupCIWorkspace/setupDecompWorkspace'
|
|
required: false
|
|
default: "setupCIWorkspace"
|
|
type: string
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-24.04
|
|
env:
|
|
VERSION: ${{ github.ref_name }}
|
|
RELEASE_VERSION: ${{ github.ref_name }}
|
|
SNAPSHOT: ${{ endsWith(github.ref_name, '-snapshot') || contains(github.event.head_commit.message, '[snapshot]') }}
|
|
MAVEN_PUBLISHING_URL: ${{ vars.MAVEN_PUBLISHING_URL || 'https://nexus.gtnewhorizons.com/repository/releases/' }}
|
|
steps:
|
|
- name: Checkout mod repo
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 32
|
|
|
|
- name: Set up JDK versions
|
|
uses: https://github.com/actions/setup-java@v4
|
|
with:
|
|
java-version: |
|
|
8
|
|
17
|
|
21
|
|
distribution: 'zulu'
|
|
|
|
- name: Setup Gradle
|
|
uses: https://github.com/gradle/gradle-build-action@v2
|
|
with:
|
|
build-scan-publish: true
|
|
build-scan-terms-of-use-url: "https://gradle.com/terms-of-service"
|
|
build-scan-terms-of-use-agree: "yes"
|
|
validate-wrappers: true
|
|
|
|
- name: Grant execute permission for gradlew
|
|
run: chmod +x gradlew
|
|
|
|
- name: Setup the workspace
|
|
run: ./gradlew --build-cache --info --stacktrace -PmavenPublishUrl='${{ env.MAVEN_PUBLISHING_URL }}' ${{ inputs.workspace }}
|
|
|
|
- name: Build the mod
|
|
run: ./gradlew --build-cache --info --stacktrace -PmavenPublishUrl='${{ env.MAVEN_PUBLISHING_URL }}' assemble
|
|
- name: Install GitHub CLI because this img sux
|
|
run: curl -fsSL https://cli.github.com/install.sh | sh
|
|
# Continue on error in the following steps to make sure releases still get made even if one of the methods fails
|
|
|
|
- name: Delete old release if it already exists
|
|
run: forgejo release delete --yes "${RELEASE_VERSION}"
|
|
continue-on-error: true
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
|
|
|
- name: Release under current tag
|
|
run: |
|
|
PRERELEASE=""
|
|
if [[ "$SNAPSHOT" == "true" ]]; then
|
|
PRERELEASE="--prerelease"
|
|
fi
|
|
export "CHANGELOG_FILE=$(mktemp --suffix=.md)"
|
|
echo "CHANGELOG_FILE=${CHANGELOG_FILE}" >> $GITHUB_ENV
|
|
gh api --method POST -H "Accept: application/vnd.github+json" \
|
|
"/repos/${GITHUB_REPOSITORY}/releases/generate-notes" \
|
|
-f tag_name="${RELEASE_VERSION}" \
|
|
--jq ".body" > "${CHANGELOG_FILE}"
|
|
cat "${CHANGELOG_FILE}"
|
|
forgejo release create "${RELEASE_VERSION}" -F "${CHANGELOG_FILE}" $PRERELEASE ./build/libs/*.jar
|
|
shell: bash
|
|
continue-on-error: true
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GH_TOKEN }} |