test(cypress): only use the cypress cloud on pull requests

* Disable recording on integration branches.
* No parallelization on integration branches.

This will still run the cypress tests - but a bit slower and without recordings.

The matrix syntax to enable this is somewhat hard to parse.
In case of a PR the matrix will contain one entry for use-cypress-cloud
with the value `true`. Otherwise it will have one entry `false`.

This way we can exclude containers for the case without the cypress cloud.

Signed-off-by: Max <max@nextcloud.com>
This commit is contained in:
Max 2023-10-02 10:11:50 +02:00
parent 9ebcd287ef
commit 716d1a2d76
No known key found for this signature in database
GPG key ID: 0F5BFA367A00BACE

View file

@ -74,6 +74,13 @@ jobs:
# Run multiple copies of the current job in parallel
# Please increase the number or runners as your tests suite grows
containers: ["component", 1, 2]
# Only use cypress cloud for PRs
use-cypress-cloud:
- ${{ !!github.head_ref }}
# Only use one container if we are not using the cypress cloud.
exclude:
- use-cypress-cloud: false
containers: 2
name: runner ${{ matrix.containers }}
@ -96,14 +103,14 @@ jobs:
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
uses: cypress-io/github-action@59810ebfa5a5ac6fcfdcfdf036d1cd4d083a88f2 # v6.5.0
with:
record: true
parallel: true
record: '${{ !!matrix.use-cypress-cloud }}'
parallel: '${{ !!matrix.use-cypress-cloud }}'
# cypress run type
component: ${{ matrix.containers == 'component' }}
group: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }}
group: ${{ matrix.use-cypress-cloud && matrix.containers == 'component' && 'Run component' || matrix.use-cypress-cloud || 'Run E2E' }}
# cypress env
ci-build-id: ${{ github.sha }}-${{ github.run_number }}
tag: ${{ github.event_name }}
tag: ${{ matrix.use-cypress-cloud && github.event_name }}
env:
# Needs to be prefixed with CYPRESS_
CYPRESS_BRANCH: ${{ env.BRANCH }}