From 3c3840cffd7e00e2ba63ceb59a833e9507df545a Mon Sep 17 00:00:00 2001 From: BacLuc Date: Sat, 18 Nov 2023 15:36:27 +0100 Subject: [PATCH] ci: add job to run e2e tests multiple times --- .github/workflows/e2e-tests.yml | 57 +++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .github/workflows/e2e-tests.yml diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml new file mode 100644 index 00000000000..662f78f8200 --- /dev/null +++ b/.github/workflows/e2e-tests.yml @@ -0,0 +1,57 @@ +name: "Tests: End to End to detect flaky tests" + +on: + workflow_dispatch: + inputs: + pr_number: + type: number + description: | + Number of times the tests should run + required: true + default: 10 + pull_request: + types: [opened, labeled, unlabeled, synchronize] + schedule: + - cron: '42 4 * * *' + +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref_name }} + cancel-in-progress: false + +jobs: + create-array: + name: 'Create large array for matrix' + if: contains(github.event.pull_request.labels.*.name, 'test-flaky-e2e!') || github.event_name != 'pull_request' + runs-on: ubuntu-latest + outputs: + array: ${{ steps.array.outputs.result }} + + steps: + - name: Create large array + uses: actions/github-script@v6 + id: array + with: + script: | + function range(start, stop) { + return Array(stop - start) + .fill(start) + .map((value, index) => value + index); + } + return range(0, ${{ inputs.pr_number != null && inputs.pr_number || 10 }}) + + e2e-tests-build: + name: 'Tests: End-to-end build to detect flaky tests' + needs: + - create-array + uses: ./.github/workflows/reusable-e2e-tests-build.yml + + e2e-tests-run: + name: 'Tests: End-to-end run to detect flaky tests' + needs: + - create-array + - e2e-tests-build + uses: ./.github/workflows/reusable-e2e-tests-run.yml + strategy: + fail-fast: false + matrix: + array: ${{ fromJSON(needs.create-array.outputs.array) }}