Skip to content

Fix validate script not to run e2e twice #7

Fix validate script not to run e2e twice

Fix validate script not to run e2e twice #7

Workflow file for this run

name: Deploy
on:
push:
branches:
- main
- dev
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
actions: write
contents: read
jobs:
lint:
name: ESLint
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
with:
cache: npm
cache-dependency-path: ./package.json
node-version: 18
- name: Install deps
run: npm install
- name: Lint
run: npm run lint
typecheck:
name: TypeScript
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
with:
cache: npm
cache-dependency-path: ./package.json
node-version: 18
- name: Install deps
run: npm install
- name: Type check
run: npm run typecheck --if-present
vitest:
name: Vitest
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
with:
cache: npm
cache-dependency-path: ./package.json
node-version: 18
- name: Install deps
run: npm install
- name: Run vitest
run: npx vitest run --coverage
playwright:
name: Playwright
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
with:
cache: npm
cache-dependency-path: ./package.json
node-version: 18
- name: Install deps
run: npm install
- name: Install browsers
run: npx playwright install --with-deps
- name: Build
run: npm run build
- name: Run Playwright
run: npx playwright test
- uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30
deploy:
name: Deploy
runs-on: ubuntu-latest
needs: [lint, typecheck, vitest, playwright]
# only build/deploy main branch on pushes
if: ${{ (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev') && github.event_name == 'push' }}
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Read app name
uses: SebRollen/toml-action@v1.0.2
id: app_name
with:
file: fly.toml
field: app
- name: Deploy Staging
if: ${{ github.ref == 'refs/heads/dev' }}
uses: superfly/flyctl-actions@1.4
with:
args: deploy --remote-only --build-arg COMMIT_SHA=${{ github.sha }} --app ${{ steps.app_name.outputs.value }}-staging
env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
- name: Deploy Production
if: ${{ github.ref == 'refs/heads/main' }}
uses: superfly/flyctl-actions@1.4
with:
args: deploy --remote-only --build-arg COMMIT_SHA=${{ github.sha }} --app ${{ steps.app_name.outputs.value }}
env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}