Skip to content

Workflow file for this run

name: πŸš€ Deploy App
on:
push:
branches:
- main
paths:
- 'apps/app/**'
pull_request: {}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
actions: write
contents: read
jobs:
lint:
name: ⬣ ESLint
runs-on: ubuntu-22.04
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v4
- name: 🍞 Setup Bun
uses: oven-sh/setup-bun@v1
- name: πŸ“₯ Download deps
run: bun install --frozenLockfile
- name: πŸ”¬ Lint
run: bun lint
typecheck:
name: Κ¦ TypeScript
runs-on: ubuntu-22.04
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v4
- name: 🍞 Setup Bun
uses: oven-sh/setup-bun@v1
- name: πŸ“₯ Download deps
run: bun install --frozenLockfile
- name: πŸ”Ž Type check
run: bun typecheck
working-directory: apps/app
playwright:
name: 🎭 Playwright
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v4
- name: πŸ„ Copy test env vars
run: cp .env.example .env
working-directory: apps/app
- name: 🍞 Setup Bun
uses: oven-sh/setup-bun@v1
- name: πŸ“₯ Download deps
run: bun install --frozenLockfile
- name: πŸ“₯ Install Playwright Browsers
run: bun test:e2e:install
working-directory: apps/app
- name: 🎭 Playwright tests
run: bun test:e2e:run
working-directory: apps/app
env:
AUTH_TOKEN: ${{ secrets.AUTH_TOKEN }}
IG_USERNAME: ${{ secrets.IG_USERNAME }}
IG_PASSWORD: ${{ secrets.IG_PASSWORD }}
IG_THREAD_ID: ${{ secrets.IG_THREAD_ID }}
- name: πŸ“Š Upload report
uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report
path: apps/app/playwright-report/
retention-days: 30
deploy:
name: πŸš€ Deploy
runs-on: ubuntu-22.04
needs: [lint, typecheck, playwright]
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v4
- name: 🎈 Setup Fly
uses: superfly/flyctl-actions/[email protected]
- name: πŸš€ Deploy
if: ${{ github.ref == 'refs/heads/main' }}
working-directory: apps/app
run: fly deploy --remote-only --build-arg COMMIT_SHA=${{ github.sha }}
env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}