ci: add artifact upload for MSYS2 and macOS jobs#408
ci: add artifact upload for MSYS2 and macOS jobs#408spe-ciellt merged 2 commits intogerbv:developfrom
Conversation
Add packaging scripts and upload steps so that ci-windows (MSYS2 UCRT64) and ci-macos produce downloadable artifacts matching the gerbv-* pattern used by the release job. MSYS2 script uses ldd to discover UCRT64 runtime DLLs. macOS script uses otool to iteratively resolve Homebrew dylib dependencies. Both filter out system libraries and include license files. Closes gerbv#407
|
@spe-ciellt — when CI finishes, could you verify the artifact contents for both the MSYS2 and macOS ZIPs? Specifically that they contain the expected binaries, runtime DLLs/dylibs, and license files. It's late here so I'm calling it a night. Thanks! |
The MSYS2 shell has a separate PATH from the Windows system git used by actions/checkout, so the packaging script cannot find git. Install the MSYS2 git package alongside zip.
|
Thank you for your fast work. Was not my intention to keep you up. I see what I can do, else I check it tomorrow. |
|
You're welcome! And no worries, you didn't keep me up — I was up anyway. Looks like all the CI jobs are passing now. No rush on the verification, whenever you get a chance. |
|
The Windows zip file looks good. Downloaded it and checked the content. Ran it using Wine. Managed to create a DXF file that Chrome could read. All files in one pile. |
|
The MacOS zip file looks good. Downloaded it and checked the content. Couldn't run it. All files in one pile as above. |
|
The transformation of the names will work as well, after checked using visual inspection. To test it practically I have to do yet another release and that I will wait with for another time. |
|
I approve this PR unless you feel you have something to add. |
Summary
.mc/package-msys2.sh) that useslddto discover runtime DLL dependencies from/ucrt64/bin/, filtering out Windows system DLLs.mc/package-macos.sh) that usesotool -Lto iteratively resolve Homebrew dylib dependencies, filtering out system librariesgerbvbinary,libgerbvshared library, license files (COPYING,COPYING.tinyscheme,init.scm), and all required runtime dependenciesci-windowsandci-macosjobs in CI workflowgerbv-windows-msys2,gerbv-macos) match thegerbv-*download pattern used by thereleasejobgerbv_{DATE}_{COMMIT}_(OS).zipconvention so the release job's rename sed works without modificationTest plan
ci-windowsjob produces agerbv-windows-msys2artifact containing a ZIP withgerbv.exe,libgerbv*.dll, UCRT64 runtime DLLs, and license filesci-macosjob produces agerbv-macosartifact containing a ZIP withgerbv,libgerbv*.dylib, Homebrew dylibs, and license filesreleasejob's rename sed correctly transforms both filenames (e.g.gerbv_v1.0.0_(macOS).zip,gerbv_v1.0.0_(Windows MSYS2 UCRT64).zip)Closes #407