Skip to content

[Snyk] Upgrade @octokit/core from 4.2.0 to 4.2.4 #22

[Snyk] Upgrade @octokit/core from 4.2.0 to 4.2.4

[Snyk] Upgrade @octokit/core from 4.2.0 to 4.2.4 #22

# Typically you would let this action
# determine a unique build id to tie multiple parallel
# test jobs together into a single logical Cypress Cloud run.
# But sometimes you need to execute Cypress using
# your own custom command and pass your --ci-build-id
# In that case it is important to make sure this build id
# is generated _again_ on workflow re-run. This example
# shows how to create a unique ID then pass it to
# multiple testing jobs running in parallel
# based on the recipe written in
# https://medium.com/attest-r-and-d/adding-a-unique-github-build-identifier-7aa2e83cadca
# The use of set-output is however deprecated by GitHub since the above blog was written
# in 2019 so this is replaced by GitHub Environment files, see
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#environment-files
#
name: example-custom-ci-build-id
on:
push:
branches:
- 'master'
pull_request:
workflow_dispatch:
jobs:
# single job that generates and outputs a common id
prepare:
runs-on: ubuntu-22.04
outputs:
uuid: ${{ steps.uuid.outputs.value }}
steps:
- name: Generate unique ID 💎
id: uuid
# take the current commit + timestamp together
# the typical value would be something like
# "sha-5d3fe...35d3-time-1620841214"
run: echo "value=sha-$GITHUB_SHA-time-$(date +"%s")" >> $GITHUB_OUTPUT
- name: Print unique ID 🖨`
run: echo "generated id ${{ steps.uuid.outputs.value }}"
# let's run a small subset of the tests
# and record it to the Cypress Cloud
smoke-tests:
needs: ['prepare']
runs-on: ubuntu-22.04
steps:
- name: Checkout 🛎
uses: actions/checkout@v3
- name: Print custom build id 🖨
run: echo "Custom build id is ${{ needs.prepare.outputs.uuid }}"
- name: Smoke tests using custom build id 🧪
uses: ./
with:
# run just some specs in this group
# we can pass the build id using action parameters
record: true
parallel: true
group: '1 - smoke tests'
ci-build-id: ${{ needs.prepare.outputs.uuid }}
spec: 'cypress/e2e/spec-a.cy.js'
working-directory: examples/recording
env:
# pass the Cypress Cloud record key as an environment variable
CYPRESS_RECORD_KEY: ${{ secrets.EXAMPLE_RECORDING_KEY }}
# if smoke tests pass, run all tests, splitting them in parallel
# because we record with the same build id, smoke and these
# tests should be under the same logical recorded run
# under different groups
all-tests:
needs: ['prepare', 'smoke-tests']
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
# run 3 copies of the current job in parallel
containers: [1, 2, 3]
steps:
- name: Checkout 🛎
uses: actions/checkout@v3
- name: Print custom build id 🖨
run: echo "Custom build id is ${{ needs.prepare.outputs.uuid }}"
- name: All tests using custom build id 🧪
uses: ./
with:
# we can pass the build id using CLI argument
# since we are using a custom command
command: |
npx cypress run --record --parallel \
--ci-build-id ${{ needs.prepare.outputs.uuid }} \
--group "2 - all tests"
working-directory: examples/recording
env:
# pass the Cypress Cloud record key as an environment variable
CYPRESS_RECORD_KEY: ${{ secrets.EXAMPLE_RECORDING_KEY }}