test(e2e): use cypress action #25
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: End-to-End Testing (Cypress) ๐ | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
types: [opened, synchronize, reopened] | |
schedule: | |
- cron: '0 2 * * FRI' | |
jobs: | |
cypress-run: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
strategy: | |
matrix: | |
browser: [ chrome, electron ] | |
env: | |
- name: no-variable | |
NEXT_PUBLIC_REKOR_DEFAULT_DOMAIN: "" | |
- name: with-variable | |
NEXT_PUBLIC_REKOR_DEFAULT_DOMAIN: "https://rekor.sigstore.dev" | |
node: [18] | |
steps: | |
- name: Checkout ๐ | |
uses: actions/checkout@v4 | |
# - name: Download the build folder | |
# uses: actions/download-artifact@v4 | |
# with: | |
# name: build | |
# path: .next | |
# install npm dependencies, cache them correctly, and run | |
# all Cypress tests | |
- name: Run Cypress E2E Tests on Node v${{ matrix.node }} | |
uses: cypress-io/github-action@v6 | |
with: | |
browser: ${{ matrix.browser }} | |
# the entire command will automatically be prefixed with "npm" | |
# and we need the second "npm" to execute "cypress run ..." command line | |
command-prefix: "-H 127.0.0.1 -- npx" | |
parallel: true | |
record: true | |
start: npm start | |
# keep quoted url to be safe against YML parsing surprises | |
wait-on: "http://127.0.0.1:3000" | |
env: | |
NODE_ENV: ${{ matrix.env.name }} | |
NEXT_PUBLIC_REKOR_DEFAULT_DOMAIN: ${{ matrix.env.NEXT_PUBLIC_REKOR_DEFAULT_DOMAIN }} | |
CYPRESS_baseUrl: "http://127.0.0.1:3000" | |
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Upload Screenshot Artifacts ๐ธ | |
uses: actions/upload-artifact@v4 | |
# if: failure() | |
with: | |
name: cypress-screenshots | |
path: cypress/screenshots | |
if-no-files-found: ignore # 'warn' or 'error' are also available, defaults to `warn` | |
- name: Upload Video Artifacts ๐ฅ | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cypress-videos | |
path: cypress/videos | |
if-no-files-found: ignore # 'warn' or 'error' are also available, defaults to `warn` | |
# - name: Upload Electron artifacts ๐ธ | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: electron-artifacts | |
# path: | | |
# ./artifacts/electron/videos | |
# ./artifacts/electron/screenshots | |
# if-no-files-found: ignore | |
# retention-days: 5 | |