From f5742489995415fa8b9507a2db259bf5009c88a4 Mon Sep 17 00:00:00 2001 From: TheEpicBlock Date: Sun, 3 Jul 2022 00:00:05 +0200 Subject: [PATCH] Add workflows --- .github/workflows/build.yml | 61 ++++++++++++++++++----------------- .github/workflows/release.yml | 41 +++++++++++++++++++++++ 2 files changed, 73 insertions(+), 29 deletions(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1fc365f..9e9d084 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,39 +1,42 @@ -# Automatically build the project and run any configured tests for every push -# and submitted pull request. This can help catch issues that only occur on -# certain platforms or Java versions, and provides a first line of defence -# against bad commits. - name: build -on: [pull_request, push] + +on: + push: + paths-ignore: + - 'README.md' + pull_request: jobs: build: - strategy: - matrix: - # Use these Java versions - java: [ - 17, # Current Java LTS & minimum supported by Minecraft - ] - # and run on both Linux and Windows - os: [ubuntu-20.04, windows-2022] - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest steps: - - name: checkout repository + - name: Cache + uses: actions/cache@v2 + with: + path: | + ~/.gradle/loom-cache + ~/.gradle/caches + ~/.gradle/wrapper + key: gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + gradle- + + - name: Checkout repository uses: actions/checkout@v2 - - name: validate gradle wrapper + + - name: Validate gradle wrapper uses: gradle/wrapper-validation-action@v1 - - name: setup jdk ${{ matrix.java }} + + - name: Setup JDK 17 uses: actions/setup-java@v1 with: - java-version: ${{ matrix.java }} - - name: make gradle wrapper executable - if: ${{ runner.os != 'Windows' }} + java-version: 17 + + - name: Ensure gradlew is executable run: chmod +x ./gradlew - - name: build - run: ./gradlew build - - name: capture build artifacts - if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS - uses: actions/upload-artifact@v2 - with: - name: Artifacts - path: build/libs/ + + - name: Validate the gradle wrapper + uses: gradle/wrapper-validation-action@v1 + + - name: Build + run: ./gradlew build \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..4c9f99b --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,41 @@ +name: release + +on: + release: + types: + - published + +jobs: + github-release: + runs-on: ubuntu-latest + steps: + - name: Cache + uses: actions/cache@v2 + with: + path: | + ~/.gradle/loom-cache + ~/.gradle/caches + ~/.gradle/wrapper + key: gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + gradle- + + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Setup JDK 17 + uses: actions/setup-java@v1 + with: + java-version: 17 + + - name: Ensure gradlew is executable + run: chmod +x gradlew + + - name: Build mod + run: ./gradlew build + + - name: Upload GitHub release + uses: AButler/upload-release-assets@v2.0 + with: + files: 'build/libs/*.jar;!build/libs/*-sources.jar;!build/libs/*-dev.jar' + repo-token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file