Skip to content

Commit

Permalink
Use mamba to install Continuous Integration dependencies (#841)
Browse files Browse the repository at this point in the history
Specifically using `mambaforge` which is a `miniconda`
replacement that defaults to using the `conda-forge`
channel and `mamba` instead of `conda` by default.

* Set strict channel priority to conda-forge only with no
defaults to see if it speeds up resolver. See also
https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-channels.html#strict-channel-priority

* Use mamba on GMT Dev Tests CI build
* Use mamba in CI docs and Cache Data workflows
* Pin gmt dev version to 6.3 on Windows CI

Co-authored-by: Dongdong Tian <seisman.info@gmail.com>
  • Loading branch information
weiji14 and seisman committed Sep 18, 2021
1 parent 13f69b1 commit 8409764
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 23 deletions.
14 changes: 9 additions & 5 deletions .github/workflows/cache_data.yaml
Expand Up @@ -24,17 +24,21 @@ jobs:
# fecth all history so that setuptools-scm works
fetch-depth: 0

# Setup Miniconda
- name: Setup Miniconda
# Install Mambaforge with conda-forge dependencies
- name: Setup Mambaforge
uses: conda-incubator/setup-miniconda@v2.1.1
with:
channels: conda-forge
miniconda-version: "latest"
channels: conda-forge,nodefaults
channel-priority: strict
miniforge-version: latest
miniforge-variant: Mambaforge
mamba-version: "*"
use-mamba: true

# Install GMT and other required dependencies from conda-forge
- name: Install dependencies
run: |
conda install gmt=6.2.0 \
mamba install gmt=6.2.0 \
numpy pandas xarray netCDF4 packaging matplotlib
# Install the package that we want to test
Expand Down
16 changes: 10 additions & 6 deletions .github/workflows/ci_docs.yml
Expand Up @@ -54,25 +54,29 @@ jobs:
# fecth all history so that setuptools-scm works
fetch-depth: 0

# Setup Miniconda
- name: Setup Miniconda
# Install Mambaforge with conda-forge dependencies
- name: Setup Mambaforge
uses: conda-incubator/setup-miniconda@v2.1.1
with:
activate-environment: pygmt
python-version: ${{ matrix.python-version }}
channels: conda-forge
miniconda-version: "latest"
channels: conda-forge,nodefaults
channel-priority: strict
miniforge-version: latest
miniforge-variant: Mambaforge
mamba-version: "*"
use-mamba: true

# Install GMT and other required dependencies from conda-forge
- name: Install dependencies
run: |
conda install gmt=6.2.0 numpy pandas xarray netCDF4 packaging \
mamba install gmt=6.2.0 numpy pandas xarray netCDF4 packaging \
ipython make myst-parser geopandas \
sphinx sphinx-copybutton sphinx-gallery sphinx_rtd_theme
# Show installed pkg information for postmortem diagnostic
- name: List installed packages
run: conda list
run: mamba list

# Download cached remote files (artifacts) from GitHub
- name: Download remote data from GitHub
Expand Down
16 changes: 10 additions & 6 deletions .github/workflows/ci_tests.yaml
Expand Up @@ -77,19 +77,23 @@ jobs:
# fecth all history so that setuptools-scm works
fetch-depth: 0

# Setup Miniconda
- name: Setup Miniconda
# Install Mambaforge with conda-forge dependencies
- name: Setup Mambaforge
uses: conda-incubator/setup-miniconda@v2.1.1
with:
activate-environment: pygmt
python-version: ${{ matrix.python-version }}
channels: conda-forge
miniconda-version: "latest"
channels: conda-forge,nodefaults
channel-priority: strict
miniforge-version: latest
miniforge-variant: Mambaforge
mamba-version: "*"
use-mamba: true

# Install GMT and other required dependencies from conda-forge
- name: Install dependencies
run: |
conda install gmt=6.2.0 numpy=${{ matrix.numpy-version }} \
mamba install gmt=6.2.0 numpy=${{ matrix.numpy-version }} \
pandas xarray netCDF4 packaging \
${{ matrix.optional-packages }} \
coverage[toml] dvc ipython make \
Expand All @@ -98,7 +102,7 @@ jobs:
# Show installed pkg information for postmortem diagnostic
- name: List installed packages
run: conda list
run: mamba list

# Download cached remote files (artifacts) from GitHub
- name: Download remote data from GitHub
Expand Down
16 changes: 10 additions & 6 deletions .github/workflows/ci_tests_dev.yaml
Expand Up @@ -71,19 +71,23 @@ jobs:
# fecth all history so that setuptools-scm works
fetch-depth: 0

# Setup Miniconda
- name: Setup Miniconda
# Install Mambaforge with conda-forge dependencies
- name: Setup Mambaforge
uses: conda-incubator/setup-miniconda@v2.1.1
with:
activate-environment: pygmt
python-version: ${{ matrix.python-version }}
channels: conda-forge
miniconda-version: "latest"
channels: conda-forge,nodefaults
channel-priority: strict
miniforge-version: latest
miniforge-variant: Mambaforge
mamba-version: "*"
use-mamba: true

# Install dependencies from conda-forge
- name: Install dependencies
run: |
conda install ninja cmake libblas libcblas liblapack fftw gdal geopandas \
mamba install ninja cmake libblas libcblas liblapack fftw gdal geopandas \
ghostscript libnetcdf hdf5 zlib curl pcre make dvc
pip install --pre numpy pandas xarray netCDF4 packaging \
ipython pytest-cov pytest-mpl pytest>=6.0 sphinx-gallery \
Expand All @@ -98,7 +102,7 @@ jobs:
if: runner.os != 'Windows'

- name: Install GMT dev version from conda-forge (Windows)
run: conda install -c conda-forge/label/dev gmt
run: mamba install -c conda-forge/label/dev gmt=6.3
if: runner.os == 'Windows'

# Download cached remote files (artifacts) from GitHub
Expand Down

0 comments on commit 8409764

Please sign in to comment.