Skip to content

Constrained free-slip via recoverable Lagrange multiplier (dynamic topography) #540

Constrained free-slip via recoverable Lagrange multiplier (dynamic topography)

Constrained free-slip via recoverable Lagrange multiplier (dynamic topography) #540

name: test_uw3
# Build + test on every PR / push to main / development.
#
# Uses pixi (with the committed pixi.lock) for a deterministic, fast install
# rather than micromamba + environment.yaml, which had been backtracking for
# 60+ minutes on conda-forge solves and timing the runner out before tests
# could start. The pixi.lock matches what local development uses, so CI now
# runs against the same dependency state developers see.
on:
push:
branches:
- main
- development
- Quick_Start_Docs
pull_request:
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- name: Install pixi from lockfile
uses: prefix-dev/setup-pixi@v0.9.4
with:
# Use the env that matches local development for tests.
# `dev` = conda-petsc + runtime + dev features (pytest, jupyter, etc.)
environments: dev
# Hard-fail if pixi.lock disagrees with pixi.toml — never re-solve
# silently in CI; that's exactly the failure mode we're escaping.
frozen: true
cache: true
- name: Build UW3
# `pixi run -e dev build` invokes the build task from pixi.toml,
# which is `pip install . --no-build-isolation` (non-editable —
# editable installs are project policy violation, see CLAUDE.md).
run: pixi run -e dev build
- name: Run tests
run: pixi run -e dev ./scripts/test.sh --p 2