|
1 | 1 | version: 2.1 |
2 | 2 |
|
3 | | -executors: |
4 | | - gfortran-large: |
5 | | - docker: |
6 | | - - image: gmao/ubuntu20-geos-env-mkl:v6.2.8-openmpi_4.0.6-gcc_11.2.0 |
7 | | - auth: |
8 | | - username: $DOCKERHUB_USER |
9 | | - password: $DOCKERHUB_AUTH_TOKEN |
10 | | - environment: |
11 | | - OMPI_ALLOW_RUN_AS_ROOT: 1 |
12 | | - OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 |
13 | | - OMPI_MCA_btl_vader_single_copy_mechanism: none |
14 | | - resource_class: large |
| 3 | +parameters: |
| 4 | + GHA_Actor: |
| 5 | + type: string |
| 6 | + default: "" |
| 7 | + GHA_Action: |
| 8 | + type: string |
| 9 | + default: "" |
| 10 | + GHA_Event: |
| 11 | + type: string |
| 12 | + default: "" |
| 13 | + GHA_Meta: |
| 14 | + type: string |
| 15 | + default: "" |
15 | 16 |
|
16 | | - ifort-large: |
17 | | - docker: |
18 | | - - image: gmao/ubuntu20-geos-env:v6.2.8-intelmpi_2021.2.0-intel_2021.2.0 |
19 | | - auth: |
20 | | - username: $DOCKERHUB_USER |
21 | | - password: $DOCKERHUB_AUTH_TOKEN |
22 | | - resource_class: large |
| 17 | +# Anchors to prevent forgetting to update a version |
| 18 | +os_version: &os_version ubuntu24 |
| 19 | +baselibs_version: &baselibs_version v7.32.0 |
| 20 | +bcs_version: &bcs_version v11.6.0 |
| 21 | +tag_build_arg_name: &tag_build_arg_name gcmversion |
| 22 | + |
| 23 | +orbs: |
| 24 | + ci: geos-esm/circleci-tools@4 |
23 | 25 |
|
24 | 26 | workflows: |
25 | 27 | build-test: |
26 | 28 | jobs: |
27 | | - - build-GEOSctm: |
| 29 | + - ci/build: |
28 | 30 | name: build-GEOSctm-on-<< matrix.compiler >> |
29 | | - matrix: |
30 | | - parameters: |
31 | | - compiler: [gfortran, ifort] |
32 | 31 | context: |
33 | 32 | - docker-hub-creds |
34 | | - |
35 | | -jobs: |
36 | | - build-GEOSctm: |
37 | | - parameters: |
38 | | - compiler: |
39 | | - type: string |
40 | | - executor: << parameters.compiler >>-large |
41 | | - working_directory: /root/project |
42 | | - steps: |
43 | | - - checkout: |
44 | | - path: GEOSctm |
45 | | - - run: |
46 | | - name: "Versions etc" |
47 | | - command: mpirun --version && << parameters.compiler>> --version && echo $BASEDIR && pwd && ls |
48 | | - - run: |
49 | | - name: "Mepo clone external repos" |
50 | | - command: | |
51 | | - cd ${CIRCLE_WORKING_DIRECTORY}/GEOSctm |
52 | | - mepo clone |
53 | | - mepo status |
54 | | - - run: |
55 | | - name: "Mepo checkout-if-exists" |
56 | | - command: | |
57 | | - cd ${CIRCLE_WORKING_DIRECTORY}/GEOSctm |
58 | | - echo "${CIRCLE_BRANCH}" |
59 | | - if [ "${CIRCLE_BRANCH}" != "develop" ] && [ "${CIRCLE_BRANCH}" != "main" ] |
60 | | - then |
61 | | - mepo checkout-if-exists ${CIRCLE_BRANCH} |
62 | | - fi |
63 | | - mepo status |
64 | | - - run: |
65 | | - name: "CMake" |
66 | | - command: | |
67 | | - mkdir -p /logfiles |
68 | | - cd ${CIRCLE_WORKING_DIRECTORY}/GEOSctm |
69 | | - mkdir -p ${CIRCLE_WORKING_DIRECTORY}/workspace/build-GEOSctm |
70 | | - cd ${CIRCLE_WORKING_DIRECTORY}/workspace/build-GEOSctm |
71 | | - cmake ${CIRCLE_WORKING_DIRECTORY}/GEOSctm -DBASEDIR=$BASEDIR/Linux -DCMAKE_Fortran_COMPILER=<< parameters.compiler >> -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=${CIRCLE_WORKING_DIRECTORY}/workspace/install-GEOSctm -DUSE_F2PY=OFF |& tee /logfiles/cmake.log |
72 | | - - run: |
73 | | - name: "Build and install" |
74 | | - command: | |
75 | | - cd ${CIRCLE_WORKING_DIRECTORY}/workspace/build-GEOSctm |
76 | | - make -j"$(nproc)" install |& tee /logfiles/make.log |
77 | | - - run: |
78 | | - name: "Compress artifacts" |
79 | | - command: | |
80 | | - gzip -9 /logfiles/* |
81 | | - - store_artifacts: |
82 | | - path: /logfiles |
| 33 | + matrix: |
| 34 | + parameters: |
| 35 | + compiler: [gfortran, ifort, ifx] |
| 36 | + baselibs_version: *baselibs_version |
| 37 | + repo: GEOSctm |
| 38 | + develop_repos: "GMAO_Shared GEOS_Util" |
| 39 | + persist_workspace: false # Needs to be true to run fv3/gcm experiment, costs extra |
0 commit comments