Skip to content

chore(main): release 0.5.0 #405

chore(main): release 0.5.0

chore(main): release 0.5.0 #405

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
GDRIVE_SERVICE_ACCOUNT_KEY: ${{secrets.GDRIVE_SERVICE_ACCOUNT_KEY}}
R2_ACCOUNT_ID: ${{secrets.R2_ACCOUNT_ID}}
R2_ACCESS_KEY_ID: ${{secrets.R2_ACCESS_KEY_ID}}
R2_SECRET_ACCESS_KEY: ${{secrets.R2_SECRET_ACCESS_KEY}}
R2_BUCKET_NAME: ${{secrets.R2_BUCKET_NAME}}
R2_PUBLIC_URL: ${{secrets.R2_PUBLIC_URL}}
AXIOM_TOKEN: ${{secrets.AXIOM_TOKEN}}
AXIOM_DATASET: ${{secrets.AXIOM_DATASET}}
CRON_SECRET: ${{secrets.CRON_SECRET}}
BETTER_AUTH_SECRET: ${{secrets.BETTER_AUTH_SECRET}}
BETTER_AUTH_URL: http://localhost:3000
BETTER_AUTH_COOKIE_PREFIX: domus_auth_test
GOOGLE_CLIENT_ID: ${{secrets.GOOGLE_CLIENT_ID}}
GOOGLE_CLIENT_SECRET: ${{secrets.GOOGLE_CLIENT_SECRET}}
SUPER_ADMIN_EMAIL: superadmin@test.com
SUPER_ADMIN_PASSWORD: testing123
SUPER_ADMIN_NAME: Super Admin
NEXT_PUBLIC_DOMUS_VERSION: 0.0.0-dev
CF_API_TOKEN: ${{secrets.CF_API_TOKEN}}
CF_ACCOUNT_ID: ${{secrets.CF_ACCOUNT_ID}}
WHATSAPP_TOKEN: ${{secrets.WHATSAPP_TOKEN}}
SENTRY_AUTH_TOKEN: ${{secrets.SENTRY_AUTH_TOKEN}}
jobs:
check:
name: Lint & Type Check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install pnpm
uses: pnpm/action-setup@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Biome Check
run: pnpm check
- name: Type Check
run: pnpm typecheck
test:
name: Test with Coverage
runs-on: ubuntu-latest
needs: check
services:
postgres:
image: postgres:18-alpine
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: domus
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
DATABASE_URL: postgresql://postgres:postgres@localhost:5432/domus
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install pnpm
uses: pnpm/action-setup@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Setup Environment
run: cp .env.example .env
- name: Run Migrations & Seed
run: |
pnpm db:migrate
pnpm db:seed -- --with-mock
- name: Run Tests & Coverage
run: pnpm run coverage
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v6
with:
token: ${{ secrets.CODECOV_TOKEN }}
e2e:
name: E2E Tests
runs-on: ubuntu-latest
needs: test
services:
postgres:
image: postgres:18-alpine
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: domus
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
DATABASE_URL: postgresql://postgres:postgres@localhost:5432/domus
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Environment
run: cp .env.example .env
- name: Install pnpm
uses: pnpm/action-setup@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Install Playwright Browsers
run: pnpm exec playwright install chromium --with-deps
working-directory: apps/dash
- name: Run Migrations & Seed
run: |
pnpm db:migrate
pnpm db:seed -- --with-mock
- name: Run E2E Tests
run: pnpm e2e
build:
name: Build Check
runs-on: ubuntu-latest
needs: check
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Environment
run: cp .env.example .env
- name: Install pnpm
uses: pnpm/action-setup@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm build