| name: 'Build (All)' |
| on: |
| push: |
| paths-ignore: |
| - 'docs/**' |
| - '*.md' |
| pull_request: |
| paths-ignore: |
| - 'docs/**' |
| - '*.md' |
| schedule: |
| # ┌────────────── minute (0 - 59) |
| # │ ┌───────────── hour (0 - 23) |
| # │ │ ┌───────────── day of the month (1 - 31) |
| # │ │ │ ┌───────────── month (1 - 12 or JAN-DEC) |
| # │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT) |
| # │ │ │ │ │ |
| - cron: '0 18 * * *' |
| |
| concurrency: |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} |
| cancel-in-progress: true |
| |
| jobs: |
| controller: |
| name: 'Create test plan' |
| runs-on: 'ubuntu-slim' |
| if: ${{ (github.event_name == 'schedule' && github.repository == 'libsdl-org/sdl') || github.event_name != 'schedule' }} |
| outputs: |
| platforms-level1: ${{ steps.plan.outputs.platforms-level1 }} |
| platforms-others: ${{ steps.plan.outputs.platforms-others }} |
| steps: |
| - uses: actions/setup-python@main |
| with: |
| python-version: 3.x |
| - uses: actions/checkout@main |
| with: |
| sparse-checkout: '.github/workflows/create-test-plan.py' |
| - name: 'Create plan' |
| id: plan |
| env: |
| COMMIT_MESSAGE: ${{ github.event.head_commit.message }} |
| run: | |
| # Adding [sdl-ci-filter GLOB] to the commit message will limit the jobs |
| # e.g. [sdl-ci-filter msvc-*] |
| printf '%s\n' "$COMMIT_MESSAGE" >/tmp/commit_message.txt |
| |
| python .github/workflows/create-test-plan.py \ |
| ${{ (github.event_name != 'schedule' && '--priority-only') || '' }} \ |
| --github-variable-prefix platforms \ |
| --github-ci \ |
| --verbose \ |
| ${{ (github.repository_owner != 'libsdl-org' && '--no-artifact') || '' }} \ |
| --commit-message-file /tmp/commit_message.txt |
| level1: |
| needs: [controller] |
| uses: './.github/workflows/generic.yml' |
| with: |
| platforms: ${{ needs.controller.outputs.platforms-level1 }} |
| level2: |
| needs: [controller, level1] |
| uses: './.github/workflows/generic.yml' |
| with: |
| platforms: ${{ needs.controller.outputs.platforms-others }} |