test(e2e): revive e2e test framework #117
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: Workflow | |
on: | |
# Run on pushes to main.. | |
push: | |
branches: | |
- main | |
# ..and any pull request. | |
pull_request: | |
# Cancel any in progress run of the workflow for a given PR | |
# This avoids building outdated code | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18' | |
check-latest: true | |
- run: yarn | |
- run: yarn format:check | |
- run: yarn lint | |
depcheck: | |
name: Depcheck | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18' | |
check-latest: true | |
- run: yarn | |
- run: yarn depcheck | |
test: | |
name: Test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18' | |
check-latest: true | |
- run: yarn | |
- run: yarn typecheck | |
- run: yarn test:ci | |
e2e: | |
name: E2E | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18' | |
check-latest: true | |
- name: Install linux deps | |
run: | | |
sudo apt-get install --no-install-recommends -y \ | |
fluxbox \ | |
xvfb | |
- name: Run xvfb and fluxbox | |
run: | | |
Xvfb :0 -screen 0 1024x768x24 -listen tcp -ac & | |
fluxbox & | |
env: | |
DISPLAY: :0.0 | |
- run: yarn | |
- run: yarn build | |
- name: Synpress | |
uses: cypress-io/github-action@v6 | |
timeout-minutes: 60 | |
with: | |
command: yarn e2e | |
start: yarn start | |
wait-on: http://localhost:3000 | |
browser: chrome | |
spec: test/e2e/specs/*.js | |
- uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: videos | |
path: tests/e2e/videos | |
deploy: | |
if: github.ref == 'refs/heads/main' | |
name: Deploy to GH Pages | |
runs-on: ubuntu-latest | |
needs: | |
- lint | |
- depcheck | |
- test | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18' | |
check-latest: true | |
- run: yarn deploy |