diff --git a/.github/workflows/ci-additional.yaml b/.github/workflows/ci-additional.yaml index 358f85298c3..0b4e0f185c7 100644 --- a/.github/workflows/ci-additional.yaml +++ b/.github/workflows/ci-additional.yaml @@ -30,6 +30,94 @@ jobs: with: keyword: "[skip-ci]" + # This job is deprecated and can be removed soon. It's still here in case the + # move consolidate with `ci.yaml` missed something which the existing test + # picks up. + test: + name: ${{ matrix.os }} ${{ matrix.env }} + runs-on: ${{ matrix.os }} + needs: detect-ci-trigger + if: needs.detect-ci-trigger.outputs.triggered == 'false' + defaults: + run: + shell: bash -l {0} + strategy: + fail-fast: false + matrix: + os: ["ubuntu-latest"] + env: [ + # Minimum python version: + "py38-bare-minimum", + "py38-min-all-deps", + + # Latest python version: + "py39-all-but-dask", + "py39-flaky", + ] + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 # Fetch all history for all branches and tags. + + - name: Set environment variables + run: | + if [[ ${{ matrix.env }} == "py39-flaky" ]] ; + then + echo "CONDA_ENV_FILE=ci/requirements/environment.yml" >> $GITHUB_ENV + echo "PYTEST_EXTRA_FLAGS=--run-flaky --run-network-tests" >> $GITHUB_ENV + + else + echo "CONDA_ENV_FILE=ci/requirements/${{ matrix.env }}.yml" >> $GITHUB_ENV + fi + + - name: Cache conda + uses: actions/cache@v3 + with: + path: ~/conda_pkgs_dir + key: ${{ runner.os }}-conda-${{ matrix.env }}-${{ + hashFiles('ci/requirements/**.yml') }} + + - uses: conda-incubator/setup-miniconda@v2 + with: + channels: conda-forge + channel-priority: strict + mamba-version: "*" + activate-environment: xarray-tests + auto-update-conda: false + python-version: 3.9 + use-only-tar-bz2: true + + - name: Install conda dependencies + run: | + mamba env update -f $CONDA_ENV_FILE + + - name: Install xarray + run: | + python -m pip install --no-deps -e . + + - name: Version info + run: | + conda info -a + conda list + python xarray/util/print_versions.py + - name: Import xarray + run: | + python -c "import xarray" + - name: Run tests + run: | + python -m pytest -n 4 \ + --cov=xarray \ + --cov-report=xml \ + $PYTEST_EXTRA_FLAGS + + - name: Upload code coverage to Codecov + uses: codecov/codecov-action@v3.1.0 + with: + file: ./coverage.xml + flags: unittests,${{ matrix.env }} + env_vars: RUNNER_OS + name: codecov-umbrella + fail_ci_if_error: false doctest: name: Doctests runs-on: "ubuntu-latest" @@ -132,5 +220,5 @@ jobs: - name: minimum versions policy run: | mamba install -y pyyaml conda python-dateutil - python ci/min_deps_check.py ci/requirements/bare-minimum.yml - python ci/min_deps_check.py ci/requirements/min-all-deps.yml + python ci/min_deps_check.py ci/requirements/py38-bare-minimum.yml + python ci/min_deps_check.py ci/requirements/py38-min-all-deps.yml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b6979dc58cd..53db5d9066d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -30,7 +30,7 @@ jobs: with: keyword: "[skip-ci]" test: - name: ${{ matrix.os }} py${{ matrix.python-version }} ${{ matrix.env }} + name: ${{ matrix.os }} py${{ matrix.python-version }} runs-on: ${{ matrix.os }} needs: detect-ci-trigger if: needs.detect-ci-trigger.outputs.triggered == 'false' @@ -45,18 +45,18 @@ jobs: python-version: ["3.8", "3.10"] include: # Minimum python version: - - env: "bare-minimum" - python-version: "3.8" + - env: "py38-bare-minimum" + python-version: 3.8 os: ubuntu-latest - - env: "min-all-deps" - python-version: "3.8" + - env: "py38-min-all-deps" + python-version: 3.8 os: ubuntu-latest # Latest python version: - - env: "all-but-dask" - python-version: "3.10" + - env: "py39-all-but-dask" + python-version: 3.9 os: ubuntu-latest - - env: "flaky" - python-version: "3.10" + - env: "py39-flaky" + python-version: 3.9 os: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -69,7 +69,7 @@ jobs: echo "CONDA_ENV_FILE=ci/requirements/environment-windows.yml" >> $GITHUB_ENV elif [[ "${{ matrix.env }}" != "" ]] ; then - if [[ "${{ matrix.env }}" == "flaky" ]] ; + if [[ "${{ matrix.env }}" == "py39-flaky" ]] ; then echo "CONDA_ENV_FILE=ci/requirements/environment.yml" >> $GITHUB_ENV echo "PYTEST_EXTRA_FLAGS=--run-flaky --run-network-tests" >> $GITHUB_ENV @@ -88,7 +88,8 @@ jobs: uses: actions/cache@v3 with: path: ~/conda_pkgs_dir - key: ${{ runner.os }}-conda-py${{ matrix.python-version }}-${{ hashFiles('ci/requirements/**.yml') }}-${{ matrix.env }} + key: ${{ runner.os }}-conda-py${{ matrix.python-version }}-${{ + hashFiles('ci/requirements/**.yml') }} - uses: conda-incubator/setup-miniconda@v2 with: @@ -105,7 +106,8 @@ jobs: uses: actions/cache@v3 with: path: /usr/share/miniconda/envs/xarray-tests - key: ${{ runner.os }}-conda-py${{ matrix.python-version }}-${{ hashFiles('ci/requirements/**.yml') }}-${{ matrix.env }} + key: ${{ runner.os }}-conda-py${{ matrix.python-version }}-${{ + hashFiles('ci/requirements/**.yml') }} - name: Install conda dependencies run: | diff --git a/ci/requirements/bare-minimum.yml b/ci/requirements/py38-bare-minimum.yml similarity index 100% rename from ci/requirements/bare-minimum.yml rename to ci/requirements/py38-bare-minimum.yml diff --git a/ci/requirements/min-all-deps.yml b/ci/requirements/py38-min-all-deps.yml similarity index 100% rename from ci/requirements/min-all-deps.yml rename to ci/requirements/py38-min-all-deps.yml diff --git a/ci/requirements/all-but-dask.yml b/ci/requirements/py39-all-but-dask.yml similarity index 90% rename from ci/requirements/all-but-dask.yml rename to ci/requirements/py39-all-but-dask.yml index cb9ec8d3bc5..9c42d5f3b73 100644 --- a/ci/requirements/all-but-dask.yml +++ b/ci/requirements/py39-all-but-dask.yml @@ -3,7 +3,7 @@ channels: - conda-forge - nodefaults dependencies: - - python=3.10 + - python=3.9 - black - aiobotocore - boto3 @@ -17,7 +17,7 @@ dependencies: - h5py - hdf5 - hypothesis - - lxml # Optional dep of pydap + - lxml # Optional dep of pydap - matplotlib-base - nc-time-axis - netcdf4 @@ -42,4 +42,4 @@ dependencies: - typing_extensions - zarr - pip: - - numbagg + - numbagg diff --git a/doc/getting-started-guide/installing.rst b/doc/getting-started-guide/installing.rst index 0668853946f..6177ba0aaac 100644 --- a/doc/getting-started-guide/installing.rst +++ b/doc/getting-started-guide/installing.rst @@ -102,7 +102,7 @@ release is guaranteed to work. You can see the actual minimum tested versions: -``_ +``_ .. _installation-instructions: