GitHub: FMS-MOM6 build jobs, tarball artifacts#915
Conversation
|
There is some issue here where FMS is being rebuilt in the test jobs, even though the executables are already built. (Also a minor typo in build-opt-target and a problem building the tc4 grid data in test-regressions.) |
7b818e5 to
99100ea
Compare
Inconsistencies in jobs within a workflow were leading to differences in
compiler versions across jobs. This was breaking GitHub Actions
workflows. We want to continue using `*-latest` runners, so we have
merged the FMS stage into each of the MOM6 builds.
There are additional changes which improve the overall workflow/job
decomposition.
* FMS builds included in MOM6 stage
* Artifacts are now packed into tarballs, which preserve most of the
file state (mtime, file mode, etc).
* No longer any need to chmod the executables.
* `*.gnco` timestamp warnings are removed.
* Overall simplification of generated executable lists; we now
assume that build/* only contains executables.
* build.timing and build.unit are now correctly tagged as .NOTPARALLEL
* Macros for defining the target URL are now environment variables,
stored in the workspace `env`.
99100ea to
2c27cf5
Compare
|
I have many multiple adjustments to this PR:
While there are even more improvements to be made, it's probably best that I stop while I am ahead. |
Inconsistencies in jobs within a workflow were leading to differences in compiler versions across jobs. This was breaking GitHub Actions workflows.
We want to continue using
*-latestversioning, so this patch merges the FMS build into each MOM6 build. Although there is greater compute time, it should be happening in parallel. It may even be shorter, since we do not need to wait on the additional OS setup.This patch also packs executables and other data into tarballs. This preserves most of the file data (file mode permissions and modified-time, mainly) so that we don't have to do Makefile tricks or use chmod to get things working in the next job. We also don't need to resort to horrible awk tricks to generate executable lists.
There may be a slight speedup here if the builds happen in parallel, since we are doing one less image setup, but CI runtimes are very variable so I don't think we'll be able to know right away.
(@Hallberg-NOAA noted that different MOM6 builds may still have different versions. Eventually we may need to have one job set the version and then force the others to use this prescribed version. But this is an improvement over the current state.)