diff --git a/.github/workflows/create-condalock-file.yml b/.github/workflows/create-condalock-file.yml index 5d71fb9d29..ccdffd6177 100644 --- a/.github/workflows/create-condalock-file.yml +++ b/.github/workflows/create-condalock-file.yml @@ -10,6 +10,11 @@ on: schedule: - cron: '0 4 */10 * *' +# Required shell entrypoint to have properly configured bash shell +defaults: + run: + shell: bash -l {0} + jobs: create-verify-lock-file: name: Create and verify conda lock file for latest Python @@ -27,7 +32,6 @@ jobs: miniforge-variant: Mambaforge use-mamba: true - name: Show conda config - shell: bash -l {0} run: | conda update -n base -c conda-forge conda conda info @@ -35,45 +39,36 @@ jobs: conda config --show-sources conda config --show - name: Gather Python info - shell: bash -l {0} run: | which python python --version - name: Install conda-lock - shell: bash -l {0} run: mamba install -y conda-lock - name: Check version of conda-lock - shell: bash -l {0} run: conda-lock --version - name: Create conda lock file for linux-64 - shell: bash -l {0} run: conda-lock lock --platform linux-64 -f environment.yml --mamba --kind explicit - name: Creating environment from lock file - shell: bash -l {0} run: conda create --name esmvaltool-fromlock --file conda-linux-64.lock - name: Installing pip - shell: bash -l {0} run: mamba install -y pip - name: Gather pip info - shell: bash -l {0} run: pip --version - name: Gather Python info again - shell: bash -l {0} run: | which python python --version - name: Show environment contents - shell: bash -l {0} run: conda list - - shell: bash -l {0} + - name: Install esmvalcore run: pip install -e .[develop] - - shell: bash -l {0} - run: esmvaltool --help - - shell: bash -l {0} - run: esmvaltool version - - shell: bash -l {0} + - name: Run basic commands + run: | + esmvaltool --help + esmvaltool version + - name: Run flake8 run: flake8 - - shell: bash -l {0} + - name: Run pytests run: pytest -n 2 -m "not installation" # Automated PR # see https://github.com/marketplace/actions/create-pull-request diff --git a/.github/workflows/install-from-conda.yml b/.github/workflows/install-from-conda.yml index 1548d1efd4..4b9974ebef 100644 --- a/.github/workflows/install-from-conda.yml +++ b/.github/workflows/install-from-conda.yml @@ -29,6 +29,11 @@ on: schedule: - cron: '0 4 * * *' +# Required shell entrypoint to have properly configured bash shell +defaults: + run: + shell: bash -l {0} + jobs: linux: runs-on: "ubuntu-latest" @@ -46,20 +51,16 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p conda_install_linux_artifacts_python_${{ matrix.python-version }} + - run: mkdir -p conda_install_linux_artifacts_python_${{ matrix.python-version }} - name: Record versions - shell: bash -l {0} run: | mamba --version 2>&1 | tee conda_install_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt which conda 2>&1 | tee conda_install_linux_artifacts_python_${{ matrix.python-version }}/conda_path.txt which mamba 2>&1 | tee -a conda_install_linux_artifacts_python_${{ matrix.python-version }}/conda_path.txt python -V 2>&1 | tee conda_install_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt - name: Install ESMValCore - shell: bash -l {0} run: mamba install esmvalcore 2>&1 | tee conda_install_linux_artifacts_python_${{ matrix.python-version }}/install.txt - name: Verify installation - shell: bash -l {0} run: | esmvaltool --help esmvaltool version 2>&1 | tee conda_install_linux_artifacts_python_${{ matrix.python-version }}/version.txt @@ -84,20 +85,16 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p conda_install_osx_artifacts_python_${{ matrix.python-version }} + - run: mkdir -p conda_install_osx_artifacts_python_${{ matrix.python-version }} - name: Record versions - shell: bash -l {0} run: | mamba --version 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt which conda 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/conda_path.txt which mamba 2>&1 | tee -a conda_install_osx_artifacts_python_${{ matrix.python-version }}/conda_path.txt python -V 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt - name: Install ESMValCore - shell: bash -l {0} run: mamba install esmvalcore 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/install.txt - name: Verify installation - shell: bash -l {0} run: | esmvaltool --help esmvaltool version 2>&1 | tee conda_install_osx_artifacts_python_${{ matrix.python-version }}/version.txt diff --git a/.github/workflows/install-from-condalock-file.yml b/.github/workflows/install-from-condalock-file.yml index 1e6adeaa0d..d6f3d7f5f3 100644 --- a/.github/workflows/install-from-condalock-file.yml +++ b/.github/workflows/install-from-condalock-file.yml @@ -19,6 +19,11 @@ on: schedule: - cron: '0 0 * * *' +# Required shell entrypoint to have properly configured bash shell +defaults: + run: + shell: bash -l {0} + jobs: linux: runs-on: "ubuntu-latest" @@ -36,32 +41,19 @@ jobs: activate-environment: esmvaltool-fromlock python-version: ${{ matrix.python-version }} channels: conda-forge - - shell: bash -l {0} - run: mkdir -p source_install_linux_artifacts_python_${{ matrix.python-version }} - - shell: bash -l {0} - run: conda --version 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt - - shell: bash -l {0} - run: which python - - shell: bash -l {0} - run: python -V 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt - - shell: bash -l {0} - run: conda create --name esmvaltool-fromlock --file conda-linux-64.lock - - shell: bash -l {0} - run: conda install pip - - shell: bash -l {0} - run: which python - - shell: bash -l {0} - run: pip --version - - shell: bash -l {0} - run: pip install -e .[develop] - - shell: bash -l {0} - run: esmvaltool --help - - shell: bash -l {0} - run: esmvaltool version 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/version.txt - - shell: bash -l {0} - run: flake8 - - shell: bash -l {0} - run: pytest -n 2 -m "not installation" + - run: mkdir -p source_install_linux_artifacts_python_${{ matrix.python-version }} + - run: conda --version 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt + - run: which python + - run: python -V 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt + - run: conda create --name esmvaltool-fromlock --file conda-linux-64.lock + - run: conda install pip + - run: which python + - run: pip --version + - run: pip install -e .[develop] + - run: esmvaltool --help + - run: esmvaltool version 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/version.txt + - run: flake8 + - run: pytest -n 2 -m "not installation" - name: Upload artifacts if: ${{ always() }} # upload artifacts even if fail uses: actions/upload-artifact@v2 diff --git a/.github/workflows/install-from-pypi.yml b/.github/workflows/install-from-pypi.yml index 76669f608a..264e63c41f 100644 --- a/.github/workflows/install-from-pypi.yml +++ b/.github/workflows/install-from-pypi.yml @@ -29,6 +29,11 @@ on: schedule: - cron: '0 0 * * *' +# Required shell entrypoint to have properly configured bash shell +defaults: + run: + shell: bash -l {0} + jobs: linux: runs-on: "ubuntu-latest" @@ -49,19 +54,15 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p pip_install_linux_artifacts_python_${{ matrix.python-version }} + - run: mkdir -p pip_install_linux_artifacts_python_${{ matrix.python-version }} - name: Record versions - shell: bash -l {0} run: | mamba --version 2>&1 | tee pip_install_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt python -V 2>&1 | tee pip_install_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt pip -V 2>&1 | tee pip_install_linux_artifacts_python_${{ matrix.python-version }}/pip_version.txt - name: Install - shell: bash -l {0} run: pip install esmvalcore 2>&1 | tee pip_install_linux_artifacts_python_${{ matrix.python-version }}/install.txt - name: Verify installation - shell: bash -l {0} run: | esmvaltool --help esmvaltool version 2>&1 | tee pip_install_linux_artifacts_python_${{ matrix.python-version }}/version.txt @@ -89,19 +90,15 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p pip_install_osx_artifacts_python_${{ matrix.python-version }} + - run: mkdir -p pip_install_osx_artifacts_python_${{ matrix.python-version }} - name: Record versions - shell: bash -l {0} run: | mamba --version 2>&1 | tee pip_install_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt python -V 2>&1 | tee pip_install_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt pip -V 2>&1 | tee pip_install_osx_artifacts_python_${{ matrix.python-version }}/pip_version.txt - name: Install - shell: bash -l {0} run: pip install esmvalcore 2>&1 | tee pip_install_osx_artifacts_python_${{ matrix.python-version }}/install.txt - name: Verify installation - shell: bash -l {0} run: | esmvaltool --help esmvaltool version 2>&1 | tee pip_install_osx_artifacts_python_${{ matrix.python-version }}/version.txt diff --git a/.github/workflows/install-from-source.yml b/.github/workflows/install-from-source.yml index 12f7f7c60a..a01af46437 100644 --- a/.github/workflows/install-from-source.yml +++ b/.github/workflows/install-from-source.yml @@ -27,6 +27,11 @@ on: schedule: - cron: '0 0 * * *' +# Required shell entrypoint to have properly configured bash shell +defaults: + run: + shell: bash -l {0} + jobs: linux: runs-on: "ubuntu-latest" @@ -47,18 +52,14 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p source_install_linux_artifacts_python_${{ matrix.python-version }} + - run: mkdir -p source_install_linux_artifacts_python_${{ matrix.python-version }} - name: Record versions - shell: bash -l {0} run: | mamba --version 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt python -V 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt - name: Install - shell: bash -l {0} run: pip install -e .[develop] 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/install.txt - name: Verify installation - shell: bash -l {0} run: | esmvaltool --help esmvaltool version 2>&1 | tee source_install_linux_artifacts_python_${{ matrix.python-version }}/version.txt @@ -88,18 +89,14 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p source_install_osx_artifacts_python_${{ matrix.python-version }} + - run: mkdir -p source_install_osx_artifacts_python_${{ matrix.python-version }} - name: Record versions - shell: bash -l {0} run: | mamba --version 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt python -V 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt - name: Install - shell: bash -l {0} run: pip install -e .[develop] 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/install.txt - name: Verify installation - shell: bash -l {0} run: | esmvaltool --help esmvaltool version 2>&1 | tee source_install_osx_artifacts_python_${{ matrix.python-version }}/version.txt diff --git a/.github/workflows/run-tests-comment.yml b/.github/workflows/run-tests-comment.yml index 2351203dc9..ccae9db0ee 100644 --- a/.github/workflows/run-tests-comment.yml +++ b/.github/workflows/run-tests-comment.yml @@ -4,12 +4,17 @@ on: types: - created +# Required shell entrypoint to have properly configured bash shell +defaults: + run: + shell: bash -l {0} + jobs: linux: runs-on: "ubuntu-latest" strategy: matrix: - python-version: ["3.9", "3.10"] + python-version: ["3.9", "3.10", "3.11"] fail-fast: false name: Linux Python ${{ matrix.python-version }} if: ${{ github.event.issue.pull_request && github.event.comment.body == '@runGAtests' }} @@ -25,18 +30,12 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p test_linux_artifacts_python_${{ matrix.python-version }} - - shell: bash -l {0} - run: conda --version 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt - - shell: bash -l {0} - run: python -V 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt - - shell: bash -l {0} - run: pip install -e .[develop] 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/install.txt - - shell: bash -l {0} - run: flake8 - - shell: bash -l {0} - run: pytest -n 2 -m "not installation" 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/test_report.txt + - run: mkdir -p test_linux_artifacts_python_${{ matrix.python-version }} + - run: conda --version 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt + - run: python -V 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt + - run: pip install -e .[develop] 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/install.txt + - run: flake8 + - run: pytest -n 2 -m "not installation" 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/test_report.txt - name: Upload artifacts if: ${{ always() }} # upload artifacts even if fail uses: actions/upload-artifact@v2 @@ -48,7 +47,7 @@ jobs: runs-on: "macos-latest" strategy: matrix: - python-version: ["3.9", "3.10"] + python-version: ["3.9", "3.10", "3.11"] fail-fast: false name: OSX Python ${{ matrix.python-version }} if: ${{ github.event.issue.pull_request && github.event.comment.body == '@runGAtests' }} @@ -64,18 +63,12 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p test_osx_artifacts_python_${{ matrix.python-version }} - - shell: bash -l {0} - run: conda --version 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt - - shell: bash -l {0} - run: python -V 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt - - shell: bash -l {0} - run: pip install -e .[develop] 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/install.txt - - shell: bash -l {0} - run: flake8 - - shell: bash -l {0} - run: pytest -n 2 -m "not installation" 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/test_report.txt + - run: mkdir -p test_osx_artifacts_python_${{ matrix.python-version }} + - run: conda --version 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt + - run: python -V 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt + - run: pip install -e .[develop] 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/install.txt + - run: flake8 + - run: pytest -n 2 -m "not installation" 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/test_report.txt - name: Upload artifacts if: ${{ always() }} # upload artifacts even if fail uses: actions/upload-artifact@v2 diff --git a/.github/workflows/run-tests-monitor.yml b/.github/workflows/run-tests-monitor.yml index e59bb79073..6c3685dd1b 100644 --- a/.github/workflows/run-tests-monitor.yml +++ b/.github/workflows/run-tests-monitor.yml @@ -12,6 +12,11 @@ on: schedule: - cron: '0 0 * * *' # nightly +# Required shell entrypoint to have properly configured bash shell +defaults: + run: + shell: bash -l {0} + jobs: linux: runs-on: "ubuntu-latest" @@ -32,19 +37,12 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p test_linux_artifacts_python_${{ matrix.python-version }} - - shell: bash -l {0} - run: conda --version 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt - - shell: bash -l {0} - run: python -V 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt - - shell: bash -l {0} - run: pip install pytest-monitor - - shell: bash -l {0} - run: pip install -e .[develop] 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/install.txt - - shell: bash -l {0} - run: pytest -n 2 -m "not installation" --db ../.pymon 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/test_report.txt - - shell: bash -l {0} + - run: mkdir -p test_linux_artifacts_python_${{ matrix.python-version }} + - run: conda --version 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt + - run: python -V 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt + - run: pip install pytest-monitor + - run: pip install -e .[develop] 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/install.txt + - run: pytest -n 2 -m "not installation" --db ../.pymon 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/test_report.txt run: python tests/parse_pymon.py - name: Upload artifacts if: ${{ always() }} # upload artifacts even if fail @@ -72,20 +70,13 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p test_osx_artifacts_python_${{ matrix.python-version }} - - shell: bash -l {0} - run: conda --version 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt - - shell: bash -l {0} - run: python -V 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt - - shell: bash -l {0} - run: pip install pytest-monitor - - shell: bash -l {0} - run: pip install -e .[develop] 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/install.txt - - shell: bash -l {0} - run: pytest -n 2 -m "not installation" --db ../.pymon 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/test_report.txt - - shell: bash -l {0} - run: python tests/parse_pymon.py + - run: mkdir -p test_osx_artifacts_python_${{ matrix.python-version }} + - run: conda --version 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt + - run: python -V 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt + - run: pip install pytest-monitor + - run: pip install -e .[develop] 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/install.txt + - run: pytest -n 2 -m "not installation" --db ../.pymon 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/test_report.txt + - run: python tests/parse_pymon.py - name: Upload artifacts if: ${{ always() }} # upload artifacts even if fail uses: actions/upload-artifact@v2 diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index d7426ecbc0..aa80283eb9 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -29,6 +29,11 @@ on: schedule: - cron: '0 0 * * *' # nightly +# Required shell entrypoint to have properly configured bash shell +defaults: + run: + shell: bash -l {0} + jobs: linux: runs-on: "ubuntu-latest" @@ -49,18 +54,12 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p test_linux_artifacts_python_${{ matrix.python-version }} - - shell: bash -l {0} - run: conda --version 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt - - shell: bash -l {0} - run: python -V 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt - - shell: bash -l {0} - run: pip install -e .[develop] 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/install.txt - - shell: bash -l {0} - run: flake8 - - shell: bash -l {0} - run: pytest -n 2 -m "not installation" 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/test_report.txt + - run: mkdir -p test_linux_artifacts_python_${{ matrix.python-version }} + - run: conda --version 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/conda_version.txt + - run: python -V 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt + - run: pip install -e .[develop] 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/install.txt + - run: flake8 + - run: pytest -n 2 -m "not installation" 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/test_report.txt - name: Upload artifacts if: ${{ always() }} # upload artifacts even if fail uses: actions/upload-artifact@v2 @@ -87,18 +86,12 @@ jobs: miniforge-version: "latest" miniforge-variant: Mambaforge use-mamba: true - - shell: bash -l {0} - run: mkdir -p test_osx_artifacts_python_${{ matrix.python-version }} - - shell: bash -l {0} - run: conda --version 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt - - shell: bash -l {0} - run: python -V 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt - - shell: bash -l {0} - run: pip install -e .[develop] 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/install.txt - - shell: bash -l {0} - run: flake8 - - shell: bash -l {0} - run: pytest -n 2 -m "not installation" 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/test_report.txt + - run: mkdir -p test_osx_artifacts_python_${{ matrix.python-version }} + - run: conda --version 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/conda_version.txt + - run: python -V 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/python_version.txt + - run: pip install -e .[develop] 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/install.txt + - run: flake8 + - run: pytest -n 2 -m "not installation" 2>&1 | tee test_osx_artifacts_python_${{ matrix.python-version }}/test_report.txt - name: Upload artifacts if: ${{ always() }} # upload artifacts even if fail uses: actions/upload-artifact@v2