Skip to content

run lint

run lint #185

Workflow file for this run

name: Cypress Local Tests
on:
push:
branches-ignore:
- master
paths-ignore:
- docs/**
- '**/*.md'
jobs:
run-lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: '18.18.0'
- name: Install dependencies
run: npm ci
- name: Write environment variables
run: |
echo "${{ secrets.ENV_TEST_LOCAL }}" > .env
echo "" > cypress.config.json
- name: ESLint
run: npm run lint
- name: Prettier
run: npx prettier . --check
cypress-component:
name: Cypress Run Component Tests on GitHub machine
runs-on: ubuntu-latest
needs: [ run-lint ]
outputs:
PR_ID: ${{ steps.save-cypress-outputs.outputs.PR_ID }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: '18.18.0'
- name: Write environment variables
run: |
echo "${{ secrets.ENV_TEST_LOCAL }}" > .env
echo "" > cypress.config.json
- name: Run Component Tests
uses: cypress-io/github-action@v6
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
GITHUB_TOKEN: ${{ secrets.PERSONAL_GITHUB_ACCESS_TOKEN }}
with:
install: true
browser: chrome
component: true
- name: Save cypress outputs
id: save-cypress-outputs
run: |
echo "PR_ID=$CYPRESS_PULL_REQUEST_ID" >> $GITHUB_OUTPUT
- name: Upload test results
uses: actions/upload-artifact@v3
with:
name: component-test-results
path: cypress/reports/components/components*.json
component-results-report:
name: Report component test results
runs-on: ubuntu-latest
if: always()
needs: [ cypress-component ]
steps:
- uses: actions/checkout@v4
- name: Download test results
uses: actions/download-artifact@v3
with:
name: component-test-results
path: cypress/reports
- name: Merge reports to 1 report file
run: |
npx mochawesome-merge cypress/reports/*.json > cypress/reports/test_results.json
- name: Convert report file to markdown
run: |
npx mochawesome-json-to-md@0.7.2 -p cypress/reports/test_results.json -o cypress/reports/test_results.md --reportTitle="Component Test Results"
- name: Create report and post on PR
uses: peter-evans/create-or-update-comment@v3
continue-on-error: true
env:
PR_ID: ${{ needs.cypress-component.outputs.PR_ID || github.event.number }}
with:
issue-number: ${{ env.PR_ID }}
body-path: cypress/reports/test_results.md
token: ${{ secrets.PERSONAL_GITHUB_ACCESS_TOKEN }}
migrate-db-e2e:
name: Set up database
runs-on: ubuntu-latest
needs: [ run-lint ]
continue-on-error: true
steps:
- uses: actions/checkout@v4
- name: Write environment variables
run: |
echo "${{ secrets.ENV_TEST_LOCAL }}" > .env
- name: Migrate Database
run: npx prisma migrate deploy &> prisma_migrate.log
cypress-e2e:
name: Cypress Run E2E Tests on GitHub machine
runs-on: ubuntu-latest
needs: [ migrate-db-e2e ]
outputs:
PR_ID: ${{ steps.save-cypress-outputs.outputs.PR_ID }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: '18.18.0'
- name: Write environment variables
run: |
echo "${{ secrets.ENV_TEST_LOCAL }}" > .env
echo "" > cypress.config.json
- name: Run E2E Tests
uses: cypress-io/github-action@v6
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
GITHUB_TOKEN: ${{ secrets.PERSONAL_GITHUB_ACCESS_TOKEN }}
CYPRESS_BASE_URL: ${{ secrets.CYPRESS_BASE_URL }}
with:
build: npm run build
start: npm run start
install: true
browser: chrome
headed: true
wait-on: ${{ env.CYPRESS_BASE_URL }}
config: baseUrl=${{ env.CYPRESS_BASE_URL }}
- name: Save cypress video
if: failure()
uses: actions/upload-artifact@v3
with:
name: cypress-videos
path: cypress/videos
if-no-files-found: ignore
- name: Save cypress screenshots
if: failure()
uses: actions/upload-artifact@v3
with:
name: cypress-screenshots
path: cypress/screenshots
if-no-files-found: ignore
- name: Save cypress results
id: save-cypress-outputs
run: |
echo "PR_ID=$CYPRESS_PULL_REQUEST_ID" >> $GITHUB_OUTPUT
- name: Upload test results
if: always()
uses: actions/upload-artifact@v3
with:
name: e2e-test-results
path: cypress/reports/e2e/e2e*.json
e2e-results-report:
name: Report E2E test results
runs-on: ubuntu-latest
if: always()
needs: [ cypress-e2e ]
steps:
- uses: actions/checkout@v4
- name: Download test results
uses: actions/download-artifact@v3
with:
name: e2e-test-results
path: cypress/reports
- name: Merge reports to 1 report file
run: |
npx mochawesome-merge cypress/reports/*.json > cypress/reports/test_results.json
- name: Convert report file to markdown
run: |
npx mochawesome-json-to-md@0.7.2 -p cypress/reports/test_results.json -o cypress/reports/test_results.md --reportTitle="E2E Test Results (Local)"
- name: Create report and post on PR
uses: peter-evans/create-or-update-comment@v3
continue-on-error: true
env:
PR_ID: ${{ needs.cypress-e2e.outputs.PR_ID || github.event.number }}
with:
issue-number: ${{ env.PR_ID }}
body-path: cypress/reports/test_results.md
token: ${{ secrets.PERSONAL_GITHUB_ACCESS_TOKEN }}