Sharing assets between operating system builds


I am trying to create a workflow that does the following procedure.

  1. git checkout the repository and build a collection of binaries for windows
  2. git checkout the repository and build a collection of binaries for macOS
  3. zip the binaries from both macOS and windows into a single file

I already have two separate workflows that can do this for each OS but ideally the binaries are collected into a single folder to be distributed as a nightly release. This is the convention for the software we are supporting where a single package will containing the binaries for all platforms in one folder.

The various workflows can be seen here: flucoma-max/.github/workflows at ci/automatic-building · jamesb93/flucoma-max · GitHub

Any advice on how to achieve this would be very much appreciated!

Upload the results as artifacts in the OS-specific build jobs, have another dependent job (see needs) that collects the artifacts and creates the bundle you want. Then upload the bundle to the release. You can use short retention times for the artifacts so they don’t take up space for a long time.

That said, bundling binaries like that will make download unnecessarily large for users who use only one of the supported platforms.

Thanks, I am aware of the pitfalls of bundling multiple binaries into a single release but that is how its done for the particular software we are supporting.