Skip to content

Commit

Permalink
Merge pull request #1 from GTNewHorizons/update-buildscript
Browse files Browse the repository at this point in the history
Migrate to new buildscript
  • Loading branch information
Dream-Master authored Feb 13, 2022
2 parents bc7d8c1 + d53bc98 commit 413ccf4
Show file tree
Hide file tree
Showing 29 changed files with 1,132 additions and 339 deletions.
33 changes: 33 additions & 0 deletions .github/scripts/test-no-error-reports.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/usr/bin/env bash

RUNDIR="run"
CRASH="crash-reports"
SERVERLOG="server.log"

if [[ -d $RUNDIR/$CRASH ]]; then
echo "Crash reports detected:"
cat $RUNDIR/$CRASH/crash*.txt
exit 1
fi

if grep --quiet "Fatal errors were detected" $SERVERLOG; 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" $SERVERLOG; then
echo "Server force stopped:"
cat server.log
exit 1
fi

if ! grep --quiet -Po '.+Done \(.+\)\! For help, type "help" or "\?"' $SERVERLOG; then
echo "Server didn't finish startup:"
cat server.log
exit 1
fi

echo "No crash reports detected"
exit 0

45 changes: 45 additions & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# 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: Build and test

on:
pull_request:
branches: [ master, main ]
push:
branches: [ master, main ]

jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0

- 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: Run server for 1.5 minutes
run: |
mkdir run
echo "eula=true" > run/eula.txt
timeout 90 ./gradlew runServer 2>&1 | tee -a 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
51 changes: 51 additions & 0 deletions .github/workflows/release-tags.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# 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: Publish to Maven
run: ./gradlew publish
env:
MAVEN_USER: ${{ secrets.MAVEN_USER }}
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
50 changes: 32 additions & 18 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,18 +1,32 @@
.classpath
.gradle
.metadata
.project
.settings
CREDITS-fml.txt
LICENSE-fml.txt
MinecraftForge-Credits.txt
MinecraftForge-License.txt
forge-*-changelog.txt
libs/*
build/*
!libs/.gitkeep
bin/
# default eclipse stuff
eclipse/*
!eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/Client.launch
!eclipse/.metadata/.plugins/org.eclipse.debug.core/.launches/Server.launch
.gradle
.settings
/.idea/
/.vscode/
/run/
/build/
/eclipse/
.classpath
.project
/bin/
/config/
/crash-reports/
/logs/
options.txt
/saves/
usernamecache.json
banned-ips.json
banned-players.json
eula.txt
ops.json
server.properties
servers.dat
usercache.json
whitelist.json
/out/
*.iml
*.ipr
*.iws
src/main/resources/mixins.*.json
*.bat
*.DS_Store
!gradlew.bat
3 changes: 3 additions & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Any Github changes require admin approval
/.github/** @GTNewHorizons/admin

Empty file modified LICENSE
100755 → 100644
Empty file.
23 changes: 0 additions & 23 deletions README.txt
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,3 @@ What is this
============
This is an addon for the Minecraft Mod GalactiCraft.
See this forum thread for more information and screenshots: https://forum.micdoodle8.com/index.php?threads/.5985/

COMPILING and stuff
===================
- download these 4 files from https://micdoodle8.com/mods/galacticraft/downloads/dev:
-- Galacticraft-API-1.7-3.0.12.463.jar
-- GalacticraftCore-Dev-1.7-3.0.12.463.jar
-- Galacticraft-Planets-Dev-1.7-3.0.12.463.jar
-- MicdoodleCore-Dev-1.7-3.0.12.463.jar
- put them under /libs/
- cd into whereever you checked out the code
- do this:
gradlew.bat setupDevWorkspace
gradlew.bat setupDecompWorkspace
or
./gradlew setupDevWorkspace
./gradlew setupDecompWorkspace
- at this point, you should be able to build the mod using gradlew.bat build. The result should end up under /build/libs
- Now, for eclipse, try running gradlew.bat eclipse
- If you are lucky, this should work: open eclipse, select the "eclipse" directory within the code directory as workspace, and you get a project called "Minecraft" all set up
- If not (and let's face it, this is way more likely), well, tough luck, I have no idea. Sorry.
-- Try running this: gradlew cleancache --refresh-dependencies setupDecompWorkspace eclipse
-- Have a look here: http://www.minecraftforge.net/forum/index.php?topic=14048.0 basically you will need to download the source code of forge, and paste it into my code directory, and then run the commands as described there.
-- Seriously, I have no idea. For me it worked somehow. Once. I couldn't reproduce it afterwards. If you can make it work all the time, you are welcome to send me a pull request.
Empty file modified WISHLIST.txt
100755 → 100644
Empty file.
Loading

0 comments on commit 413ccf4

Please sign in to comment.