Skip to content

ci: add artifact upload for MSYS2 and macOS jobs#408

Merged
spe-ciellt merged 2 commits intogerbv:developfrom
SourceParts:ci/msys2-artifact
Mar 9, 2026
Merged

ci: add artifact upload for MSYS2 and macOS jobs#408
spe-ciellt merged 2 commits intogerbv:developfrom
SourceParts:ci/msys2-artifact

Conversation

@rampageservices
Copy link
Copy Markdown
Contributor

@rampageservices rampageservices commented Mar 8, 2026

Summary

  • Add MSYS2 UCRT64 packaging script (.mc/package-msys2.sh) that uses ldd to discover runtime DLL dependencies from /ucrt64/bin/, filtering out Windows system DLLs
  • Add macOS packaging script (.mc/package-macos.sh) that uses otool -L to iteratively resolve Homebrew dylib dependencies, filtering out system libraries
  • Both scripts include gerbv binary, libgerbv shared library, license files (COPYING, COPYING.tinyscheme, init.scm), and all required runtime dependencies
  • Add Package + Upload artifact steps to ci-windows and ci-macos jobs in CI workflow
  • Artifact names (gerbv-windows-msys2, gerbv-macos) match the gerbv-* download pattern used by the release job
  • ZIP filenames follow the gerbv_{DATE}_{COMMIT}_(OS).zip convention so the release job's rename sed works without modification

Test plan

  • Verify ci-windows job produces a gerbv-windows-msys2 artifact containing a ZIP with gerbv.exe, libgerbv*.dll, UCRT64 runtime DLLs, and license files
  • Verify ci-macos job produces a gerbv-macos artifact containing a ZIP with gerbv, libgerbv*.dylib, Homebrew dylibs, and license files
  • Verify the release job'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

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
@rampageservices
Copy link
Copy Markdown
Contributor Author

@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.
@spe-ciellt
Copy link
Copy Markdown
Contributor

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.

@rampageservices
Copy link
Copy Markdown
Contributor Author

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.

@spe-ciellt spe-ciellt self-assigned this Mar 8, 2026
@spe-ciellt spe-ciellt added the buildsystem Updates to the buildsystem (CMake/CTest/CPack) label Mar 8, 2026
@spe-ciellt
Copy link
Copy Markdown
Contributor

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.

Archive:  gerbv_2026-03-08_834a3d_(Windows MSYS2 UCRT64).zip
  Length      Date    Time    Name
---------  ---------- -----   ----
    18321  2026-03-08 20:43   COPYING
     1498  2026-03-08 20:43   COPYING.tinyscheme
 28231306  2026-03-08 20:43   gerbv.exe
    19245  2026-03-08 20:43   init.scm
   159858  2026-03-08 20:43   libatk-1.0-0.dll
   144565  2026-03-08 20:43   libbrotlicommon.dll
    62619  2026-03-08 20:43   libbrotlidec.dll
    78774  2026-03-08 20:43   libbz2-1.dll
  1241396  2026-03-08 20:43   libcairo-2.dll
    35223  2026-03-08 20:43   libdatrie-1.dll
    99898  2026-03-08 20:43   libdeflate.dll
   200028  2026-03-08 20:43   libexpat-1.dll
    35403  2026-03-08 20:43   libffi-8.dll
   345888  2026-03-08 20:43   libfontconfig-1.dll
   791593  2026-03-08 20:43   libfreetype-6.dll
   155504  2026-03-08 20:43   libfribidi-0.dll
   151364  2026-03-08 20:43   libgcc_s_seh-1.dll
   887231  2026-03-08 20:43   libgdk-win32-2.0-0.dll
   355669  2026-03-08 20:43   libgdk_pixbuf-2.0-0.dll
  1866731  2026-03-08 20:43   libgio-2.0-0.dll
  1554801  2026-03-08 20:43   libglib-2.0-0.dll
    26982  2026-03-08 20:43   libgmodule-2.0-0.dll
   360053  2026-03-08 20:43   libgobject-2.0-0.dll
   155805  2026-03-08 20:43   libgraphite2.dll
  4232673  2026-03-08 20:43   libgtk-win32-2.0-0.dll
  1501004  2026-03-08 20:43   libharfbuzz-0.dll
  1135869  2026-03-08 20:43   libiconv-2.dll
   298164  2026-03-08 20:43   libintl-8.dll
    66242  2026-03-08 20:43   libjbig-0.dll
   928403  2026-03-08 20:43   libjpeg-8.dll
   764460  2026-03-08 20:43   libLerc.dll
   192506  2026-03-08 20:43   liblzma-5.dll
   424324  2026-03-08 20:43   libpango-1.0-0.dll
    75628  2026-03-08 20:43   libpangocairo-1.0-0.dll
   110758  2026-03-08 20:43   libpangoft2-1.0-0.dll
   110443  2026-03-08 20:43   libpangowin32-1.0-0.dll
   718625  2026-03-08 20:43   libpcre2-8-0.dll
   739339  2026-03-08 20:43   libpixman-1-0.dll
   257436  2026-03-08 20:43   libpng16-16.dll
    48938  2026-03-08 20:43   libsharpyuv-0.dll
  2463202  2026-03-08 20:43   libstdc++-6.dll
    71780  2026-03-08 20:43   libthai-0.dll
   607232  2026-03-08 20:43   libtiff-6.dll
   746378  2026-03-08 20:43   libwebp-7.dll
    63678  2026-03-08 20:43   libwinpthread-1.dll
  1196420  2026-03-08 20:43   libzstd.dll
   127291  2026-03-08 20:43   zlib1.dll
---------                     -------
 53860548                     47 files

@spe-ciellt
Copy link
Copy Markdown
Contributor

The MacOS zip file looks good. Downloaded it and checked the content. Couldn't run it. All files in one pile as above.

Archive:  gerbv_2026-03-08_834a3d_(macOS).zip
  Length      Date    Time    Name
---------  ---------- -----   ----
    74288  2026-03-08 20:41   libdatrie.1.dylib
   455360  2026-03-08 20:41   libpango-1.0.0.dylib
   194768  2026-03-08 20:41   libxcb.1.dylib
   142448  2026-03-08 20:41   libpangoft2-1.0.0.dylib
  3409984  2026-03-08 20:41   libgtk-quartz-2.0.0.dylib
   143200  2026-03-08 20:41   libgraphite2.3.dylib
    70432  2026-03-08 20:41   libxcb-shm.0.dylib
   585216  2026-03-08 20:41   libgdk-quartz-2.0.0.dylib
   591552  2026-03-08 20:41   libpcre2-8.0.dylib
  1183328  2026-03-08 20:41   libcairo.2.dylib
  1380720  2026-03-08 20:41   libglib-2.0.0.dylib
    89696  2026-03-08 20:41   libXrender.1.dylib
    90688  2026-03-08 20:41   libthai.0.dylib
  1025184  2026-03-08 20:41   libX11.6.dylib
   234432  2026-03-08 20:41   libgdk_pixbuf-2.0.0.dylib
   209392  2026-03-08 20:41   libpng16.16.dylib
   158704  2026-03-08 20:41   libpangocairo-1.0.0.dylib
     1469  2026-03-08 20:41   COPYING.tinyscheme
   427952  2026-03-08 20:41   libgobject-2.0.0.dylib
   641888  2026-03-08 20:41   libfreetype.6.dylib
  1021928  2026-03-08 20:41   gerbv
  1226992  2026-03-08 20:41   libharfbuzz.0.dylib
    71600  2026-03-08 20:41   libgmodule-2.0.0.dylib
   105568  2026-03-08 20:41   libxcb-render.0.dylib
    17982  2026-03-08 20:41   COPYING
   230048  2026-03-08 20:41   libintl.8.dylib
   204464  2026-03-08 20:41   libatk-1.0.0.dylib
   171920  2026-03-08 20:41   libfribidi.0.dylib
    54224  2026-03-08 20:41   libXdmcp.6.dylib
   306208  2026-03-08 20:41   libfontconfig.1.dylib
    53312  2026-03-08 20:41   libXau.6.dylib
   115200  2026-03-08 20:41   libXext.6.dylib
    18669  2026-03-08 20:41   init.scm
   489424  2026-03-08 20:41   libjpeg.8.dylib
   634928  2026-03-08 20:41   libpixman-1.0.dylib
  2033712  2026-03-08 20:41   libgio-2.0.0.dylib
---------                     -------
 17866880                     36 files

@spe-ciellt
Copy link
Copy Markdown
Contributor

spe-ciellt commented Mar 8, 2026

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.

@spe-ciellt
Copy link
Copy Markdown
Contributor

I approve this PR unless you feel you have something to add.

@spe-ciellt spe-ciellt marked this pull request as ready for review March 9, 2026 07:34
@spe-ciellt spe-ciellt merged commit 3d0f3d9 into gerbv:develop Mar 9, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

buildsystem Updates to the buildsystem (CMake/CTest/CPack)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Windows MSYS2 does not create an artifact

2 participants