Skip to content

Commit 5ea0e94

Browse files
committed
Merge tag 'ctsm5.3.061' into sep_hXi_hXa_tapes_iss1059
Merge b4b-dev to master slevis resolved conflicts: src/main/histFileMod.F90
2 parents c2123d4 + 4c379f2 commit 5ea0e94

File tree

120 files changed

+2966
-745
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+2966
-745
lines changed

.git-blame-ignore-revs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,5 @@ cdf40d265cc82775607a1bf25f5f527bacc97405
6767
3b7a2876933263f8986e4069f5d23bd45635756f
6868
3dd489af7ebe06566e2c6a1c7ade18550f1eb4ba
6969
742cfa606039ab89602fde5fef46458516f56fd4
70+
4ad46f46de7dde753b4653c15f05326f55116b73
71+
75db098206b064b8b7b2a0604d3f0bf8fdb950cc

.github/workflows/docker-image-build.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Modified from https://docs.github.com/en/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions#publishing-a-package-using-an-action (last accessed 2025-05-09)
2-
name: Test building ctsm-docs Docker image and using it to build the docs
2+
name: Build and test ctsm-docs container
33

44
# Configures this workflow to run every time a change in the Docker container setup is pushed or included in a PR
55
on:
@@ -9,15 +9,13 @@ on:
99
paths:
1010
- 'doc/ctsm-docs_container/**'
1111
- '!doc/ctsm-docs_container/README.md'
12-
- '.github/workflows/docker-image-ctsm-docs-build.yml'
1312
- '.github/workflows/docker-image-common.yml'
1413

1514
pull_request:
1615
# Run on pull requests that change the listed files
1716
paths:
1817
- 'doc/ctsm-docs_container/**'
1918
- '!doc/ctsm-docs_container/README.md'
20-
- '.github/workflows/docker-image-ctsm-docs-build.yml'
2119
- '.github/workflows/docker-image-common.yml'
2220

2321
workflow_dispatch:

.github/workflows/docker-image-common.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,14 +76,16 @@ jobs:
7676
tags: ${{ steps.meta.outputs.tags }}
7777
labels: ${{ steps.meta.outputs.labels }}
7878

79-
# Try building our docs using the new container
80-
- name: Checkout doc-builder external
79+
# Check out all submodules because we might :literalinclude: something from one
80+
- name: Checkout all submodules
8181
run: |
82-
bin/git-fleximod update doc-builder
82+
bin/git-fleximod update -o
83+
8384
- name: Set image tag for docs build
8485
id: set-image-tag
8586
run: |
8687
echo "IMAGE_TAG=$(echo '${{ steps.meta.outputs.tags }}' | head -n 1 | cut -d',' -f1)" >> $GITHUB_ENV
88+
8789
- name: Build docs using Docker (Podman has trouble on GitHub runners)
8890
id: build-docs
8991
run: |

.github/workflows/docs-build-and-deploy.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@ on:
66
branches: ['master', 'release-clm5.0']
77
paths:
88
- 'doc/**'
9+
- '!doc/test/*'
910
- '!doc/*ChangeLog*'
1011
- '!doc/*ChangeSum*'
1112
- '!doc/UpdateChangelog.pl'
1213
# Include all include::ed files outside doc/ directory!
1314
- 'src/README.unit_testing'
1415
- 'tools/README'
16+
- 'doc/test/test_container_eq_ctsm_pylib.sh'
1517

1618
# Allows you to run this workflow manually from the Actions tab
1719
workflow_dispatch:
@@ -46,10 +48,14 @@ jobs:
4648
- name: Setup Pages
4749
uses: actions/configure-pages@v5
4850

51+
# Check out all submodules because we might :literalinclude: something from one
52+
- name: Checkout all submodules
53+
run: |
54+
bin/git-fleximod update -o
55+
4956
- name: Build docs using container
5057
id: build-docs
5158
run: |
52-
bin/git-fleximod update -o
5359
cd doc
5460
./build_docs_to_publish -d --site-root https://escomp.github.io/CTSM
5561

.github/workflows/docs-common.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ jobs:
2626
fetch-depth: 0
2727
lfs: true
2828

29-
- name: Checkout doc-builder external
29+
# Check out all submodules because we might :literalinclude: something from one
30+
- name: Checkout all submodules
3031
run: |
31-
bin/git-fleximod update doc-builder
32+
bin/git-fleximod update -o
3233
3334
# Do this if not using conda
3435
# Based on https://github.com/actions/cache/blob/main/examples.md#python---pip

.github/workflows/docs-omnibus.yml

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,39 +5,34 @@ on:
55
# Run when a change to these files is pushed to any branch. Without the "branches:" line, for some reason this will be run whenever a tag is pushed, even if the listed files aren't changed.
66
branches: ['*']
77
paths:
8-
- 'doc/**'
9-
- '!doc/*ChangeLog*'
10-
- '!doc/*ChangeSum*'
11-
- '!doc/UpdateChangelog.pl'
12-
# Include all include::ed files outside doc/ directory!
13-
- 'src/README.unit_testing'
14-
- 'tools/README'
8+
- 'doc/test/*'
9+
- 'doc/Makefile'
1510

1611
pull_request:
1712
# Run on pull requests that change the listed files
1813
paths:
19-
- 'doc/**'
20-
- '!doc/*ChangeLog*'
21-
- '!doc/*ChangeSum*'
22-
- '!doc/UpdateChangelog.pl'
23-
# Include all include::ed files outside doc/ directory!
24-
- 'src/README.unit_testing'
25-
- 'tools/README'
14+
- 'doc/test/*'
15+
- 'doc/Makefile'
2616

2717
workflow_dispatch:
2818

2919
jobs:
3020
build-docs-omnibus-test:
21+
# Don't run on forks, because part(s) of omnibus testing script will look for
22+
# branch(es) that forks may not have.
23+
if: ${{ github.repository == 'ESCOMP/CTSM' }}
24+
3125
runs-on: ubuntu-latest
3226
steps:
3327
- uses: actions/checkout@v4
3428
with:
3529
fetch-depth: 0
3630
lfs: true
3731

38-
- name: Checkout doc-builder external
32+
# Check out all submodules because we might :literalinclude: something from one
33+
- name: Checkout all submodules
3934
run: |
40-
bin/git-fleximod update doc-builder
35+
bin/git-fleximod update -o
4136
4237
# Set up conda
4338
- name: Set up conda environment
@@ -48,7 +43,6 @@ jobs:
4843
channels: conda-forge
4944
auto-activate-base: false
5045

51-
# TODO: Split testing.sh tests into their own steps in this job
5246
- name: Text Sphinx builds with omnibus script
5347
run: |
54-
cd doc && ./testing.sh
48+
cd doc/test/ && ./testing.sh

.github/workflows/docs-ctsm_pylib.yml renamed to .github/workflows/docs-update-ctsm_pylib.yml

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
1-
name: Test building docs with ctsm_pylib
1+
name: Docs tests to run when ctsm_pylib is updated
22

33
on:
44
push:
55
# Run when a change to these files is pushed to any branch. Without the "branches:" line, for some reason this will be run whenever a tag is pushed, even if the listed files aren't changed.
66
branches: ['*']
77
paths:
88
- 'python/conda_env_ctsm_py.txt'
9+
- 'doc/ctsm-docs_container/requirements.txt'
910
- '.github/workflows/docs-common.yml'
11+
- '.github/workflows/docs-update-dependency-common.yml'
1012

1113
pull_request:
1214
# Run on pull requests that change the listed files
1315
paths:
1416
- 'python/conda_env_ctsm_py.txt'
17+
- 'doc/ctsm-docs_container/requirements.txt'
1518
- '.github/workflows/docs-common.yml'
19+
- '.github/workflows/docs-update-dependency-common.yml'
1620

1721
schedule:
1822
# 8 am every Monday UTC
@@ -25,14 +29,23 @@ permissions:
2529
jobs:
2630
test-build-docs-ctsm_pylib:
2731
if: ${{ always() }}
28-
name: With ctsm_pylib
32+
name: Build with ctsm_pylib
2933
uses: ./.github/workflows/docs-common.yml
3034
with:
3135
use_conda: true
3236
conda_env_file: python/conda_env_ctsm_py.yml
3337
conda_env_name: ctsm_pylib
3438

35-
# File an issue if the docs build failed during a scheduled run
39+
test-update-dependency:
40+
if: ${{ always() }}
41+
name: Docs dependency update tests
42+
uses: ./.github/workflows/docs-update-dependency-common.yml
43+
44+
# File an issue if the docs build failed during a scheduled run.
45+
# The main thing we're concerned about in that case is something having
46+
# changed outside the repository that's causing the ctsm_pylib setup to
47+
# fail. Thus, we don't need this job to wait for BOTH the above jobs---
48+
# if one fails, they both will.
3649
file-issue-on-failure:
3750
if: |
3851
failure() &&
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Jobs shared by docs workflows that run when a dependency is updated
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
# Conda is always needed for both jobs in this workflow. Here,
7+
# we set default values for the variables in case the calling
8+
# workflow doesn't provide them.
9+
conda_env_file:
10+
required: false
11+
type: string
12+
default: "python/conda_env_ctsm_py.yml"
13+
conda_env_name:
14+
required: false
15+
type: string
16+
default: "ctsm_pylib"
17+
secrets: {}
18+
19+
jobs:
20+
compare-docbuilder-vs-ctsmpylib:
21+
name: Are both methods identical?
22+
23+
# Don't run on forks, because test_container_eq_ctsm_pylib.sh uses
24+
# build_docs_to_publish, which will look for branch(es) that forks
25+
# may not have
26+
if: ${{ github.repository == 'ESCOMP/CTSM' }}
27+
28+
runs-on: ubuntu-latest
29+
steps:
30+
- uses: actions/checkout@v4
31+
with:
32+
fetch-depth: 0
33+
lfs: true
34+
35+
# Check out all submodules because we might :literalinclude: something from one
36+
- name: Checkout all submodules
37+
run: |
38+
bin/git-fleximod update -o
39+
40+
- name: Set up conda environment
41+
uses: conda-incubator/setup-miniconda@v3
42+
with:
43+
activate-environment: ${{ inputs.conda_env_name }}
44+
environment-file: ${{ inputs.conda_env_file }}
45+
channels: conda-forge
46+
auto-activate-base: false
47+
48+
- name: Compare docs built with container vs. ctsm_pylib
49+
run: |
50+
cd doc/test/
51+
./test_container_eq_ctsm_pylib.sh
52+
53+
makefile-method:
54+
runs-on: ubuntu-latest
55+
steps:
56+
- uses: actions/checkout@v4
57+
with:
58+
fetch-depth: 0
59+
lfs: true
60+
61+
# Check out all submodules because we might :literalinclude: something from one
62+
- name: Checkout all submodules
63+
run: |
64+
bin/git-fleximod update -o
65+
66+
- name: Set up conda environment
67+
uses: conda-incubator/setup-miniconda@v3
68+
with:
69+
activate-environment: ${{ inputs.conda_env_name }}
70+
environment-file: ${{ inputs.conda_env_file }}
71+
channels: conda-forge
72+
auto-activate-base: false
73+
74+
- name: Check that Makefile method works
75+
run: |
76+
cd doc/test/
77+
conda run -n ${{ inputs.conda_env_name }} --no-capture-output ./test_makefile_method.sh
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Docs tests to run when doc-builder is updated
2+
3+
on:
4+
push:
5+
# Run when a change to these files is pushed to any branch. Without the "branches:" line, for some reason this will be run whenever a tag is pushed, even if the listed files aren't changed.
6+
branches: ['*']
7+
paths:
8+
- 'doc/doc-builder'
9+
- '.github/workflows/docs-update-dependency-common.yml'
10+
11+
pull_request:
12+
# Run on pull requests that change the listed files
13+
paths:
14+
- 'doc/doc-builder'
15+
- '.github/workflows/docs-update-dependency-common.yml'
16+
17+
workflow_dispatch:
18+
19+
permissions:
20+
contents: read
21+
jobs:
22+
test-update-dependency:
23+
24+
name: Tests to run when either docs dependency is updated
25+
uses: ./.github/workflows/docs-update-dependency-common.yml
26+
27+
test-rv-setup:
28+
29+
runs-on: ubuntu-latest
30+
steps:
31+
- uses: actions/checkout@v4
32+
with:
33+
fetch-depth: 0
34+
lfs: true
35+
36+
# Check out all submodules because we might :literalinclude: something from one
37+
- name: Checkout all submodules
38+
run: |
39+
bin/git-fleximod update -o
40+
41+
- name: build_docs rv method
42+
run: |
43+
cd doc/test/ && ./test_build_docs_-r-v.sh docker

.github/workflows/docs.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,29 @@ on:
77
branches: ['*']
88
paths:
99
- 'doc/**'
10+
- '!doc/test/*'
1011
- '!doc/*ChangeLog*'
1112
- '!doc/*ChangeSum*'
1213
- '!doc/UpdateChangelog.pl'
1314
- '.github/workflows/docs-common.yml'
1415
# Include all include::ed files outside doc/ directory!
1516
- 'src/README.unit_testing'
1617
- 'tools/README'
18+
- 'doc/test/test_container_eq_ctsm_pylib.sh'
1719

1820
pull_request:
1921
# Run on pull requests that change the listed files
2022
paths:
2123
- 'doc/**'
24+
- '!doc/test/*'
2225
- '!doc/*ChangeLog*'
2326
- '!doc/*ChangeSum*'
2427
- '!doc/UpdateChangelog.pl'
2528
- '.github/workflows/docs-common.yml'
2629
# Include all include::ed files outside doc/ directory!
2730
- 'src/README.unit_testing'
2831
- 'tools/README'
32+
- 'doc/test/test_container_eq_ctsm_pylib.sh'
2933

3034
workflow_dispatch:
3135

@@ -49,9 +53,10 @@ jobs:
4953
- name: Checkout repository
5054
uses: actions/checkout@v4
5155

52-
- name: Checkout doc-builder external
56+
# Check out all submodules because we might :literalinclude: something from one
57+
- name: Checkout all submodules
5358
run: |
54-
bin/git-fleximod update doc-builder
59+
bin/git-fleximod update -o
5560
5661
- name: Build docs using Docker (Podman has trouble on GitHub runners)
5762
id: build-docs

0 commit comments

Comments
 (0)