Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .github/workflows/graal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,39 @@ on:
types: [opened, reopened]

jobs:
build-java-8-wrapper-jar:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: 8
distribution: adopt
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build
run: ./gradlew build --stacktrace

- name: Delete launcher-wrapper dev jar
run: rm headlessmc-launcher-wrapper/build/libs/headlessmc-launcher-*-dev.jar
- name: Delete launcher-wrapper javadoc jar
run: rm headlessmc-launcher-wrapper/build/libs/headlessmc-launcher-*-javadoc.jar
- name: Delete launcher-wrapper sources jar
run: rm headlessmc-launcher-wrapper/build/libs/headlessmc-launcher-*-sources.jar

- name: Rename launcher jar
run: mv headlessmc-launcher-wrapper/build/libs/headlessmc-launcher-*.jar headlessmc-launcher-wrapper/build/libs/headlessmc-launcher-wrapper.jar

- name: Publish Artifacts
uses: actions/upload-artifact@v4
with:
name: launcher-wrapper-java8-jar
path: |
./headlessmc-launcher-wrapper/build/libs/headlessmc-launcher-wrapper.jar

build:
runs-on: ${{ matrix.os.os }}
needs: build-java-8-wrapper-jar
strategy:
matrix:
os:
Expand All @@ -28,6 +59,14 @@ jobs:
distribution: 'graalvm'
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: Download HeadlessMc Launcher Artifact
uses: actions/download-artifact@v4
- name: Display structure of downloaded files
run: ls -R
- uses: geekyeggo/delete-artifact@v5
with:
name: launcher-wrapper-java8-jar

- name: Output Graal Info
run: |
echo "GRAALVM_HOME: $GRAALVM_HOME"
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,4 @@ run
*.jar
!*gradle-wrapper.jar
/mc/
/launcher-wrapper-java8-jar/
Empty file added docs/servers.md
Empty file.
4 changes: 4 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,7 @@ hmc_integration_test_enabled=false
hmc_graal_build=false
# The name of the executable file created by graalvm
hmc_graal_executable=headlessmc-launcher
# The name of the Java 8 jar file to include in the GraalVM image
# Because GraalVM cannot build Java 8 jars, we need to build one with Java 8 first,
# Then put it in the GraalVM jar.
hmc_graal_wrapper_jar=launcher-wrapper-java8-jar/headlessmc-launcher-wrapper.jar
7 changes: 6 additions & 1 deletion headlessmc-graalvm/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,13 @@ dependencies {
implementation 'me.tongfei:progressbar:0.9.5'
}

if (!new File(rootProject.projectDir, hmc_graal_wrapper_jar).exists()) {
throw new IllegalStateException("$hmc_graal_wrapper_jar does not exist!")
}

processResources {
into('headlessmc') {
from project(':headlessmc-launcher-wrapper')['shadowJar']
from file(new File(rootProject.projectDir, hmc_graal_wrapper_jar))
rename 'headlessmc-launcher(.*).jar', 'headlessmc-launcher-wrapper.jar'
}
}
Expand All @@ -43,6 +47,7 @@ graalvmNative {
sharedLibrary = false
buildArgs.add('--enable-url-protocols=https')
buildArgs.add('-O4')
javaLauncher
}
}
}
Expand Down