nzbhydra2/nativeNotes.txt
2023-01-06 08:36:25 +01:00

46 lines
1.7 KiB
Plaintext

Windows:
- Run vcvars64.bat
- Set path to graalvm
- Set java_home to graalvm
- Set env variable HYDRA_NATIVE_BUILD=true
Tracing: Run:
java -DspringAot=true -agentlib:native-image-agent=config-output-dir=hints -jar core-5.0.0-SNAPSHOT-exec.jar directstart
Build:
mvn -P native native:compile -DskipTests
Push to nzbhydra2-build master:
git push build springboot3:master --force
run upx to compress image
Maven-Plugin:
https://docs.spring.io/spring-boot/docs/3.0.0/maven-plugin/reference/htmlsingle/#aot
Spring Boot 3 Native support:
https://docs.spring.io/spring-boot/docs/current/reference/html/native-image.html#native-image.introducing-graalvm-native-images
Compatibility:
Linux executable compiled with github actions on ubuntu-20 works on local WSL Ubuntu and on Ubuntu docker but not on alpine.
Musl compilation hasn't worked so far and only seems to work for simple class files anyway
Linux executable can be compressed using UPX.
Windows executable seems to work anywhere. UPX compressed exe returns without any output.
TODO
Native:
Check out https://www.graalvm.org/22.2/reference-manual/native-image/guides/use-graalvm-dashboard/
Compare with https://gist.github.com/linux-china/8745394fbc308168b20068386771ea1b
Change update mechanism
General:
Migrate successfully on windows and linux
Test with new instances
Call discord webhook directly instead of using discord bot
Make wrapper catch common errors (like freetype or whatever) and link to a wiki page
In release script as a precondition check that wrapper executables are not much older than wrapper script files
Add existing database (v1?) and perhaps even config to pipeline to ensure that migration keeps working