diff --git a/.github/workflows/ci-additional.yaml b/.github/workflows/ci-additional.yaml index afc7e9c7ceb..df978b7ef85 100644 --- a/.github/workflows/ci-additional.yaml +++ b/.github/workflows/ci-additional.yaml @@ -66,6 +66,7 @@ jobs: else echo "CONDA_ENV_FILE=ci/requirements/${{ matrix.env }}.yml" >> $GITHUB_ENV fi + - name: Cache conda uses: actions/cache@v3 with: diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d81e710dc2e..73250d54404 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -58,12 +58,15 @@ jobs: fi echo "PYTHON_VERSION=${{ matrix.python-version }}" >> $GITHUB_ENV + # This and the next few are based on https://github.com/conda-incubator/setup-miniconda#caching-environments - name: Cache conda + id: cache-conda uses: actions/cache@v3 with: path: ~/conda_pkgs_dir key: ${{ runner.os }}-conda-py${{ matrix.python-version }}-${{ hashFiles('ci/requirements/**.yml') }} + - uses: conda-incubator/setup-miniconda@v2 with: channels: conda-forge @@ -74,9 +77,18 @@ jobs: python-version: ${{ matrix.python-version }} use-only-tar-bz2: true + - name: Cache conda env + id: cache-env + uses: actions/cache@v3 + with: + path: /usr/share/miniconda/envs/xarray-tests + key: ${{ runner.os }}-conda-py${{ matrix.python-version }}-${{ + hashFiles('ci/requirements/**.yml') }} + - name: Install conda dependencies run: | mamba env update -f $CONDA_ENV_FILE + if: steps.cache-env.outputs.cache-hit != 'true' # We only want to install this on one run, because otherwise we'll have # duplicate annotations.