Skip to content

Instantly share code, notes, and snippets.

@motoy3d
Created February 11, 2022 21:38
Show Gist options
  • Save motoy3d/db51c9792b6f09e2c1c367abc45aa0da to your computer and use it in GitHub Desktop.
Save motoy3d/db51c9792b6f09e2c1c367abc45aa0da to your computer and use it in GitHub Desktop.
name: Cypress Tests
on:
push:
branches-ignore:
- "renovate/**"
jobs:
install:
runs-on: ubuntu-latest
container: cypress/browsers:node14.17.0-chrome88-ff89
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Cypress install
uses: cypress-io/github-action@v2
with:
runTests: false
# report machine parameters
- run: yarn cypress info
- run: node -p 'os.cpus()'
- run: yarn types
- run: yarn lint
- run: yarn test:unit:ci
- run: yarn build:ci
- name: Save build folder
uses: actions/upload-artifact@v2
with:
name: build
if-no-files-found: error
path: build
install-windows:
runs-on: windows-2019
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Cypress install
uses: cypress-io/github-action@v2
with:
runTests: false
# report machine parameters
- run: yarn cypress info
- run: node -p 'os.cpus()'
- run: yarn types
- run: yarn lint
- run: yarn test:unit:ci
- run: yarn build:ci
- name: Save build folder
uses: actions/upload-artifact@v2
with:
name: build
if-no-files-found: error
path: build
ui-chrome-tests:
timeout-minutes: 15
runs-on: ubuntu-latest
container: cypress/browsers:node14.17.0-chrome88-ff89
needs: install
strategy:
# when one test fails, DO NOT cancel the other
# containers, because this will kill Cypress processes
# leaving the Dashboard hanging ...
# https://github.com/cypress-io/github-action/issues/48
fail-fast: false
matrix:
# run copies of the current job in parallel
containers: [1, 2, 3, 4, 5]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download the build folders
uses: actions/download-artifact@v2
with:
name: build
path: build
- name: "UI Tests - Chrome"
uses: cypress-io/github-action@v2
with:
start: yarn start:ci
wait-on: "http://localhost:3000"
wait-on-timeout: 120
browser: chrome
record: true
parallel: true
group: "UI - Chrome"
spec: cypress/tests/ui/*
env:
CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ui-chrome-mobile-tests:
timeout-minutes: 15
runs-on: ubuntu-latest
container: cypress/browsers:node14.17.0-chrome88-ff89
needs: install
strategy:
# when one test fails, DO NOT cancel the other
# containers, because this will kill Cypress processes
# leaving the Dashboard hanging ...
# https://github.com/cypress-io/github-action/issues/48
fail-fast: false
matrix:
# run copies of the current job in parallel
containers: [1, 2, 3, 4, 5]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download the build folders
uses: actions/download-artifact@v2
with:
name: build
path: build
- name: "UI Tests - Chrome - Mobile"
uses: cypress-io/github-action@v2
with:
config: "viewportWidth=375,viewportHeight=667"
start: yarn start:ci
wait-on: "http://localhost:3000"
wait-on-timeout: 120
browser: chrome
record: true
parallel: true
group: "UI - Chrome - Mobile"
spec: cypress/tests/ui/*
env:
CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ui-firefox-tests:
timeout-minutes: 15
runs-on: ubuntu-latest
container:
image: cypress/browsers:node14.17.0-chrome88-ff89
options: --user 1001
needs: install
strategy:
# when one test fails, DO NOT cancel the other
# containers, because this will kill Cypress processes
# leaving the Dashboard hanging ...
# https://github.com/cypress-io/github-action/issues/48
fail-fast: false
matrix:
# run copies of the current job in parallel
containers: [1, 2, 3, 4, 5]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download the build folders
uses: actions/download-artifact@v2
with:
name: build
path: build
- name: "UI Tests - Firefox"
uses: cypress-io/github-action@v2
with:
start: yarn start:ci
wait-on: "http://localhost:3000"
wait-on-timeout: 120
browser: firefox
record: true
parallel: true
group: "UI - Firefox"
spec: cypress/tests/ui/*
env:
CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ui-firefox-mobile-tests:
timeout-minutes: 15
runs-on: ubuntu-latest
container:
image: cypress/browsers:node14.17.0-chrome88-ff89
options: --user 1001
needs: install
strategy:
# when one test fails, DO NOT cancel the other
# containers, because this will kill Cypress processes
# leaving the Dashboard hanging ...
# https://github.com/cypress-io/github-action/issues/48
fail-fast: false
matrix:
# run copies of the current job in parallel
containers: [1, 2, 3, 4, 5]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download the build folders
uses: actions/download-artifact@v2
with:
name: build
path: build
- name: "UI Tests - Firefox - Mobile"
uses: cypress-io/github-action@v2
with:
config: "viewportWidth=375,viewportHeight=667"
start: yarn start:ci
wait-on: "http://localhost:3000"
wait-on-timeout: 120
browser: firefox
record: true
parallel: true
group: "UI - Firefox - Mobile"
spec: cypress/tests/ui/*
env:
CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ui-windows-tests:
timeout-minutes: 40
runs-on: windows-2019
needs: install-windows
strategy:
# when one test fails, DO NOT cancel the other
# containers, because this will kill Cypress processes
# leaving the Dashboard hanging ...
# https://github.com/cypress-io/github-action/issues/48
fail-fast: false
matrix:
# run copies of the current job in parallel
containers: [1, 2, 3, 4, 5]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download the build folders
uses: actions/download-artifact@v2
with:
name: build
path: build
- name: "UI Tests - Electron - Windows"
uses: cypress-io/github-action@v2
with:
start: yarn start:ci
wait-on: "http://localhost:3000"
wait-on-timeout: 120
record: true
parallel: true
group: "UI - Electron - Windows"
spec: cypress/tests/ui/*
env:
CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }}
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment