Skip to content

Speed up CI conda solve - #478

Open
dzalkind wants to merge 10 commits into
NLRWindSystems:developfrom
dzalkind:speed_ci
Open

dzalkind wants to merge 10 commits into
NLRWindSystems:developfrom
dzalkind:speed_ci

Conversation

@dzalkind

@dzalkind dzalkind commented Sep 18, 2026 •

Copy link
Copy Markdown
Collaborator

Purpose

The conda solve for ubuntu-specific packages took ~1hr in the last PR. Solving in one shot can speed this up.

Type of change

What types of change is it?
Select the appropriate type(s) that describe this PR

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (non-backwards-compatible fix or feature)
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no API changes)
  • Documentation update
  • Maintenance update
  • Other (please describe)

Testing

Explain the steps needed to test the new code to verify that it does indeed address the issue and produce the expected behavior.

Checklist

Put an x in the boxes that apply.

  • I have run existing tests which pass locally with my changes
  • I have added new tests or examples that prove my fix is effective or that my feature works
  • I have added necessary documentation

Comment thread .github/workflows/CI_WEIS.yml Outdated
cat environment_ci.yml

- name: Install conda/mamba
uses: conda-incubator/setup-miniconda@v3

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this action has a v4 available, should probably update that too

dzalkind and others added 8 commits September 18, 2026 14:21
Build a single environment file from environment.yml plus the CI extras so
conda solves once. Installing petsc4py/mpi4py/pyoptsparse into an
already-solved environment sent the solver backtracking for 80+ minutes;
the combined solve takes about 30 seconds.

Pin openmpi so the MPI stack doesn't vary per Python version, and drop the
apt mpich/libglu install, which was shadowed by conda's mpiexec anyway.

Hold netcdf4 at 1.7.3. Builds 110+ of 1.7.4 are compiled with Cython 3.3.0
against the limited API and register the same shared Cython type module as
petsc4py with an incompatible layout, so netCDF4 fails to import under
mpiexec with "Shared Cython type cython_function_or_method has the wrong
size". 1.7.3 is the last version with no limited-API builds.

Also bump setup-miniconda to v4, add a job timeout, set PYTHONUNBUFFERED so
signal-killed steps don't lose their output, and fix the coveralls condition
that referenced Python 3.11 and could never match the matrix.

Update README.md and docs/installation.rst to list the same packages.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants