CI #107
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: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| schedule: | |
| # once a week at midnight on Sunday | |
| - cron: "0 0 * * 0" | |
| workflow_dispatch: | |
| concurrency: | |
| group: "${{ github.workflow }}-${{ github.ref }}" | |
| cancel-in-progress: true | |
| jobs: | |
| run-tests: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, macOS-latest, windows-latest] | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.11" | |
| - name: default | |
| id: default-matrix | |
| uses: ./ | |
| - name: exclude latest | |
| id: exclude-latest | |
| uses: ./ | |
| with: | |
| exclude: '["3.13"]' | |
| - name: exclude 2 include 1 | |
| id: exclude-2-include-1 | |
| uses: ./ | |
| with: | |
| exclude: '["3.11", "3.9"]' | |
| include: '["3.14"]' | |
| - name: release 2.4.3 | |
| id: release-243 | |
| uses: ./ | |
| with: | |
| release: "2.4.3" | |
| - name: mda_latest | |
| id: mda-latest | |
| uses: ./ | |
| with: | |
| release: "latest" | |
| - name: check outputs | |
| shell: bash | |
| run: | | |
| echo "test 1" | |
| python utils/assert_varray.py --input ${{ toJSON(steps.default-matrix.outputs.python-versions) }} --target '["3.10", "3.11", "3.12", "3.13"]' | |
| [[ "${{ steps.default-matrix.outputs.latest-python }}" == "3.13" ]] || exit 1 | |
| [[ "${{ steps.default-matrix.outputs.stable-python }}" == "3.12" ]] || exit 1 | |
| [[ "${{ steps.default-matrix.outputs.oldest-python }}" == "3.10" ]] || exit 1 | |
| echo "test 2" | |
| python utils/assert_varray.py --input ${{ toJSON(steps.exclude-latest.outputs.python-versions) }} --target '["3.10", "3.11", "3.12"]' | |
| [[ "${{ steps.exclude-latest.outputs.latest-python }}" == "3.12" ]] || exit 1 | |
| [[ "${{ steps.exclude-latest.outputs.stable-python }}" == "3.11" ]] || exit 1 | |
| [[ "${{ steps.exclude-latest.outputs.oldest-python }}" == "3.10" ]] || exit 1 | |
| echo "test 3" | |
| python utils/assert_varray.py --input ${{ toJSON(steps.exclude-2-include-1.outputs.python-versions) }} --target '["3.10", "3.12", "3.13", "3.14"]' | |
| [[ "${{ steps.exclude-2-include-1.outputs.latest-python }}" == "3.14" ]] || exit 1 | |
| [[ "${{ steps.exclude-2-include-1.outputs.stable-python }}" == "3.13" ]] || exit 1 | |
| [[ "${{ steps.exclude-2-include-1.outputs.oldest-python }}" == "3.10" ]] || exit 1 | |
| echo "test 4" | |
| python utils/assert_varray.py --input ${{ toJSON(steps.release-243.outputs.python-versions) }} --target '["3.8", "3.9", "3.10", "3.11"]' | |
| [[ "${{ steps.release-243.outputs.latest-python }}" == "3.11" ]] || exit 1 | |
| [[ "${{ steps.release-243.outputs.stable-python }}" == "3.10" ]] || exit 1 | |
| [[ "${{ steps.release-243.outputs.oldest-python }}" == "3.8" ]] || exit 1 | |
| echo "test 5" | |
| python utils/assert_varray.py --input ${{ toJSON(steps.mda-latest.outputs.python-versions) }} --target '["3.10", "3.11", "3.12", "3.13"]' | |
| python-config: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| python-matrix: ${{ steps.get-compatible-python.outputs.python-versions }} | |
| stable-python: ${{ steps.get-compatible-python.outputs.stable-python }} | |
| latest-python: ${{ steps.get-compatible-python.outputs.latest-python }} | |
| oldest-python: ${{ steps.get-compatible-python.outputs.oldest-python }} | |
| steps: | |
| - uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.11" | |
| - name: get compatible python | |
| id: get-compatible-python | |
| uses: MDAnalysis/mdanalysis-compatible-python@main | |
| matrix-test: | |
| needs: python-config | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| matrix: | |
| python: ${{ fromJSON(needs.python-config.outputs.python-matrix) }} | |
| steps: | |
| - uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{matrix.python}} |