I was provoked to revisit this by the recent kerfuffle with the wheel.
I've taken the time to fix the issues that were causing the cloud nightly builds to fail. There is still a nightly build on GitHub that mirrors the exact environment of the ChimeraX build (well, except that the Windows build takes place on MinGW instead of Cygwin), but I've added a new set of workflow files:
.github/workflow-skeleton.yml -------------------- Defines workflows for Ubuntu 20.04, Ubuntu 22.04, Rocky 8 (Docker on Ubuntu 20.04),
macos-latest (an arm64 Mac runner), and Windows 2022.
.github/{bundle,prereq,srcapp}-file-filters.yml -- Defines file filters used to detect changes to files in specific directories
.github/workflows/prereqs.yml -------------------- Detects changes in the prereqs folder using the file filters in
.github/prereq-file-filters.yml, then rebuilds that prereq for all platforms
.github/workflows/bundle-changes.yml ------------- Should eventually do the same thing as prereqs.yml, for bundles
.github/workflows/srcapps.yml -------------------- Ditto, for src/apps
.github/workflows/check-for-changes.yml ---------- Runs each of the 3 preceding workflows, then builds and tests ChimeraX every
time someone pushes to the develop branch
.github/workflows/build-and-test.yml ------------- Will eventually abstract the build and test part of the preceding workflow,
so it can be reused when prereqs, bundles, or apps change
We can now tell whether the next daily build will fail 15 minutes after a push, rather than biting our nails until the next day waiting to see if there was a syntax error or build failure.
What's set up now is cloud testing. I don't consider it cloud building because we're not taking artifacts back to Plato for distribution. When Greg gets back from Vacation I'll discuss with him how to set up a technology preview of ChimeraX built by GitHub CI.
Then we can close this ticket.