Skip to content

Merge pull request #659 from xylar/spherical-mesh-cleanup #553

Merge pull request #659 from xylar/spherical-mesh-cleanup

Merge pull request #659 from xylar/spherical-mesh-cleanup #553

name: CI/CD Build Workflow
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
env:
CANCEL_OTHERS: true
PATHS_IGNORE: '["**/README.md", "**/docs/**"]'
jobs:
pre-commit-hooks:
name: lint with pre-commit
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@master
with:
cancel_others: ${{ env.CANCEL_OTHERS }}
paths_ignore: ${{ env.PATHS_IGNORE }}
- if: ${{ steps.skip_check.outputs.should_skip != 'true' }}
name: Checkout Code Repository
uses: actions/checkout@v3
- if: ${{ steps.skip_check.outputs.should_skip != 'true' }}
name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
- if: ${{ steps.skip_check.outputs.should_skip != 'true' }}
id: file_changes
uses: trilom/[email protected]
with:
output: ' '
- if: ${{ steps.skip_check.outputs.should_skip != 'true' }}
# Run all pre-commit hooks on all the files.
# Getting only staged files can be tricky in case a new PR is opened
# since the action is run on a branch in detached head state
name: Install and Run Pre-commit
uses: pre-commit/[email protected]
with:
extra_args: --files ${{ steps.file_changes.outputs.files}}
build:
name: test compass - python ${{ matrix.python-version }}
runs-on: ubuntu-latest
timeout-minutes: 20
defaults:
run:
shell: bash -l {0}
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11"]
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@master
with:
cancel_others: ${{ env.CANCEL_OTHERS }}
paths_ignore: ${{ env.PATHS_IGNORE }}
- if: ${{ steps.skip_check.outputs.should_skip != 'true' }}
uses: actions/checkout@v3
- if: ${{ steps.skip_check.outputs.should_skip != 'true' }}
name: Cache Conda
uses: actions/cache@v3
env:
# Increase this value to reset cache if conda-dev-spec.template has not changed in the workflow
CACHE_NUMBER: 0
with:
path: ~/conda_pkgs_dir
key:
${{ runner.os }}-${{ matrix.python-version }}-conda-${{ env.CACHE_NUMBER }}-${{
hashFiles('conda/configure_compass_env.py,conda/*,conda/compass_env/*') }}
- if: ${{ steps.skip_check.outputs.should_skip != 'true' }}
name: Set up Conda Environment
uses: conda-incubator/setup-miniconda@v2
with:
activate-environment: "compass_ci"
miniforge-variant: Mambaforge
miniforge-version: latest
use-mamba: true
mamba-version: "*"
channels: conda-forge,e3sm/label/compass,defaults
channel-priority: strict
auto-update-conda: true
python-version: ${{ matrix.python-version }}
- if: ${{ steps.skip_check.outputs.should_skip != 'true' }}
name: Install compass
run: |
./conda/configure_compass_env.py \
--env_only \
--env_name compass_test \
--python=${{ matrix.python-version }} \
--verbose
source load_compass_test.sh
- if: ${{ steps.skip_check.outputs.should_skip != 'true' }}
name: Build Sphinx Docs
run: |
source load_compass_test.sh
cd docs
make html
- if: ${{ steps.skip_check.outputs.should_skip != 'true' }}
name: Run Tests
env:
CHECK_IMAGES: False
run: |
source load_compass_test.sh
python -c "import compass"
compass list
compass list --machines
compass list --suites
compass list --help
compass setup --help
compass suite --help
compass clean --help
create_compass_load_script --help
pip check