nzbhydra2/core/buildCoreAotOnly.cmd
theotherp 279b119f4c
Update to Spring Boot 3, new h2, use graalvm, GH actions (#816)
* Handle database recreation errors better

* Handle different db usernames

* Improve shutdown

* Don't run startup problem detection in main thread

* Fix stats calculation with h2 2

* Fix unit tests

* Disable some tests not yet fixed (if ever)

* Use SCRIPT TO to backup database as it verifies integrity

* Only delete backups if a newer successful one exists

* Fix error while analysing log file for OOM errors

* Fix CSRF

* Log Spring stuff on INFO

* Add features for v5 to changelog

* Don't try to remove windows tray icon cause it results in a hang

* Fix notification history pagination

* Fix shutdown behavior, prevent misleading error messages

* Remove javax.annotation and .activation

* Fix baseConfig.yml

* First step to native build

Compile runs, executable can be started, but has errors. More work needed.

* First step to native build

RUns under windows, HtmlUnit error, great progress!

* Instantiate indexers and downloaders directly to make it work with native

BeanFactory.createBean and .autowireBean do not work

* Disable javascript in OpenPortChecker to fix charset error in native

* Test Github Actions

* Test Github Actions

* Test Github Actions

* Test Github Actions

* Adapt wrappers to support native images

* Update wrapper build to use docker containers

clean folder structure
Use v2 binaries for native support

* Add build scripts, remove circleCi

* Native build github actions

* Don't write yaml, use in-memory db in native build mode

* Upload native image artifact

* Test self-hosted runner

* Build on all three OSes

* Build on all three OSes

* Build on all three OSes

* Build macos

* Build windows

* Build windows and macos

* user proper paths for uploading artifacts

* user proper paths for uploading artifacts

* user proper paths for uploading artifacts

* All three native images are built and uploaded

But linux native not runnable under WSL, trying ubuntu 20.04

* Build static binary for linux

* Make wrapper and update manager support both 4.x and 5.x, native and generic

* Try building static image again

* Commit wrapper binaries to LFS

* Move files back to include folders

* Adapt build-and-release.cmd to shell script

* Prepare release via actions, add generic release

* Prepare release via actions, add generic release

* Update other package to 3.0.0

* Delete old docker files

* Support dry run in release plugin and github action

* Always use github token in release if available

* Fix PhantomJS compile error, disable actions on push

* release needs build

* Show file structure on runner

* Build on self-hosted windows runner

* Disable graalvm watchdog so hopefully the windows build completes

* Build on push, update dependencies

* Build on windows

* Determine release type from existance of files instead of json

* Check version of executables before releasing

* Scripts for test docker containers

* Show system tray via wrapper, make main process headless

* Native hints

* Migrate JUnit 4 to 5

* Fix auth error when no internal api key was provided

* Move integration tests

* First step to system tests

* Run system tests on github actions

* Run system tests on github actions

* Delete tests using old mockwebserver, use mockserver in system test

* Delete tests using old mockwebserver, use mockserver in system test

* Disable native image build to get to working systemtest faster

* Specifically download coreLinux

* Upload and download docker images

* Save images in separate step

* Fix docker port mapping syntax, keep docker images for one day only

* Fix docker daemon syntax

* Check out repo before running tests

* Move config validation to separate classes

* Start moving config classes to separate module

* Finish moving config classes to separate module

* Initialize test instance with sensible data

* Push and use docker images using ghcr

* Use custom health check for hydra docker container

* Disable CSRF, use debug level for log file

* Tests for debug infos

* Use  ${{ github.workspace }}

* Use temp folder for hydradocker data

* Write simple downloader web tests

* Use /tmp as data folder

* Test download of zipped NZBs

* Build shared module before running tests

* Load joptsimple resource bundle

* Improve error page

* Log spring security on debug level

* Build new native image

* Use new image

* USe new reflect-config.json. Do I have to do this every time?

* Reenable native build

* Add reflection marker for native hints

* Ensure all relevant classes have a reflection marker

* Call TMDB api directly instead of using library

* Use correct URL in mocked newznab results when in pipeline

* Fix session error in IndexerUniquenessScoreSaver

* Clean up code after migration to Java 17

* Backup tests

* Remove spring profile from core dockerfile so that it can hopefully be loaded from env

* GOOD STATE: Build native before doing tests

Image is built, Two tests fail, but most succeed, yay

* Test configuration of external tools

* Run unit tests, upload test reports

* Fix test being OS dependent (oops)

* Fix test being OS dependent (oops)

* Fix another OS dependent test, try other test report action

* Create system test report

* Try controlling native build by using "skipnativebuild" in the commit message

* Controlling native build by using "skipnativebuild" in the commit message works, yay

* Prepare entity TOs

* Merge shared config and mapping modules

* Merge shared entities and mapping modules

* First simple test for history

* Clean install for native image build

* Commit missing files

* More tests for search history

* Disable repo.spring.io because central repos should be preferred

* Test download history

* Remove repo.spring.io repo

* Upload settings.xml for debugging

* Try custom settings.xml to prevent using repo.spring.io

skipnativebuild

* Remove settings.xml stuff, try running *arr dockers directly

skipnativebuild

* Fix sonar host

* Don't skip prepareArtifacts as other jobs depend on it

* Run all containers manually

skipnativebuild

* Set spring profiles in test env again

skipnativebuild

* SEMI_GOOD_STEP USe custom docker network in system test

Communication between containers works, still bytecode error and BackupData#getBackupFile not working

skipnativebuild

* Remove lazy loading in SearchResultEntity, use TransactionTemplate in IndexerUniquenessScoreSaver.java

* Remove lazy loading in IndexerApiAccessEntity.java

* Make entities final to perhaps prevent lazy loading?

* Remove ToStringSerializer for entity IDs

* Support TVMAZE ID in search history

* Remove names from docker run commands

* Try using docker host network

* Try systemtest network again

skipnativebuild

* Print build version and timestamp at startup

* GOOD_STEP Run mockserver first so core can access it

Only two failing tests remain

* Print version and timestamp even if in docker

* Use mapped volume for black hole

* YESSSS GREEN PIPELINE Use a category for *arr which is supported by a configured indexer

* Add stats test, is kinda flakey

* Remove integration tests

* Install java in docker container for db migration

* First step to migration test

* Remove migration module from mvn call

* Generate custom assertions for mapping module

* Add caps check test

* Add media info test

* Add news test

* Add notifications test

* Reenable migration test, perhaps it works now?

* Add missing assertion files

* Try different docker sock, add unmarshaller resource bundle

* Don't trim stacktraces in maven, log unparsable indexer output

* Use hopefully correct migration tmp folder, create it before using

* Use different md to html renderer

* Make caps inherit XML

* Fix news test, create /tmp/data/v1MigrationDataFolder in action

* Try different temp folder

skipnativebuild

* Print version earlier

* Run migration docker directly

* Print version differently

* Wait for healthy containers

* Print version and timestamp from properties

* Wait for healthy containers

* Use latest docker image when skipping nativebuild

skipnativebuild

* Give containers a bit of time

skipnativebuild

* Use docker-compose

skipnativebuild

* Try java from path if executable not found

* Try to get more current artifact

* ALL GREEN YAAAAAAY Build image in first job if configured, then just use latest in system test

* Precheck that wrapper executables are newer than source files

* Run all for core and migration, respectively

* Remove discord bot, publish via maven plugin when releasing

* Use container name in external hydra url

* Move database migration to spring component

* Use SLF4J in system tests

skipnativebuild

* Use 5076 on container

skipnativebuild

* ONE LEFT Wait a bit between file mod date changes

Only blackhole test not working anymore

* Use name of test component (core, v1Migration) in black hole folder

* Log properties and docker mounts

skipnativebuild

* ALL GREEN WITH two test runs Mount blackhole folder for core

skipnativebuild

* Check changes files to decide if native image is built

* Check changes files to decide if mock server is built

* Send build decision messages to notice

* Use changelog.yaml instead of .json

* Fix startup of wrapper without internal api key

* Use new wrapperHashes2.json

* Write messages for discord and wiki

* Ensure database integrity before creating backup

* Show warning to user if automatic backup has failed

* Show better error message when user triggered backup creation failed

* Shoe proper error message when debug infos creation / download failed

* Update wrapper hashes

* Add loadtest, cache OKHTTP clients

* Improve performance of search result parsing by getting rid of regex

* Compress native image binary

* Update release script

* Update release script

* Check for environment variables in release script

* Check for untracked files or uncommitted changes in release script

* git ignore token files

* Read tokens from files

* Color output for release script

* Remove call from release script (only needed on windows)

* Call maven in batch mode

* Build shared module first

* Change compiled modules in release script

* Ask me to run mvn in windows

* Try building on self hosted runner again

* Run on all self-hosted

* Run on all self-hosted

* Run on all self-hosted

* Run on all self-hosted

* Translate build script to powershell

* Make maven quiet

* Escape -d options in maven

* Check exit code differently

* Ignore afile.txt

* Escape -D

* Allow "wet run" without release

* Add missing changelog.yaml

* Prepare for release

* Don't build shared in buildCore.cmd

* Wait for linux version after check of others

* Disable commit for test

* Build core from main folder

* Copy windows build artifacts to include folder

* Make wrapper open browser if main process can't

* Delete release shell script

* Fix build in system-test.yml

* Update changelog

* Update some libraries, ignore snakeyaml exploit in snyk

* Remove system test data

* Update to Spring Boot 3.0.2

* Differentiate versions of spring boot and devtools

* Set githubReleasesUrl directly
2023-01-20 15:02:00 +01:00

13 lines
360 B
Batchfile

@echo off
setlocal
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
set path=c:\Programme\graalvm-ce-java17-22.2.0\bin\;%PATH%;c:\Programme\graalvm-ce-java17-22.2.0\bin\
set java_home=c:\Programme\graalvm-ce-java17-22.2.0\
set HYDRA_NATIVE_BUILD=true
mvn -Pnative clean package -DskipTests
endlocal