Files
architectury-api/.github/workflows/dev_pr.yml

138 lines
4.8 KiB
YAML

name: Build PR snapshot (1.17)
on:
pull_request:
paths:
- '**.gradle'
- '**.properties'
- '**/src/**'
branches:
- "1.17"
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 16
uses: actions/setup-java@v2
with:
java-version: 16
distribution: 'adopt'
- 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: [ 16 ] # Build on Java 16 (version shipped with MC 1.17)
runs-on: ubuntu-20.04
if: |
contains(github.event.pull_request.labels.*.name, 'api') && !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: 'adopt'
- 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 == '16' }} # Only upload Java 16 artifacts for MC 1.17
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 == '16' }} # Only upload Java 16 artifacts for MC 1.17
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 == '16' }} # Only upload Java 16 artifacts for MC 1.17
with:
name: ${{ env.package_name }}
path: |
**/build/libs/
!build/libs/
!**/*-dev.jar
!**/*-shadow.jar
!**/*-transformProduction*.jar
!**/testmod*/