.github/workflows/full_cluster_tests.yml #42
This file contains 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
# 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 |