summary refs log tree commit diff stats
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
authorzml <zml@aoeu.xyz>2020-11-10 14:11:54 -0800
committerGitHub <noreply@github.com>2020-11-10 22:11:54 +0000
commit90cb78d4127924ad97f23f7221c68d3d345f1358 (patch)
tree910c1e26d7b7b276c6d967a38f0233c08f0de038 /.github/workflows/build.yml
parent54035654b75dd756d98f89fde179cb49183a6d68 (diff)
Modernize Gradle buildscript (#71)
* Modernize gradle buildscript

* Bump yarn/loader/fabric api versions

* Add GH actions to build example mod

* Update in response to feedback
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml41
1 files changed, 41 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..31c38ee
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,41 @@
+# 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]
+
+jobs:
+  build:
+    strategy:
+      matrix:
+        # Use these Java versions
+        java: [
+          1.8,  # Minimum supported by Minecraft
+          11,   # Current Java LTS
+          15    # Latest version
+        ]
+        # and run on both Linux and Windows
+        os: [ubuntu-20.04, windows-latest]
+    runs-on: ${{ matrix.os }}
+    steps:
+      - name: checkout repository
+        uses: actions/checkout@v2
+      - name: validate gradle wrapper
+        uses: gradle/wrapper-validation-action@v1
+      - name: setup jdk ${{ matrix.java }}
+        uses: actions/setup-java@v1
+        with:
+          java-version: ${{ matrix.java }}
+      - name: make gradle wrapper executable
+        if: ${{ runner.os != 'Windows' }}
+        run: chmod +x ./gradlew
+      - name: build
+        run: ./gradlew build
+      - name: capture build artifacts
+        if: ${{ runner.os == 'Linux' && matrix.java == '11' }} # Only upload artifacts built from LTS java on one OS
+        uses: actions/upload-artifact@v2
+        with:
+          name: Artifacts
+          path: build/libs/