name: shuffle-tests on: # Allow manually running workflow_dispatch: # Run once a week on sunday schedule: - cron: '0 1 * * 0' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true env: SENTRY_SHUFFLE_TESTS: true jobs: backend-test: name: run backend tests runs-on: ubuntu-20.04 timeout-minutes: 40 strategy: # This helps not having to run multiple jobs because one fails, thus, reducing resource usage # and reducing the risk that one of many runs would turn red again (read: intermittent tests) fail-fast: false matrix: # XXX: When updating this, make sure you also update MATRIX_INSTANCE_TOTAL. instance: [0, 1, 2, 3] pg-version: ['14'] env: # XXX: MATRIX_INSTANCE_TOTAL must be hardcoded to the length of strategy.matrix.instance. MATRIX_INSTANCE_TOTAL: 4 steps: - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 with: # Avoid codecov error message related to SHA resolution: # https://github.com/codecov/codecov-bash/blob/7100762afbc822b91806a6574658129fe0d23a7d/codecov#L891 fetch-depth: '2' - name: Setup sentry env uses: ./.github/actions/setup-sentry id: setup with: snuba: true # Right now, we run so few bigtable related tests that the # overhead of running bigtable in all backend tests # is way smaller than the time it would take to run in its own job. bigtable: true pg-version: ${{ matrix.pg-version }} - name: Run backend test (${{ steps.setup.outputs.matrix-instance-number }} of ${{ steps.setup.outputs.matrix-instance-total }}) run: | make test-python-ci - name: Handle artifacts uses: ./.github/actions/artifacts