unregister event #74
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Java CI | |
| on: [push, pull_request] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| - name: Make gradlew executable | |
| run: chmod +x gradlew ./scripts/upload_releases.sh | |
| - name: Validate gradlew integrity | |
| uses: gradle/wrapper-validation-action@v2 | |
| - name: Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| ./.gradle/loom-cache/remapped-mods | |
| ./forge/build/moddev | |
| ./common/build/moddev | |
| key: ${{ runner.os }}-gradle-${{ hashFiles('**/build.gradle', './gradle.properties', './settings.gradle', '**/gradle-wrapper.properties') }} | |
| - name: Calculate artifact names | |
| id: calculate_artifact_names | |
| run: | | |
| # Check is backwards because "" is falsey, which wouldn't work for boolean punning. | |
| SNAPSHOT_SUFFIX=${{ !startsWith(github.ref, 'refs/tags/release-') && '-SNAPSHOT' || '' }} | |
| MC=$(awk -F '=' '/^minecraft_version=/ { print $2; }' gradle.properties) | |
| VERSION=$(awk -F '=' '/^mod_version=/ { print $2; }' gradle.properties) | |
| echo "forge=forge/build/libs/eventwrapper-forge-${MC}-${VERSION}${SNAPSHOT_SUFFIX}.jar" >> "$GITHUB_OUTPUT" | |
| echo "fabric=fabric/build/libs/eventwrapper-fabric-${MC}-${VERSION}${SNAPSHOT_SUFFIX}.jar" >> "$GITHUB_OUTPUT" | |
| - name: Build with Gradle | |
| run: | | |
| RELEASE_MODE=${{ startsWith(github.ref, 'refs/tags/release-') && '1' || '0' }} \ | |
| ./gradlew pmdMain spotlessJavaCheck build | |
| - name: PMD report | |
| uses: jwgmeligmeyling/pmd-github-action@v1 | |
| if: failure() | |
| with: | |
| path: '**/reports/pmd/main.xml' | |
| - name: Stop Gradle | |
| run: ./gradlew --stop | |
| - name: Sign jars | |
| env: | |
| SIGNING_KEY: ${{ secrets.LOUNODE_SIGN_KEY }} | |
| if: ${{ env.SIGNING_KEY != '' }} | |
| run: | | |
| echo "${SIGNING_KEY}" | gpg --import - | |
| gpg --local-user "lounode" --armor \ | |
| --detach-sign ${{ steps.calculate_artifact_names.outputs.forge }} | |
| gpg --local-user "lounode" --armor \ | |
| --detach-sign ${{ steps.calculate_artifact_names.outputs.fabric }} | |
| - name: Archive Fabric Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: Fabric | |
| path: | | |
| ${{ steps.calculate_artifact_names.outputs.fabric }} | |
| ${{ steps.calculate_artifact_names.outputs.fabric }}.asc | |
| - name: Archive Forge Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: Forge | |
| path: | | |
| ${{ steps.calculate_artifact_names.outputs.forge }} | |
| ${{ steps.calculate_artifact_names.outputs.forge }}.asc | |
| - name: Publish to Maven | |
| env: | |
| MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} | |
| MAVEN_TOKEN: ${{ secrets.MAVEN_TOKEN }} | |
| run: | | |
| RELEASE_MODE=${{ startsWith(github.ref, 'refs/tags/release-') && '1' || '0' }} \ | |
| ./gradlew publish | |
| - name: Upload Releases | |
| if: startsWith(github.ref, 'refs/tags/release-') | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| GIT_REF: ${{ github.ref }} | |
| FABRIC_JAR: ${{ steps.calculate_artifact_names.outputs.fabric }} | |
| FORGE_JAR: ${{ steps.calculate_artifact_names.outputs.forge }} | |
| CURSEFORGE_TOKEN: ${{ secrets.LOUNODE_CURSEFORGE_TOKEN }} | |
| MODRINTH_TOKEN: ${{ secrets.LOUNODE_MODRINTH_TOKEN }} | |
| run: | | |
| scripts/upload_releases.sh |