aboutsummaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorJohann Bernhardt <johann.bernhardt@tum.de>2021-12-18 11:10:36 +0100
committerJohann Bernhardt <johann.bernhardt@tum.de>2021-12-18 11:10:36 +0100
commit18a15c155961431a1525b45533ea012786b5e597 (patch)
tree391fdf9fc4bb6bab7ce038103f0d1927d17cd588 /.github
parentfc75443c3dfb95969eb171fb416501e22252c953 (diff)
downloadGT5-Unofficial-18a15c155961431a1525b45533ea012786b5e597.tar.gz
GT5-Unofficial-18a15c155961431a1525b45533ea012786b5e597.tar.bz2
GT5-Unofficial-18a15c155961431a1525b45533ea012786b5e597.zip
Draft for buildscript, but GTNH core mod is still missing
Diffstat (limited to '.github')
-rw-r--r--.github/scripts/test-no-error-reports.sh27
-rw-r--r--.github/workflows/build-and-test.yml (renamed from .github/workflows/gradle.yml)30
-rw-r--r--.github/workflows/release-tags.yml61
3 files changed, 104 insertions, 14 deletions
diff --git a/.github/scripts/test-no-error-reports.sh b/.github/scripts/test-no-error-reports.sh
new file mode 100644
index 0000000000..e3876606d5
--- /dev/null
+++ b/.github/scripts/test-no-error-reports.sh
@@ -0,0 +1,27 @@
+if [[ -d "run/crash-reports" ]]; then
+ echo "Crash reports detected:"
+ cat $directory/*
+ exit 1
+fi
+
+if grep --quiet "Fatal errors were detected" server.log; then
+ echo "Fatal errors detected:"
+ cat server.log
+ exit 1
+fi
+
+if grep --quiet "The state engine was in incorrect state ERRORED and forced into state SERVER_STOPPED" server.log; then
+ echo "Server force stopped:"
+ cat server.log
+ exit 1
+fi
+
+if grep --quiet 'Done .+ For help, type "help" or "?"' server.log; then
+ echo "Server didn't finish startup:"
+ cat server.log
+ exit 1
+fi
+
+echo "No crash reports detected"
+exit 0
+
diff --git a/.github/workflows/gradle.yml b/.github/workflows/build-and-test.yml
index 75338898fa..08df9fe89f 100644
--- a/.github/workflows/gradle.yml
+++ b/.github/workflows/build-and-test.yml
@@ -1,16 +1,16 @@
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
-name: Java CI with Gradle
+name: Build and test
on:
- push:
- branches: [ master, main ]
pull_request:
branches: [ master, main ]
+ push:
+ branches: [ master, main ]
jobs:
- build:
+ build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
@@ -29,15 +29,17 @@ jobs:
- name: Setup the workspace
run: ./gradlew setupCIWorkspace
-
+
- name: Build the mod
run: ./gradlew build
-
- - uses: "marvinpinto/action-automatic-releases@latest"
- with:
- repo_token: "${{ secrets.GITHUB_TOKEN }}"
- automatic_release_tag: "latest"
- prerelease: true
- title: "Latest Development Build"
- files: build/libs/*.jar
-
+
+ - name: Run server for 1.5 minutes
+ run: |
+ mkdir run
+ echo "eula=true" > run/eula.txt
+ timeout 90 ./gradlew runServer | tee --append server.log || true
+
+ - name: Test no errors reported during server run
+ run: |
+ chmod +x .github/scripts/test-no-error-reports.sh
+ .github/scripts/test-no-error-reports.sh
diff --git a/.github/workflows/release-tags.yml b/.github/workflows/release-tags.yml
new file mode 100644
index 0000000000..96d37f7d9a
--- /dev/null
+++ b/.github/workflows/release-tags.yml
@@ -0,0 +1,61 @@
+# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
+# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
+
+name: Release tagged build
+
+on:
+ push:
+ tags:
+ - '*'
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+
+ - name: Set release version
+ run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
+
+ - name: Set up JDK 8
+ uses: actions/setup-java@v2
+ with:
+ java-version: '8'
+ distribution: 'adopt'
+ cache: gradle
+
+ - name: Grant execute permission for gradlew
+ run: chmod +x gradlew
+
+ - name: Setup the workspace
+ run: ./gradlew setupCIWorkspace
+
+ - name: Build the mod
+ run: ./gradlew build
+
+ - name: Release under current tag
+ uses: "marvinpinto/action-automatic-releases@latest"
+ with:
+ repo_token: "${{ secrets.GITHUB_TOKEN }}"
+ automatic_release_tag: "${{ env.RELEASE_VERSION }}"
+ prerelease: false
+ title: "${{ env.RELEASE_VERSION }}"
+ files: build/libs/*.jar
+
+ - name: Set repository owner and name
+ run: |
+ echo "REPOSITORY_OWNER=${GITHUB_REPOSITORY%/*}" >> $GITHUB_ENV
+ echo "REPOSITORY_NAME=${GITHUB_REPOSITORY#*/}" >> $GITHUB_ENV
+
+ - name: Publish package
+ run: ./gradlew publish
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ ARTIFACT_GROUP_ID: com.github.${{ env.REPOSITORY_OWNER }}
+ ARTIFACT_ID: "${{ env.REPOSITORY_NAME }}"
+ ARTIFACT_VERSION: "${{ env.RELEASE_VERSION }}"
+ REPOSITORY_NAME: "${{ env.REPOSITORY_NAME }}"
+ REPOSITORY_OWNER: "${{ env.REPOSITORY_OWNER }}"
+