-
Notifications
You must be signed in to change notification settings - Fork 17
Automated builds and Azure Pipelines CI
The Fermitools are built by the azure pipelines automated CI system created by the fermi-lat developers from the Fermi Science Support Center at NASA's Goddard Space Flight Center.
The Pipeline is divided into 9 parallel stages across 3 broad categories: Linux, MacOSX, and Sync.
The Linux Prepare Dependencies and MacOSX Prepare Dependencies stages create the linux and mac versions of the fermitools-dependencies
and fermitools-build-deps
metapackages. These are versioned conda packages that collect all required packages for fermitools build and run-time conda dependency resolution into a single metapackage for each system.
Once built, the metapackages are uploaded to the fermi-lat anaconda cloud organization. They are built to share a version number with the corresponding Fermitools, which have yet to be built.
The Linux Save Explicit Dependencies and MacOSX Save Explicit Dependencies stages download the recently created build packages and create an explicit list of tarball URLs, which is then uploaded with an appropriate tag to the Fermitools-explicit-build-deps-linux and Fermitools-explicit-build-deps-macosx.
The Linux Build Stage and MacOSX Build Stage stages use repoman
to checkout the target source code, and conda-build
to create a fermitools tarball, finally uploading to anaconda.
Checkout and test the recently uploaded tools.
Having built both mac and linux versions of the tools this stage uses git commands to add git tags to each of the component packages used to build that version of the tools. These tags enable bidirectional traceability between the final binary products and the source code used to to compile them.