From 6e6d6e306b361328dc9a4b44f805e32c2947070c Mon Sep 17 00:00:00 2001 From: Neil Macneale V Date: Sun, 27 Oct 2024 23:25:02 -0700 Subject: [PATCH 1/4] Add an integration test that spins up a server --- .github/workflows/ci.yml | 22 ++++++++++++++++++++-- .gitignore | 2 ++ setup-server.sh | 23 +++++++++++++++++++++++ start-server.sh | 28 ++++++++++++++++++++++++++++ 4 files changed, 73 insertions(+), 2 deletions(-) create mode 100755 setup-server.sh create mode 100755 start-server.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 98afbbbb..800cdf8a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,7 +3,7 @@ name: rust build on: pull_request: -env: +env: CARGO_TERM_COLOR: always jobs: @@ -19,7 +19,7 @@ jobs: # Only check libs to avoid building `rgen-viewer`. cargo clippy --lib -- -D warnings - test: + unit: name: test runs-on: ubuntu-latest @@ -30,3 +30,21 @@ jobs: cd rgen # Only test libs to avoid building `rgen-viewer`. cargo test --lib + + integration: + name: test + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + java-version: 8 + - uses: gradle/actions/setup-gradle@v4 + - run: ./gradlew build + - run: rustup update stable && rustup default stable + - run: | + cd rgen + cargo build -p rgen-jni-impl -p rgen-jni --release + - run: ./setup-server.sh + - run: ./start-server.sh diff --git a/.gitignore b/.gitignore index 3626ba4f..de169dc5 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,5 @@ forge*changelog.txt /.keys .DS_Store + +/server diff --git a/setup-server.sh b/setup-server.sh new file mode 100755 index 00000000..92e58e48 --- /dev/null +++ b/setup-server.sh @@ -0,0 +1,23 @@ +set -e + +rm -rf server +mkdir -p server +cd server + +mkdir mods +ln -s ../../build/libs/rgen-1.0.jar mods + +mkdir natives +ln -s ../../rgen/target/release/librgen_jni.so natives + +FORGE_VERSION=1.12.2-14.23.5.2860 + +curl -o forge-installer.jar https://maven.minecraftforge.net/net/minecraftforge/forge/$FORGE_VERSION/forge-$FORGE_VERSION-installer.jar +java -jar forge-installer.jar --installServer . +echo "eula=true" > eula.txt + +cat > server.properties < /dev/null || ret=$? +if [[ $ret -eq 1 ]]; then + echo "Mod not found, compile it first" + exit 1 +fi +readlink natives/librgen_jni.so > /dev/null || ret=$? +if [[ $ret -eq 1 ]]; then + echo "Native library not found, compile it first" + exit 1 +fi + +FORGE_VERSION=1.12.2-14.23.5.2860 + +java \ + -Dfml.queryResult=confirm \ + -Djava.library.path=natives \ + -jar forge-$FORGE_VERSION.jar \ + nogui From 272fff11886873f01fde8f50b5264c4fb8d60521 Mon Sep 17 00:00:00 2001 From: Neil Macneale V Date: Sun, 27 Oct 2024 23:28:06 -0700 Subject: [PATCH 2/4] Split up workflow into two files --- .github/workflows/java.yml | 23 +++++++++++++++++++++++ .github/workflows/{ci.yml => rust.yml} | 20 +------------------- 2 files changed, 24 insertions(+), 19 deletions(-) create mode 100644 .github/workflows/java.yml rename .github/workflows/{ci.yml => rust.yml} (56%) diff --git a/.github/workflows/java.yml b/.github/workflows/java.yml new file mode 100644 index 00000000..683735f1 --- /dev/null +++ b/.github/workflows/java.yml @@ -0,0 +1,23 @@ +name: java + +on: + pull_request: + +jobs: + integration: + name: test + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + java-version: 8 + - uses: gradle/actions/setup-gradle@v4 + - run: ./gradlew build + - run: rustup update stable && rustup default stable + - run: | + cd rgen + cargo build -p rgen-jni-impl -p rgen-jni --release + - run: ./setup-server.sh + - run: ./start-server.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/rust.yml similarity index 56% rename from .github/workflows/ci.yml rename to .github/workflows/rust.yml index 800cdf8a..b69deaa1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/rust.yml @@ -1,4 +1,4 @@ -name: rust build +name: rust on: pull_request: @@ -30,21 +30,3 @@ jobs: cd rgen # Only test libs to avoid building `rgen-viewer`. cargo test --lib - - integration: - name: test - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - java-version: 8 - - uses: gradle/actions/setup-gradle@v4 - - run: ./gradlew build - - run: rustup update stable && rustup default stable - - run: | - cd rgen - cargo build -p rgen-jni-impl -p rgen-jni --release - - run: ./setup-server.sh - - run: ./start-server.sh From 4a21914a08d91c2ce54209852979f13977296061 Mon Sep 17 00:00:00 2001 From: Neil Macneale V Date: Sun, 27 Oct 2024 23:28:49 -0700 Subject: [PATCH 3/4] Add distribution --- .github/workflows/java.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/java.yml b/.github/workflows/java.yml index 683735f1..2b30aabf 100644 --- a/.github/workflows/java.yml +++ b/.github/workflows/java.yml @@ -12,6 +12,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: + distribution: corretto java-version: 8 - uses: gradle/actions/setup-gradle@v4 - run: ./gradlew build From 7e03d84a941d5a00f59104b376ba6c355e6decfb Mon Sep 17 00:00:00 2001 From: Neil Macneale V Date: Sun, 27 Oct 2024 23:29:20 -0700 Subject: [PATCH 4/4] Rename things --- .github/workflows/java.yml | 2 +- .github/workflows/rust.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/java.yml b/.github/workflows/java.yml index 2b30aabf..7a46a2bd 100644 --- a/.github/workflows/java.yml +++ b/.github/workflows/java.yml @@ -5,7 +5,7 @@ on: jobs: integration: - name: test + name: integration runs-on: ubuntu-latest steps: diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index b69deaa1..5ba500d4 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -20,7 +20,7 @@ jobs: cargo clippy --lib -- -D warnings unit: - name: test + name: unit runs-on: ubuntu-latest steps: