Skip to content

.github/workflows/full_cluster_tests.yml #29

.github/workflows/full_cluster_tests.yml

.github/workflows/full_cluster_tests.yml #29

# Run integration tests on a self-hosted runner using all slurm clusters.
on:
push:
branches: "master" # every time a push is made to `master`, OR
schedule:
- cron: "30 6 * * 1" # every Monday at 6:30 AM UTC (2:30 AM Montreal time) OR
workflow_dispatch: # when the workflow is manually triggered
# https://stackoverflow.com/a/72408109/6388696
# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-concurrency-to-cancel-any-in-progress-job-or-run
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
real-slurm-integration-tests:
name: integration tests with a real SLURM cluster
strategy:
max-parallel: 5
fail-fast: false
matrix:
# TODO: Setup self-hosted runners inside Mac and Windows VMs.
python-version: ['3.11']
cluster: ['mila', 'narval', 'beluga', 'cedar', 'graham']
uses: ./.github/workflows/testing.yml
with:
cluster: ${{ matrix.cluster }}
python-version: ${{ matrix.python-version }}
timeout-minutes: 60
# https://about.codecov.io/blog/uploading-code-coverage-in-a-separate-job-on-github-actions/
upload-coverage-codecov:
needs: [real-slurm-integration-tests]
runs-on: ubuntu-latest
name: Upload coverage reports to Codecov
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifacts
uses: actions/download-artifact@v4
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
# file: ./coverage.xml # Search for all coverage files from each workflow.
flags: integrationtests
# env_vars: PLATFORM,PYTHON
# name: codecov-umbrella
fail_ci_if_error: true