GH Actions Cron CI #531
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: GH Actions Cron CI | |
| on: | |
| schedule: | |
| # 3 am Tuesdays and Fridays | |
| - cron: "0 3 * * 2,5" | |
| workflow_dispatch: | |
| # Uncomment when you need to test on a PR | |
| # pull_request: | |
| # branches: | |
| # - develop | |
| concurrency: | |
| # Probably overly cautious group naming. | |
| # Commits to develop will cancel each other, but PRs will only cancel | |
| # commits within the same PR | |
| group: "${{ github.ref }}-${{ github.head_ref }}-${{ github.workflow }}" | |
| cancel-in-progress: true | |
| defaults: | |
| run: | |
| shell: bash -l {0} | |
| env: | |
| CYTHON_TRACE_NOGIL: 1 | |
| MPLBACKEND: agg | |
| jobs: | |
| # a pip only, minimal deps install w/ scipy & numpy nightly upstream wheels | |
| numpy_and_scipy_dev: | |
| if: "github.repository == 'MDAnalysis/mdanalysis'" | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: setup_os | |
| uses: ./.github/actions/setup-os | |
| with: | |
| os-type: "ubuntu" | |
| - uses: actions/setup-python@v5 | |
| # minimally install nightly wheels & core deps | |
| - name: nightly_wheels | |
| run: | | |
| # Nightlies: add in networkx and matplotlib because we can | |
| python -m pip install --pre -U --extra-index https://pypi.anaconda.org/scientific-python-nightly-wheels/simple \ | |
| scipy \ | |
| numpy \ | |
| networkx \ | |
| matplotlib \ | |
| # Base deps | |
| python -m pip install \ | |
| "cython>=0.28" \ | |
| packaging \ | |
| "setuptools>69.4" \ | |
| wheel \ | |
| "griddataformats>=0.4.0" \ | |
| "mmtf-python>=1.0" \ | |
| "joblib>=0.12" \ | |
| "tqdm>=4.43.0" \ | |
| threadpoolctl \ | |
| fasteners \ | |
| mda-xdrlib \ | |
| pytest \ | |
| pytest-xdist \ | |
| pytest-timeout | |
| - name: pre_install_list_deps | |
| run: python -m pip list | |
| - name: build_srcs | |
| run: | | |
| python -m pip install --no-build-isolation -v -e ./package | |
| python -m pip install --no-build-isolation -v -e ./testsuite | |
| - name: post_install_list_deps | |
| run: python -m pip list | |
| - name: run_tests | |
| run: | | |
| pytest --timeout=200 -n auto testsuite/MDAnalysisTests --durations=50 -W error::FutureWarning | |
| # Issue #3442 | |
| native_march: | |
| if: "github.repository == 'MDAnalysis/mdanalysis'" | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: setup_os | |
| uses: ./.github/actions/setup-os | |
| with: | |
| os-type: "ubuntu" | |
| - name: setup_micromamba | |
| uses: mamba-org/setup-micromamba@v2 | |
| with: | |
| environment-name: mda | |
| create-args: >- | |
| python=3.11 | |
| pip | |
| condarc: | | |
| channels: | |
| - conda-forge | |
| - bioconda | |
| - name: install_deps | |
| uses: ./.github/actions/setup-deps | |
| with: | |
| micromamba: true | |
| full-deps: true | |
| - name: set_extra_flags | |
| run: | | |
| sed -i "s/#extra_cflags =/extra_cflags = -march=native -mtune=native/g" package/setup.cfg | |
| cat package/setup.cfg | |
| - name: build_srcs | |
| uses: ./.github/actions/build-src | |
| with: | |
| build-tests: true | |
| build-docs: false | |
| isolation: true | |
| - name: run_tests | |
| run: | | |
| pytest --timeout=200 -n auto testsuite/MDAnalysisTests --disable-pytest-warnings --durations=50 | |
| old_ubuntu_macos: | |
| if: "github.repository == 'MDAnalysis/mdanalysis'" | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-22.04, macos-13] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: setup_os | |
| uses: ./.github/actions/setup-os | |
| with: | |
| os-type: ${{ matrix.os }} | |
| - name: setup_micromamba | |
| uses: mamba-org/setup-micromamba@v2 | |
| with: | |
| environment-name: mda | |
| create-args: >- | |
| python=3.11 | |
| pip | |
| condarc: | | |
| channels: | |
| - conda-forge | |
| - bioconda | |
| - name: install_deps | |
| uses: ./.github/actions/setup-deps | |
| with: | |
| micromamba: true | |
| full-deps: true | |
| - name: build_srcs | |
| uses: ./.github/actions/build-src | |
| with: | |
| build-tests: true | |
| build-docs: false | |
| isolation: true | |
| - name: run_tests | |
| run: | | |
| pytest --timeout=200 -n auto testsuite/MDAnalysisTests --disable-pytest-warnings --durations=50 | |
| # Issue 1727 | |
| pip-only-develop: | |
| if: "github.repository == 'MDAnalysis/mdanalysis'" | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: setup_os | |
| uses: ./.github/actions/setup-os | |
| with: | |
| os-type: "ubuntu" | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: pip install mdanalysis | |
| run: | | |
| cd package && pip install . | |
| - name: pip install mdanalysistests | |
| run: | | |
| cd testsuite && pip install . | |
| - name: install_pip_extras | |
| run: | | |
| pip install pytest-xdist pytest-timeout | |
| - name: check env | |
| run: pip list | |
| - name: run_tests | |
| run: | | |
| pytest --timeout=200 -n auto testsuite/MDAnalysisTests --disable-pytest-warnings --durations=50 | |
| # Issue 4208 | |
| conda-latest-release: | |
| # A set of runner to check that the latest conda release works as expected | |
| if: "github.repository == 'MDAnalysis/mdanalysis'" | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Stick to macos-13 because some of our | |
| # optional deps don't support arm64 (i.e. macos-14) | |
| os: [ubuntu-latest, macos-13] | |
| python-version: ["3.10", "3.11", "3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: setup_os | |
| uses: ./.github/actions/setup-os | |
| with: | |
| os-type: ${{ matrix.os }} | |
| - name: setup_micromamba | |
| uses: mamba-org/setup-micromamba@v2 | |
| with: | |
| environment-name: mda | |
| create-args: >- | |
| python=${{ matrix.python-version }} | |
| pip | |
| condarc: | | |
| channels: | |
| - conda-forge | |
| - bioconda | |
| - name: install_mdanalysis | |
| run: | | |
| micromamba install mdanalysis mdanalysistests | |
| - name: install_deps | |
| uses: ./.github/actions/setup-deps | |
| with: | |
| micromamba: true | |
| full-deps: true | |
| - name: run_tests | |
| run: | | |
| pytest --timeout=200 -n auto --pyargs MDAnalysisTests | |
| pypi-latest-release: | |
| # A set of runner to check that the latest conda release works as expected | |
| if: "github.repository == 'MDAnalysis/mdanalysis'" | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, macos-14, windows-latest] | |
| python-version: ["3.10", "3.11", "3.12", "3.13"] | |
| wheels: ['true', 'false'] | |
| steps: | |
| # Checkout to have access to local actions (i.e. setup-os) | |
| - uses: actions/checkout@v4 | |
| # We need this here in order to make sure we assign the correct compiler (i.e. clang for macos) | |
| - name: setup_os | |
| uses: ./.github/actions/setup-os | |
| with: | |
| os-type: ${{ matrix.os }} | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: install_deps | |
| shell: bash | |
| run: | | |
| pip install pytest-xdist pytest-timeout "numpy<2.3" "cython<3.1" wheel "setuptools>=40.9.0" packaging | |
| - name: install_mdanalysis | |
| shell: bash | |
| run: | | |
| # If wheels is False we build directly from source so we use the --no-binary flag | |
| # to avoid pulling down wheels for MDAnalysis (which are already precompiled) | |
| # Also need to add `--no-build-isolation` until next release, see Issue #5125 | |
| if [ "${{ matrix.wheels }}" == "false" ]; then | |
| INSTALL_FLAGS="--no-build-isolation --no-binary" | |
| fi | |
| pip install ${INSTALL_FLAGS} mdanalysis mdanalysistests | |
| - name: run_tests | |
| shell: bash | |
| run: | | |
| pytest --timeout=200 -n auto --pyargs MDAnalysisTests |