Skip to content

minimal starter

minimal starter #2

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@v4
- 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@v4
- 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@v4
- 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: npm run test -- --coverage
# cypress:
# name: ⚫️ Cypress
# runs-on: ubuntu-latest
# steps:
# - name: ⬇️ Checkout repo
# uses: actions/checkout@v4
# - name: πŸ„ Copy test env vars
# run: cp .env.example .env
# - 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: πŸ›  Setup Database
# run: npx prisma migrate reset --force
# - name: βš™οΈ Build
# run: npm run build
# - name: 🌳 Cypress run
# uses: cypress-io/github-action@v5
# with:
# start: npm run start:mocks
# wait-on: http://localhost:8811
# env:
# PORT: 8811
# deploy:
# name: πŸš€ Deploy
# runs-on: ubuntu-latest
# needs: [lint, typecheck, vitest, cypress]
# # 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@v4
# - name: πŸ‘€ Read app name
# uses: SebRollen/[email protected]
# id: app_name
# with:
# file: fly.toml
# field: app
# - name: πŸš€ Deploy Staging
# if: ${{ github.ref == 'refs/heads/dev' }}
# uses: superfly/[email protected]
# 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/[email protected]
# 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 }}