Skip to content

Fixa Windows-specifika testfel i distributionsbygget#24

Merged
perNyfelt merged 5 commits intomainfrom
v1.0.0-dist
Apr 14, 2026
Merged

Fixa Windows-specifika testfel i distributionsbygget#24
perNyfelt merged 5 commits intomainfrom
v1.0.0-dist

Conversation

@perNyfelt
Copy link
Copy Markdown
Member

Summary

Tre pre-existerande testfel bröt Windows-jobbet i build-distributions.yml. Den här PR:en fixar alla tre:

  • AppPathsTestPaths.get('/tmp/accounting-home') blir relativ på Windows (saknar drive-letter); produktionen normaliserar via toAbsolutePath().normalize(). Bytt till @TempDir så sökvägen blir giltig på alla plattformar.
  • ReportServicesTest — SHA-256 på renderad HTML skilde sig på Windows när .ftl-filer hade checkats ut med CRLF. Normaliserar radslut (CRLF→LF) innan hashen, och kompletterar .gitattributes med *.ftl text eol=lf och *.sql text eol=lf för framtida checkouts.
  • AcceptanceCriteriaTest@TempDir-städning misslyckades på Windows eftersom H2 behöll file lock på accounting.mv.db. Ny DatabaseService.shutdown() som utfärdar SHUTDOWN; AlipsaAccounting --verify-launch anropar den innan det returnerar.

Ingen av ändringarna rör kvartalsmoms-logiken i #23 — detta är rent Windows/CI-hygien.

Test plan

  • ./gradlew build passerar lokalt på Linux (137 tester + CodeNarc + Spotless)
  • build-distributions.yml går grönt på windows-latest (verifieras av CI efter merge eller manuell körning)
  • linux- och macos-jobben fortsätter fungera

🤖 Generated with Claude Code

per and others added 5 commits April 14, 2026 20:40
- 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.
@perNyfelt perNyfelt merged commit 19e5d62 into main Apr 14, 2026
3 checks passed
@perNyfelt perNyfelt deleted the v1.0.0-dist branch April 14, 2026 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant