fix: CI updates and bug fixes for CMake build (#1437)
[FMS.git] / CI.md
blob89b4db256e723ad18b37dda1b0e7c7bb8f98ac7d
1 # CI Information
3 The CI workflows and checks, and associated container environments for this repository
4 are listed below.
5 Actions run via Github-hosted runners unless otherwise noted.
6 Required CI for pull requests are listed first.
8 ## Pull Request CI and checks
10 ### Build libFMS with autotools
12 Required GNU build test for all pull requests/pushes.
13 Runs `make distcheck` after configuring via GNU autotools.
15 Runs on a container image with spack installed dependencies, on top a rocky linux base.
17 Dockerfile for image is stored at .github/workflows/Dockerfile.gnu for more specific information on the CI environment.
19 Container environment:
20 gcc            v12.3.0
21 mpich          v4.0.2
22 netcdf         v4.9.0
23 netcdf-fortran v4.6.0
24 autoconf       v2.69
25 libyaml        v0.2.5
27 `./configure` flags tested:
28 - `--disable-openmp`
29 - `--enable-mixed-mode`
30 - `--with-mpi=no` (disables unit testing)
31 - `--disable-setting-flags`
32 - `--with-yaml`
33 - `--enable-test-input=/home/unit_tests_input`
36 ### Build libfms with cmake
37 Required GNU build test for all pull requests/pushes.
38 Runs `make` after configuring via cmake.
40 Container environment:
41 gcc            v7.3.0
42 mpich          v3.3a2
43 netcdf         v4.6.0
44 netcdf-fortran v4.4.4
45 cmake          v3.22.0
47 container hosted at [noaagfdl/ubuntu_libfms_gnu:latest](https://hub.docker.com/r/noaagfdl/ubuntu_libfms_gnu)
49 cmake flags:
50 - `-DOPENMP=on`
51 - `-DOPENMP=on`
52 - `-DWITH_YAML=on`
53 - `-D64BIT=on`
55 ### libFMS lint tests
56 Required test for all pull requests.
57 Checks code for line lengths, tabs, and trailing whitespace in accordance with
58 the project's [style guide](https://github.com/NOAA-GFDL/FMS/blob/main/CODE_STYLE.md).
59 The action is hosted on github [here](https://github.com/NOAA-GFDL/simple_lint).
61 ## Parallelworks CI
62 The following CI workflows run on self-hosted runners through the parallelworks platform.
63 ### Pull Request CI libFMS with intel
64 Optional(does not need to pass to merge) intel build test hosted on the parallelworks platform.
65 Runs `make check` with intel 18 and 21 compilers for all pull requests.
67 ### Tag CI libFMS with AM4 regression
68 On alpha or beta tag creation, compiles and runs full AM4 model regression testing using the new FMS tag on parallelworks.