Skip to content

Commit 11ef378

Browse files
committed
Merge branch 'main' of github.com:ESMValGroup/ESMValCore into add-xcube-support
2 parents 107eff4 + da81d5f commit 11ef378

222 files changed

Lines changed: 4722 additions & 1548 deletions

File tree

Some content is hidden

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

.circleci/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ commands:
7777
key: install-<< parameters.extra >>-{{ .Branch }}-{{ checksum "cache_key.txt" }}
7878
- run:
7979
name: Install dependencies
80+
no_output_timeout: 30m
8081
command: |
8182
# Add additional requirements for running all tests
8283
echo "

.github/dependabot.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,9 @@ updates:
1212
directory: "/"
1313
schedule:
1414
interval: "weekly"
15+
cooldown:
16+
default-days: 7
17+
labels:
18+
- dependencies
19+
- github_actions
20+
- automatedPR
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
doc/contributing.rst

.github/workflows/build-and-deploy-on-pypi.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Workflow from https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/
22
name: Build and publish Python 🐍 distribution 📦 to PyPI
33

4+
permissions: {}
5+
46
on:
57
release:
68
types: [published]
@@ -16,12 +18,12 @@ jobs:
1618
runs-on: ubuntu-latest
1719

1820
steps:
19-
- uses: actions/checkout@v6
21+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2022
with:
2123
fetch-depth: 0
2224
persist-credentials: false
2325
- name: Set up Python
24-
uses: actions/setup-python@v6
26+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
2527
with:
2628
python-version: "3.x"
2729
- name: Install pypa/build
@@ -33,7 +35,7 @@ jobs:
3335
- name: Build a binary wheel and a source tarball
3436
run: python3 -m build
3537
- name: Store the distribution packages
36-
uses: actions/upload-artifact@v6
38+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
3739
with:
3840
name: python-package-distributions
3941
path: dist/
@@ -53,9 +55,9 @@ jobs:
5355

5456
steps:
5557
- name: Download all the dists
56-
uses: actions/download-artifact@v7
58+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
5759
with:
5860
name: python-package-distributions
5961
path: dist/
6062
- name: Publish distribution 📦 to PyPI
61-
uses: pypa/gh-action-pypi-publish@v1.13.0
63+
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0

.github/workflows/citation_file_validator.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,26 @@
33

44
name: CFF File Validator
55

6+
permissions: {}
7+
68
on:
79
push:
810
paths:
911
- CITATION.cff
1012
schedule:
11-
- cron: '0 0 1 * *'
13+
- cron: "0 0 1 * *"
1214

1315
jobs:
1416
validate:
1517
name: "validate"
1618
runs-on: ubuntu-latest
17-
if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks
19+
if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks
1820
steps:
1921
- name: Check out a copy of the repository
20-
uses: actions/checkout@v6
22+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
23+
with:
24+
persist-credentials: false
2125
- name: Check whether the citation metadata from CITATION.cff is valid
22-
uses: citation-file-format/cffconvert-github-action@2.0.0
26+
uses: citation-file-format/cffconvert-github-action@4cf11baa70a673bfdf9dad0acc7ee33b3f4b6084 # 2.0.0
2327
with:
2428
args: "--validate"

.github/workflows/create-condalock-file.yml

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
name: Conda lock file creation
22

3+
permissions: {}
4+
35
on:
46
# Trigger on push on main or other branch for testing
57
# NOTE that push: main will create the file very often
@@ -8,7 +10,7 @@ on:
810
# branches:
911
# - main
1012
schedule:
11-
- cron: '0 4 */10 * *'
13+
- cron: "0 4 */10 * *"
1214

1315
# Required shell entrypoint to have properly configured bash shell
1416
defaults:
@@ -18,13 +20,17 @@ defaults:
1820
jobs:
1921
create-verify-lock-file:
2022
name: Create and verify conda lock file for latest Python
21-
runs-on: 'ubuntu-latest'
22-
if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks
23+
permissions:
24+
contents: write
25+
pull-requests: write
26+
runs-on: "ubuntu-latest"
27+
if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks
2328
steps:
24-
- uses: actions/checkout@v6
29+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2530
with:
2631
fetch-depth: 0
27-
- uses: conda-incubator/setup-miniconda@v3
32+
persist-credentials: false
33+
- uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
2834
with:
2935
auto-update-conda: true
3036
activate-environment: esmvaltool-fromlock
@@ -72,15 +78,15 @@ jobs:
7278
# Automated PR
7379
# see https://github.com/marketplace/actions/create-pull-request
7480
- name: Create Automated PR if conda lock file has changed
75-
uses: peter-evans/create-pull-request@v8
81+
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
7682
with:
7783
token: ${{ secrets.GITHUB_TOKEN }}
7884
commit-message: Updating Linux condalock file
7985
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
8086
signoff: false
8187
branch: condalock-update
8288
delete-branch: true
83-
title: '[Condalock] Update Linux condalock file'
89+
title: "[Condalock] Update Linux condalock file"
8490
body: |
8591
Update condalock file
8692
Automatic Pull Request.

.github/workflows/install-from-conda.yml

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
name: Install from conda-forge
1515

16+
permissions: {}
17+
1618
# runs on a push on main and at the end of every day
1719
on:
1820
# triggering on push without branch name will run tests every time
@@ -27,7 +29,7 @@ on:
2729
# branches:
2830
# - main
2931
schedule:
30-
- cron: '0 4 * * *'
32+
- cron: "0 4 * * *"
3133

3234
# Required shell entrypoint to have properly configured bash shell
3335
defaults:
@@ -37,7 +39,7 @@ defaults:
3739
jobs:
3840
linux:
3941
runs-on: "ubuntu-latest"
40-
if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks
42+
if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks
4143
strategy:
4244
matrix:
4345
python-version: ["3.12", "3.13", "3.14"]
@@ -46,7 +48,7 @@ jobs:
4648
fail-fast: false
4749
name: Linux Python ${{ matrix.python-version }}
4850
steps:
49-
- uses: conda-incubator/setup-miniconda@v3
51+
- uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
5052
with:
5153
python-version: ${{ matrix.python-version }}
5254
miniforge-version: "latest"
@@ -65,23 +67,23 @@ jobs:
6567
esmvaltool --help
6668
esmvaltool version 2>&1 | tee conda_install_linux_artifacts_python_${{ matrix.python-version }}/version.txt
6769
- name: Upload artifacts
68-
if: ${{ always() }} # upload artifacts even if fail
69-
uses: actions/upload-artifact@v6
70+
if: ${{ always() }} # upload artifacts even if fail
71+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
7072
with:
7173
name: Conda_Install_Linux_python_${{ matrix.python-version }}
7274
path: conda_install_linux_artifacts_python_${{ matrix.python-version }}
7375

7476
osx:
7577
runs-on: "macos-latest"
76-
if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks
78+
if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks
7779
strategy:
7880
matrix:
7981
python-version: ["3.12", "3.13", "3.14"]
80-
architecture: ["x64"] # need to force Intel, arm64 builds have issues
82+
architecture: ["x64"] # need to force Intel, arm64 builds have issues
8183
fail-fast: false
8284
name: OSX Python ${{ matrix.python-version }}
8385
steps:
84-
- uses: conda-incubator/setup-miniconda@v3
86+
- uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
8587
with:
8688
architecture: ${{ matrix.architecture }}
8789
python-version: ${{ matrix.python-version }}
@@ -101,8 +103,8 @@ jobs:
101103
esmvaltool --help
102104
esmvaltool version 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/version.txt
103105
- name: Upload artifacts
104-
if: ${{ always() }} # upload artifacts even if fail
105-
uses: actions/upload-artifact@v6
106+
if: ${{ always() }} # upload artifacts even if fail
107+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
106108
with:
107109
name: Conda_Install_OSX_python_${{ matrix.python-version }}
108110
path: conda_install_osx_artifacts_python_${{ matrix.python-version }}

.github/workflows/install-from-condalock-file.yml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
# note that pip and conda are NOT installed.
88

99
name: Conda-lock Install
10+
11+
permissions: {}
12+
1013
on:
1114
push:
1215
branches:
@@ -17,7 +20,7 @@ on:
1720
# branches:
1821
# - main
1922
schedule:
20-
- cron: '0 0 * * *'
23+
- cron: "0 0 * * *"
2124

2225
# Required shell entrypoint to have properly configured bash shell
2326
defaults:
@@ -27,17 +30,18 @@ defaults:
2730
jobs:
2831
linux:
2932
runs-on: "ubuntu-latest"
30-
if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks
33+
if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks
3134
strategy:
3235
matrix:
3336
python-version: ["3.12", "3.13", "3.14"]
3437
fail-fast: false
3538
name: Linux Python ${{ matrix.python-version }}
3639
steps:
37-
- uses: actions/checkout@v6
40+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3841
with:
3942
fetch-depth: 0
40-
- uses: conda-incubator/setup-miniconda@v3
43+
persist-credentials: false
44+
- uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
4145
with:
4246
activate-environment: esmvaltool-fromlock
4347
python-version: ${{ matrix.python-version }}
@@ -55,8 +59,8 @@ jobs:
5559
- run: esmvaltool version 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/version.txt
5660
- run: pytest -n 2 -m "not installation"
5761
- name: Upload artifacts
58-
if: ${{ always() }} # upload artifacts even if fail
59-
uses: actions/upload-artifact@v6
62+
if: ${{ always() }} # upload artifacts even if fail
63+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
6064
with:
6165
name: Source_Install_Linux_python_${{ matrix.python-version }}
6266
path: source_install_linux_artifacts_python_${{ matrix.python-version }}

.github/workflows/install-from-pypi.yml

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
name: Install from PyPi
1515

16+
permissions: {}
17+
1618
# runs on a push on main and at the end of every day
1719
on:
1820
# triggering on push without branch name will run tests every time
@@ -27,7 +29,7 @@ on:
2729
# branches:
2830
# - main
2931
schedule:
30-
- cron: '0 0 * * *'
32+
- cron: "0 0 * * *"
3133

3234
# Required shell entrypoint to have properly configured bash shell
3335
defaults:
@@ -37,7 +39,7 @@ defaults:
3739
jobs:
3840
linux:
3941
runs-on: "ubuntu-latest"
40-
if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks
42+
if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks
4143
strategy:
4244
matrix:
4345
python-version: ["3.12", "3.13", "3.14"]
@@ -46,8 +48,10 @@ jobs:
4648
fail-fast: false
4749
name: Linux Python ${{ matrix.python-version }}
4850
steps:
49-
- uses: actions/checkout@v6
50-
- uses: conda-incubator/setup-miniconda@v3
51+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
52+
with:
53+
persist-credentials: false
54+
- uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
5155
with:
5256
activate-environment: esmvalcore
5357
environment-file: environment.yml
@@ -68,24 +72,26 @@ jobs:
6872
esmvaltool --help
6973
esmvaltool version 2>&1 | tee pip_install_linux_artifacts_python_${{ matrix.python-version }}/version.txt
7074
- name: Upload artifacts
71-
if: ${{ always() }} # upload artifacts even if fail
72-
uses: actions/upload-artifact@v6
75+
if: ${{ always() }} # upload artifacts even if fail
76+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
7377
with:
7478
name: PIP_Install_Linux_python_${{ matrix.python-version }}
7579
path: pip_install_linux_artifacts_python_${{ matrix.python-version }}
7680

7781
osx:
7882
runs-on: "macos-latest"
79-
if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks
83+
if: github.repository == 'ESMValGroup/ESMValCore' # avoid GAs in forks
8084
strategy:
8185
matrix:
8286
python-version: ["3.12", "3.13", "3.14"]
83-
architecture: ["x64"] # need to force Intel, arm64 builds have issues
87+
architecture: ["x64"] # need to force Intel, arm64 builds have issues
8488
fail-fast: false
8589
name: OSX Python ${{ matrix.python-version }}
8690
steps:
87-
- uses: actions/checkout@v6
88-
- uses: conda-incubator/setup-miniconda@v3
91+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
92+
with:
93+
persist-credentials: false
94+
- uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
8995
with:
9096
architecture: ${{ matrix.architecture }}
9197
activate-environment: esmvalcore
@@ -106,8 +112,8 @@ jobs:
106112
esmvaltool --help
107113
esmvaltool version 2>&1 | tee pip_install_osx_artifacts_python_${{ matrix.python-version }}/version.txt
108114
- name: Upload artifacts
109-
if: ${{ always() }} # upload artifacts even if fail
110-
uses: actions/upload-artifact@v6
115+
if: ${{ always() }} # upload artifacts even if fail
116+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
111117
with:
112118
name: PIP_Install_OSX_python_${{ matrix.python-version }}
113119
path: pip_install_osx_artifacts_python_${{ matrix.python-version }}

0 commit comments

Comments
 (0)