The CoNES repository was templated from Singularity Deploy
To generate a NEMO/XIOS Singularity Container please read the documentaion. What follows is a simplified quick-start guide:
If building locally is not an option then it is also possible to build and release Singularity containers using GitHub Actions. Singularity Deploy developed by Vanessa Sochat has been modified to allow users to fork the GitHub CoNES repository and, using GitHub Actions, build and release a bespoke NEMO singularity container.
The CoNES
repository has been set up such that:
- the container is updated/developed via a branch
- the container build will be tested on a pull request
- a release will be triggered on merge into main
This workflow can easily be modified by altering:
.github/workflows/test.yml
for the testing of builds.github/workflows/builder.yml
for the container release
An individual NEMO SIF build can be created using the following steps:
- Fork the
CoNES
repository underUSER
account (main branch only is fine)
Under theActions
tab enable workflows
Under theSettings
tab click throughactions
->general
and setworkflow permissions
to r+w and save
Return to thecode
tab - Create a new branch
- Edit the
VERSION
file to something approprate (e.g. 0.0.3)
[Optional] Edit theinputs/NEMO_in
namelist for NEMO version number, MPI choice etc. - Create a Pull Request from that branch to main. Make sure this is from
USER/branch
toUSER/main
and not toNOC-MSM/main
.
At this point a test build will be triggered, which can take ~15 minutes per MPI build requested - If successful the merge will be available. Click merge and ...
- A NEMO SIF will be built and released under the version specified (again this can take ~15 minutes per MPI build requested).
- The NEMO SIF and asscoiated assets will appear under the
Releases
tab.
The branch can now either be deleted or held open for further changes to NEMO_in
and subsequent releases.
Note:
If the tag in the VERSION
file is not incremented then a new release is not built.
To download the released NEMO SIF either use:
wget -c https://github.com/MY_CoNES/releases/download/$VERSION/MY_CoNES.nemo.sif -o nemo.sif
or Singularity can also pull just knowing the URL. For example:
singularity pull https://github.com/MY_CONES/releases/download/$VERSION/MY_CONES.nemo.sif