diff --git a/.github/workflows/1.18_pr.yml b/.github/workflows/1.18_pr.yml new file mode 100644 index 00000000..a10e06d7 --- /dev/null +++ b/.github/workflows/1.18_pr.yml @@ -0,0 +1,74 @@ +name: Build PR snapshot (1.18) + +on: + pull_request: + paths: + - '**.gradle' + - '**.properties' + - '**/src/**' + branches: + - "1.18" + types: [ opened, synchronize, reopened ] +jobs: + validate-gradle: + name: "Validate Gradle wrapper" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - uses: gradle/wrapper-validation-action@v1 + license: + name: "Verify License integrity" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + java-version: 17 + distribution: 'temurin' + + - name: Setup Gradle and verify license using Licenser + uses: gradle/gradle-build-action@v2 + with: + arguments: licenseCheck + + build: + name: "Build" + runs-on: ubuntu-20.04 + if: | + !contains(github.event.pull_request.title, '[ci skip]') + steps: + - uses: actions/checkout@v2 + + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + java-version: 17 + distribution: 'temurin' + + - name: Setup and Build with Gradle + uses: gradle/gradle-build-action@v2 + with: + arguments: build --stacktrace --no-daemon + + - name: Setting mod version + run: | + cat $GITHUB_WORKSPACE/gradle.properties | grep ^archives_base_name= >> $GITHUB_ENV + cat $GITHUB_WORKSPACE/gradle.properties | grep ^minecraft_version= >> $GITHUB_ENV + cat $GITHUB_WORKSPACE/gradle.properties | grep ^base_version= >> $GITHUB_ENV + - name: Create package name + run: echo "package_name=[$minecraft_version] $archives_base_name-$base_version-SNAPSHOT.PR${{ github.event.number }}" >> $GITHUB_ENV + - uses: actions/upload-artifact@v2 + with: + name: ${{ env.package_name }} + path: | + **/build/libs/ + !build/libs/ + !**/*-dev.jar + !**/*-shadow.jar + !**/*-transformProduction*.jar + !**/testmod*/ diff --git a/.github/workflows/1.18_push.yml b/.github/workflows/1.18_push.yml new file mode 100644 index 00000000..f12e8f3f --- /dev/null +++ b/.github/workflows/1.18_push.yml @@ -0,0 +1,110 @@ +name: Build and Release (1.18) + +on: + push: + paths: + - '**.gradle' + - '**.properties' + - '**/src/**' + branches: + - "1.18" + workflow_dispatch: + inputs: + norelease: + description: 'Do not publish' + required: true + default: 'false' + +jobs: + validate-gradle: + name: "Validate Gradle wrapper" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - uses: gradle/wrapper-validation-action@v1 + license: + name: "Verify License integrity" + runs-on: ubuntu-20.04 + if: | + !contains(github.event.head_commit.message, '[ci skip]') + steps: + - uses: actions/checkout@v2 + + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + java-version: 17 + distribution: 'temurin' + + - name: Setup Gradle and verify license using Licenser + uses: gradle/gradle-build-action@v2 + with: + arguments: licenseCheck + + build: + name: "Build" + runs-on: ubuntu-20.04 + if: | + !contains(github.event.head_commit.message, '[ci skip]') + steps: + - uses: actions/checkout@v2 + + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + java-version: 17 + distribution: 'temurin' + + - name: Setup and Build with Gradle + uses: gradle/gradle-build-action@v2 + with: + arguments: build --stacktrace --no-daemon + + - name: Setting mod version + run: | + cat $GITHUB_WORKSPACE/gradle.properties | grep ^archives_base_name= >> $GITHUB_ENV + cat $GITHUB_WORKSPACE/gradle.properties | grep ^minecraft_version= >> $GITHUB_ENV + cat $GITHUB_WORKSPACE/gradle.properties | grep ^base_version= >> $GITHUB_ENV + - name: Create package name + run: echo "package_name=[$minecraft_version] $archives_base_name-$base_version.${{ github.run_number }}" >> $GITHUB_ENV + - uses: actions/upload-artifact@v2 + with: + name: ${{ env.package_name }} + path: | + **/build/libs/ + !build/libs/ + !**/*-dev.jar + !**/*-shadow.jar + !**/*-transformProduction*.jar + !**/testmod*/ + + publish: + needs: + - validate-gradle + - license + - build + runs-on: ubuntu-20.04 + if: | + !contains(github.event.head_commit.message, '[norelease]') && github.event.inputs.norelease != 'true' + steps: + - uses: actions/checkout@v2 + + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + java-version: 17 + distribution: 'temurin' + + - name: Setup Gradle and release to Maven and CurseForge + env: + # currently unused, may want to use these for changelogs though! + # GIT_COMMIT: ${{ github.event.after }} + # GIT_PREVIOUS_COMMIT: ${{ github.event.before }} + MAVEN_PASS: ${{ secrets.MAVEN_PASS }} + CURSE_API_KEY: ${{ secrets.CURSE_API_KEY }} + uses: gradle/gradle-build-action@v2 + with: + arguments: publish curseforge --stacktrace --no-daemon diff --git a/.github/workflows/dev_pr.yml b/.github/workflows/dev_pr.yml deleted file mode 100644 index 9e6ef91b..00000000 --- a/.github/workflows/dev_pr.yml +++ /dev/null @@ -1,137 +0,0 @@ -name: Build PR snapshot (1.17) - -on: - pull_request: - paths: - - '**.gradle' - - '**.properties' - - '**/src/**' - branches: - - "1.18" - types: [ opened, synchronize, reopened ] -jobs: - validate-gradle: - name: "Validate Gradle wrapper" - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - uses: gradle/wrapper-validation-action@v1 - license: - name: "Verify License integrity" - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - - name: Set up JDK 17 - uses: actions/setup-java@v2 - with: - java-version: 17 - distribution: 'temurin' - - - name: Cache Gradle wrapper - uses: actions/cache@v2 - with: - path: ~/.gradle/wrapper - key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }} - restore-keys: gradle-wrapper-${{ runner.os }}- - - - name: Cache packages - id: cache-packages - uses: actions/cache@v2 - with: - path: ~/.gradle/caches - key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: gradle-packages-${{ runner.os }}- - - - name: Make gradlew executable - run: chmod +x ./gradlew - - - name: Verify license using Licenser - run: | - ./gradlew licenseCheck - - # Remove some potentially problematic files from the Gradle cache, - # so that GitHub Actions doesn't cache them. - - name: Cleanup Gradle Cache - if: steps.cache-packages.outputs.cache-hit != 'true' - run: | - rm -f $HOME/.gradle/caches/*/*.lock - rm -rf $HOME/.gradle/caches/*/plugin-resolution/ - rm -rf $HOME/.gradle/caches/*/scripts/ - rm -rf $HOME/.gradle/caches/*/scripts-remapped/ - rm -rf $HOME/.gradle/caches/*/fileHashes/ - rm -f $HOME/.gradle/caches/journal-1/file-access.bin - build: - name: "Build" - strategy: - matrix: - java: [ 17 ] # Build on Java 17 (version shipped with MC 1.18) - runs-on: ubuntu-20.04 - if: | - !contains(github.event.pull_request.title, '[ci skip]') - steps: - - uses: actions/checkout@v2 - - - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@v2 - with: - java-version: ${{ matrix.java }} - distribution: 'temurin' - - - name: Cache Gradle wrapper - uses: actions/cache@v2 - with: - path: ~/.gradle/wrapper - key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }} - restore-keys: gradle-wrapper-${{ runner.os }}- - - - name: Cache packages - id: cache-packages - uses: actions/cache@v2 - with: - path: ~/.gradle/caches - key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: gradle-packages-${{ runner.os }}- - - - name: Make gradlew executable - run: chmod +x ./gradlew - - - name: Build with Gradle - run: | - ./gradlew build --stacktrace --no-daemon - - # Remove some potentially problematic files from the Gradle cache, - # so that GitHub Actions doesn't cache them. - - name: Cleanup Gradle Cache - if: steps.cache-packages.outputs.cache-hit != 'true' - run: | - rm -f $HOME/.gradle/caches/*/*.lock - rm -rf $HOME/.gradle/caches/*/plugin-resolution/ - rm -rf $HOME/.gradle/caches/*/scripts/ - rm -rf $HOME/.gradle/caches/*/scripts-remapped/ - rm -rf $HOME/.gradle/caches/*/fileHashes/ - rm -f $HOME/.gradle/caches/journal-1/file-access.bin - - - name: Setting mod version - if: ${{ matrix.java == '17' }} # Only upload Java 17 artifacts for MC 1.18 - run: | - cat $GITHUB_WORKSPACE/gradle.properties | grep ^archives_base_name= >> $GITHUB_ENV - cat $GITHUB_WORKSPACE/gradle.properties | grep ^minecraft_version= >> $GITHUB_ENV - cat $GITHUB_WORKSPACE/gradle.properties | grep ^base_version= >> $GITHUB_ENV - - name: Create package name - if: ${{ matrix.java == '17' }} # Only upload Java 17 artifacts for MC 1.18 - run: echo "package_name=[$minecraft_version] $archives_base_name-$base_version-SNAPSHOT.PR${{ github.event.number }}" >> $GITHUB_ENV - - uses: actions/upload-artifact@v2 - if: ${{ matrix.java == '17' }} # Only upload Java 17 artifacts for MC 1.18 - with: - name: ${{ env.package_name }} - path: | - **/build/libs/ - !build/libs/ - !**/*-dev.jar - !**/*-shadow.jar - !**/*-transformProduction*.jar - !**/testmod*/ diff --git a/.github/workflows/dev_push.yml b/.github/workflows/dev_push.yml deleted file mode 100644 index 8b36636f..00000000 --- a/.github/workflows/dev_push.yml +++ /dev/null @@ -1,201 +0,0 @@ -name: Build and Release (1.17) - -on: - push: - paths: - - '**.gradle' - - '**.properties' - - '**/src/**' - branches: - - "1.18" - workflow_dispatch: - inputs: - norelease: - description: 'Do not publish' - required: true - default: 'false' - -jobs: - validate-gradle: - name: "Validate Gradle wrapper" - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - - - uses: gradle/wrapper-validation-action@v1 - license: - name: "Verify License integrity" - runs-on: ubuntu-20.04 - if: | - !contains(github.event.head_commit.message, '[ci skip]') - steps: - - uses: actions/checkout@v2 - - - name: Set up JDK 17 - uses: actions/setup-java@v2 - with: - java-version: 17 - distribution: 'temurin' - - - name: Cache Gradle wrapper - uses: actions/cache@v2 - with: - path: ~/.gradle/wrapper - key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }} - restore-keys: gradle-wrapper-${{ runner.os }}- - - - name: Cache packages - id: cache-packages - uses: actions/cache@v2 - with: - path: ~/.gradle/caches - key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: gradle-packages-${{ runner.os }}- - - - name: Make gradlew executable - run: chmod +x ./gradlew - - - name: Verify license using Licenser - run: | - ./gradlew licenseCheck - - # Remove some potentially problematic files from the Gradle cache, - # so that GitHub Actions doesn't cache them. - - name: Cleanup Gradle Cache - if: steps.cache-packages.outputs.cache-hit != 'true' - run: | - rm -f $HOME/.gradle/caches/*/*.lock - rm -rf $HOME/.gradle/caches/*/plugin-resolution/ - rm -rf $HOME/.gradle/caches/*/scripts/ - rm -rf $HOME/.gradle/caches/*/scripts-remapped/ - rm -rf $HOME/.gradle/caches/*/fileHashes/ - rm -f $HOME/.gradle/caches/journal-1/file-access.bin - - build: - name: "Build" - strategy: - matrix: - java: [ 17 ] # Build on Java 17 (version shipped with MC 1.18) - runs-on: ubuntu-20.04 - if: | - !contains(github.event.head_commit.message, '[ci skip]') - steps: - - uses: actions/checkout@v2 - - - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@v2 - with: - java-version: ${{ matrix.java }} - distribution: 'temurin' - - - name: Cache Gradle wrapper - uses: actions/cache@v2 - with: - path: ~/.gradle/wrapper - key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }} - restore-keys: gradle-wrapper-${{ runner.os }}- - - - name: Cache packages - id: cache-packages - uses: actions/cache@v2 - with: - path: ~/.gradle/caches - key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: gradle-packages-${{ runner.os }}- - - - name: Make gradlew executable - run: chmod +x ./gradlew - - - name: Build with Gradle - run: | - ./gradlew build --stacktrace --no-daemon - - # Remove some potentially problematic files from the Gradle cache, - # so that GitHub Actions doesn't cache them. - - name: Cleanup Gradle Cache - if: steps.cache-packages.outputs.cache-hit != 'true' - run: | - rm -f $HOME/.gradle/caches/*/*.lock - rm -rf $HOME/.gradle/caches/*/plugin-resolution/ - rm -rf $HOME/.gradle/caches/*/scripts/ - rm -rf $HOME/.gradle/caches/*/scripts-remapped/ - rm -rf $HOME/.gradle/caches/*/fileHashes/ - rm -f $HOME/.gradle/caches/journal-1/file-access.bin - - - name: Setting mod version - if: ${{ matrix.java == '17' }} # Only upload Java 17 artifacts for MC 1.18 - run: | - cat $GITHUB_WORKSPACE/gradle.properties | grep ^archives_base_name= >> $GITHUB_ENV - cat $GITHUB_WORKSPACE/gradle.properties | grep ^minecraft_version= >> $GITHUB_ENV - cat $GITHUB_WORKSPACE/gradle.properties | grep ^base_version= >> $GITHUB_ENV - - name: Create package name - if: ${{ matrix.java == '17' }} # Only upload Java 17 artifacts for MC 1.18 - run: echo "package_name=[$minecraft_version] $archives_base_name-$base_version.${{ github.run_number }}" >> $GITHUB_ENV - - uses: actions/upload-artifact@v2 - if: ${{ matrix.java == '17' }} # Only upload Java 17 artifacts for MC 1.18 - with: - name: ${{ env.package_name }} - path: | - **/build/libs/ - !build/libs/ - !**/*-dev.jar - !**/*-shadow.jar - !**/*-transformProduction*.jar - !**/testmod*/ - - publish: - needs: - - validate-gradle - - license - - build - runs-on: ubuntu-20.04 - if: | - !contains(github.event.head_commit.message, '[norelease]') && github.event.inputs.norelease != 'true' - steps: - - uses: actions/checkout@v2 - - - name: Set up JDK 17 - uses: actions/setup-java@v2 - with: - java-version: 17 - distribution: 'temurin' - - - name: Cache Gradle wrapper - uses: actions/cache@v2 - with: - path: ~/.gradle/wrapper - key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('gradle/wrapper/**/*') }} - restore-keys: gradle-wrapper-${{ runner.os }}- - - - name: Cache packages - id: cache-packages - uses: actions/cache@v2 - with: - path: ~/.gradle/caches - key: gradle-packages-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: gradle-packages-${{ runner.os }}- - - - name: Release to Maven and CurseForge - env: - # currently unused, may want to use these for changelogs though! - # GIT_COMMIT: ${{ github.event.after }} - # GIT_PREVIOUS_COMMIT: ${{ github.event.before }} - MAVEN_PASS: ${{ secrets.MAVEN_PASS }} - CURSE_API_KEY: ${{ secrets.CURSE_API_KEY }} - # TODO: make this use the artifacts from the previous build step - run: | - ./gradlew build publish curseforgePublish --stacktrace --no-daemon - - # Remove some potentially problematic files from the Gradle cache, - # so that GitHub Actions doesn't cache them. - - name: Cleanup Gradle Cache - if: steps.cache-packages.outputs.cache-hit != 'true' - run: | - rm -f $HOME/.gradle/caches/*/*.lock - rm -rf $HOME/.gradle/caches/*/plugin-resolution/ - rm -rf $HOME/.gradle/caches/*/scripts/ - rm -rf $HOME/.gradle/caches/*/scripts-remapped/ - rm -rf $HOME/.gradle/caches/*/fileHashes/ - rm -f $HOME/.gradle/caches/journal-1/file-access.bin