Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
336edbf
Update Dockerfile, cime.yaml, and entrypoint.sh in docker/
jasonb5 Feb 9, 2026
db70388
Fixes base image to always use latest
jasonb5 Feb 10, 2026
3bb231c
Cleans up entrypoint
jasonb5 Feb 10, 2026
d462fce
Updates testing workflow
jasonb5 Feb 12, 2026
7e39a06
Fixes formatting
jasonb5 Feb 12, 2026
d8e7cd7
Explicitly installs wget/curl/subversion in container
jasonb5 Feb 12, 2026
9c60f90
Replaces legacy backticks
jasonb5 Feb 12, 2026
286597c
Only modify HOME if required
jasonb5 Feb 12, 2026
78eb63a
Fixes exit code
jasonb5 Feb 12, 2026
e05f5a1
Fixes exit if cprnc temp directory cannot be created
jasonb5 Feb 12, 2026
d3e06e4
Fixes forcing host over conda perl for shell and build tools
jasonb5 Feb 12, 2026
c811b10
Switches to spack for idempotent environment
jasonb5 Mar 4, 2026
a917d73
Fixes CI home directory
jasonb5 Mar 4, 2026
28c06a6
Fixes testing workflow
jasonb5 Mar 4, 2026
6fa1167
Fixes using uv pip
jasonb5 Mar 4, 2026
8191658
Fixes using uv in testing workflow
jasonb5 Mar 4, 2026
a4dd31b
Updates contributing guide
jasonb5 Mar 4, 2026
a612bcb
Fixes black formatting
jasonb5 Mar 4, 2026
7d66fe5
Fixes setting up uv python
jasonb5 Mar 4, 2026
2e730de
Fixes pip install
jasonb5 Mar 4, 2026
5ddf244
Fixes uv management
jasonb5 Mar 4, 2026
ffc660d
Fixes entrypoint and adds a default venv
jasonb5 Mar 4, 2026
88c557e
Updates documentation
jasonb5 Mar 4, 2026
2969950
Fixes not loading uv python when running in CI
jasonb5 Mar 4, 2026
9811e64
Adds missing ESMFMKFILE
jasonb5 Mar 4, 2026
124cd0f
fix: not loading uv in CI
jasonb5 Mar 4, 2026
df08a61
fix: adds debug
jasonb5 Mar 10, 2026
bcf2be4
fix: disable fixing mct ARFLAGS
jasonb5 Mar 10, 2026
a0fb2ca
fix: machine directories
jasonb5 Mar 11, 2026
1fbec24
fix: PKG_CONFIG_PATH typo and path
jasonb5 Mar 11, 2026
cf10335
fix: test requirements and build context
jasonb5 Mar 11, 2026
3a3cd4e
fix: removes debugging and unused scripting
jasonb5 Mar 11, 2026
47a0e7e
fix: updates doc
jasonb5 Mar 11, 2026
a230764
fix: build job config
jasonb5 Mar 11, 2026
cecca55
fix: sets context to current directory
jasonb5 Mar 11, 2026
4ee43c3
fix: download input data
jasonb5 Mar 11, 2026
3ff3abb
fix: archive paths for workflow failures
jasonb5 Mar 11, 2026
82929f7
fix: removes unused functions
jasonb5 Mar 12, 2026
d3fd506
fix: coalesce cime directories for easier persistence
jasonb5 Mar 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 22 additions & 32 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ jobs:
- name: Build and push
uses: docker/build-push-action@v6
with:
target: base
context: docker/
file: docker/Dockerfile
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
Expand Down Expand Up @@ -123,6 +123,8 @@ jobs:
with:
path: cesm/cime
submodules: "true"
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Run tests
shell: bash
working-directory: cesm/cime
Expand All @@ -132,18 +134,15 @@ jobs:
CIME_TEST_PLATFORM: "ubuntu-latest"
SKIP_ENTRYPOINT: "true"
run: |
source /opt/conda/etc/profile.d/conda.sh

conda activate cesm

mamba install -y 'python=${{ matrix.python-version }}'

pip install -r test-requirements.txt
# manually run the entrypoint
source /entrypoint.sh

# GitHub runner home is different than container
cp -rf /home/cime/.cime /github/home/
uv python install "${{ matrix.python-version }}"
uv venv
source .venv/bin/activate
uv pip install -r test-requirements.txt

pytest -vvv --cov=CIME --cov-branch --cov-report=xml --machine docker CIME/tests/test_unit*
uv run pytest -vvv --cov=CIME --cov-branch --cov-report=xml --machine docker CIME/tests/test_unit*
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
with:
Expand Down Expand Up @@ -214,6 +213,10 @@ jobs:
with:
path: /home/cime/inputdata
key: inputdata-2
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
python-version: "3.10"
- name: Run tests
shell: bash
working-directory: ${{ matrix.model.name }}/cime
Expand All @@ -223,31 +226,18 @@ jobs:
CIME_TEST_PLATFORM: ubuntu-latest
SKIP_ENTRYPOINT: "true"
run: |
source /opt/conda/etc/profile.d/conda.sh

conda activate ${{ matrix.model.name }}

pip install -r test-requirements.txt

# manually run the entrypoint
source /entrypoint.sh

if [[ "${{ matrix.model.name }}" == "e3sm" ]]; then
fix_mct_makefiles ../externals/mct
fi

# GitHub runner home is different than container
cp -rf /home/cime/.cime /github/home/

if [[ "${CIME_MODEL}" == "e3sm" ]]; then
ln -sf /github/home/.cime/config_machines.v2.xml /github/home/.cime/config_machines.xml
else
ln -sf /github/home/.cime/config_machines.v3.xml /github/home/.cime/config_machines.xml
fi
uv python install 3.10
uv venv
source .venv/bin/activate
uv pip install -r test-requirements.txt

git config --global user.name "${{ github.actor }}"
git config --global user.email "${{ github.actor }}@users.noreply.github.com"

pytest -vvv --cov=CIME --cov-branch --cov-report=xml --machine docker --no-fortran-run --no-teardown CIME/tests/test_sys*
uv run pytest -vvv --cov=CIME --cov-branch --cov-report=xml --machine docker --no-fortran-run --no-teardown CIME/tests/test_sys*
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
with:
Expand All @@ -259,7 +249,7 @@ jobs:
- name: Create testing log archive
if: ${{ failure() }}
shell: bash
run: tar -czvf /testing-logs-${GITHUB_RUN_NUMBER}-${{ matrix.model.name }}-${{ matrix.driver }}.tar.gz /home/cime/cases /home/cime/baselines /home/cime/archive
run: tar -czvf /testing-logs-${GITHUB_RUN_NUMBER}-${{ matrix.model.name }}-${{ matrix.driver }}.tar.gz /root/storage/cases /root/storage/baselines /root/storage/archive
# How to download artifacts:
# https://docs.github.com/en/actions/managing-workflow-runs/downloading-workflow-artifacts
- name: Upload testing logs
Expand Down
43 changes: 15 additions & 28 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,13 @@ For more information on contributing to open source projects,
is a great starting point. Also, checkout the [Zen of Scientific Software Maintenance](https://jrleeman.github.io/ScientificSoftwareMaintenance/)
for some guiding principles on how to create high quality scientific software contributions.

The canonical, detailed contributing guide for this repository is included in the source tree at `doc/source/contributing-guide.rst`; please consult that file as the single source of truth for developer workflows, testing, and container usage.

## Getting Started

Interested in helping extend CIME? Have code from your research that you believe others will
find useful? Have a few minutes to tackle an issue? In this guide we will get you setup and
integrated into contributing to CIME!
find useful? Have a few minutes to tackle an issue? This guide will get you set up to contribute
to CIME.

## What Can I Do?
* Tackle any unassigned [issues](https://github.com/ESMCI/CIME/issues) you wish!
Expand All @@ -44,7 +46,7 @@ The goal is to maintain a diverse community that's pleasant for everyone.
include multiple bug fixes in a single pull request, but they should be related.
For unrelated changes, please submit multiple pull requests.
* Do not commit changes to files that are irrelevant to your feature or bugfix
(eg: .gitignore).
(e.g., .gitignore).
* Be willing to accept constructive criticism as part of issuing a pull request,
since the CIME developers are dedicated to ensuring that new features extend the
system robustly and do not introduce new bugs.
Expand All @@ -53,7 +55,7 @@ The goal is to maintain a diverse community that's pleasant for everyone.

## Reporting a bug
When creating a new issue, please be as specific as possible. Include the version
of the code you were using, as well as what operating system you are running.
of the code you were using, as well as what operating system you are running. Include the commit SHA or tag (e.g., output of `git rev-parse HEAD`) and the branch name.
If possible, include complete, minimal example code that reproduces the problem.

## Pull Requests
Expand All @@ -62,34 +64,18 @@ We love pull requests from everyone. Fork, then clone the repo:

git clone git@github.com:your-username/CIME.git

Additionally you may need to checkout the submodules with:
You will need to initialize and update submodules:

cd CIME
git submodule update --init

You will need to install CIME dependencies and edit config files
to tell CIME about your development machine. See the [CIME users guide](https://esmci.github.io/cime/users_guide/porting-cime.html)

Run the scripts_regression_tests:

cd CIME/tests
python scripts_regression_tests.py

Alternatively with `pytest`:

pytest CIME/tests

Make your change. Add tests for your change. Make the tests pass to the same level as before your changes.
git submodule update --init --recursive

cd CIME/tests
python scripts_regression_tests.py
From here you can edit the code and run the unit tests following this [guide](https://esmci.github.io/cime/versions/master/html/contributing-guide.html#pytest).

Run [pre-commit](https://pre-commit.com/#usage) before committing changes and submitting a PR.
When running the ``unit`` tests you can specify any valid machine e.g. docker and the tests will run.

pip install pre-commit
pre-commit run -a
If you need to run the ``system`` tests you will need to have your respective model checked out and on a supported machine. Alternatively you can use CIME [container](https://esmci.github.io/cime/versions/master/html/contributing-guide.html#docker-container) which is used in our GitHub CI testing.

Commit the changes you made. Chris Beams has written a [guide](https://chris.beams.io/posts/git-commit/) on how to write good commit messages.
Before creating your PR you will need to run the code quality checkers; see this [guide](https://esmci.github.io/cime/versions/master/html/contributing-guide.html#code-quality).

Push to your fork and [submit a pull request][pr].

Expand All @@ -102,8 +88,9 @@ We may suggest some changes or improvements or alternatives.
Some things that will increase the chance that your pull request is accepted:

* Write tests.
* Follow [PEP8][pep8] for style. (The `flake8` utility can help with this.)
* Write a [good commit message][commit].
* Write documentation.
* Follow the [Code Quality guide](https://esmci.github.io/cime/versions/master/html/contributing-guide.html#code-quality)
* Write a good commit message, we recommend using [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/)

Pull requests will automatically have tests run by a Github Action. This
includes running both the unit tests as well as `pre-commit`, which checks
Expand Down
Loading
Loading