Fixa Windows-specifika testfel i distributionsbygget#24
Merged
Conversation
- AppPathsTest: använd @tempdir istället för hårdkodad /tmp, så pathen blir absolut på Windows - ReportServicesTest: normalisera radslut före SHA-256 så golden-hashen håller även med CRLF - .gitattributes: tvinga LF för *.ftl och *.sql för stabila checksummor över plattformar - AlipsaAccounting --verify-launch: stäng H2 efter verifiering så @tempdir kan städa på Windows - DatabaseService.shutdown(): ny metod som släpper H2:s filhandtag Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Windows-runners checkar ut filer med CRLF (core.autocrlf), vilket får Spotless att misslyckas på Groovy-reglerna som kräver LF. Sätter text=auto eol=lf för alla textfiler, med *.bat/*.cmd som CRLF och binära filer explicit markerade. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
AcceptanceCriteriaTest's @TempDir-städning på Windows blockerades av att LoggingConfigurer's FileHandler höll verify-home/logs/accounting-0.log öppen. DatabaseService.shutdown() räckte inte — även loggern behövde stängas innan main() returnerar. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tidigare genererades en .desktop-fil med hårdkodad /opt/-sökväg som packades direkt i zip:en, vilket inte fungerar när användaren extraherar zip:en någon annanstans. Launchern saknade dessutom exekveringsrätt. Nu genererar bygget install.sh/uninstall.sh från mallar i packaging/linux och packar dem i zip:en med 0755. install.sh skapar en .desktop-genväg i ~/.local/share/applications som pekar på faktisk extraktionsplats, gör launchern exekverbar och registrerar ikonen. bin/AlipsaAccounting packas också med 0755 så att den går att starta direkt utan install.sh.
macOS-bygget laddade tidigare upp hela app/build/release/macos/*, vilket inkluderade den uppackade AlipsaAccounting.app-katalogen (alla .dylib, .jar, cacerts, LICENSE, etc.). När release.sh flattnade dist/ hamnade allt skräp i roten tillsammans med själva zip:arna. - CI: macOS-artefakten är nu bara AlipsaAccounting-macos.zip. - release.sh: laddar ned till dist/extras/ och promoverar endast kända distribution-filer (linux-zip, windows-exe, macos-zip, generic-zip) till dist/-roten. Eventuella oväntade filer stannar i dist/extras/ istället för att skräpa ned roten. - gh release create får nu bara toppnivåfiler via mapfile.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Tre pre-existerande testfel bröt Windows-jobbet i
build-distributions.yml. Den här PR:en fixar alla tre:Paths.get('/tmp/accounting-home')blir relativ på Windows (saknar drive-letter); produktionen normaliserar viatoAbsolutePath().normalize(). Bytt till@TempDirså sökvägen blir giltig på alla plattformar..ftl-filer hade checkats ut med CRLF. Normaliserar radslut (CRLF→LF) innan hashen, och kompletterar.gitattributesmed*.ftl text eol=lfoch*.sql text eol=lfför framtida checkouts.@TempDir-städning misslyckades på Windows eftersom H2 behöll file lock påaccounting.mv.db. NyDatabaseService.shutdown()som utfärdarSHUTDOWN;AlipsaAccounting --verify-launchanropar den innan det returnerar.Ingen av ändringarna rör kvartalsmoms-logiken i #23 — detta är rent Windows/CI-hygien.
Test plan
./gradlew buildpasserar lokalt på Linux (137 tester + CodeNarc + Spotless)build-distributions.ymlgår grönt på windows-latest (verifieras av CI efter merge eller manuell körning)🤖 Generated with Claude Code