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 }}