Skip to content

feat: Extract UI components into shared package (#2097) #888

feat: Extract UI components into shared package (#2097)

feat: Extract UI components into shared package (#2097) #888

Workflow file for this run

# GitHub Actions workflow
# https://help.github.com/actions
name: CI/CD
on:
push:
branches: [main]
tags:
- "v*"
pull_request:
branches: [main]
schedule:
- cron: "0 7 * * *"
workflow_dispatch:
inputs:
environment:
description: "Environment"
type: environment
default: "test"
required: true
env:
BUN_VERSION: latest
VERSION: ${{ github.event.pull_request.number }}
HUSKY: 0
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build:
name: "Build"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Configure Bun and install dependencies
- uses: oven-sh/setup-bun@v2
with:
bun-version: ${{ env.BUN_VERSION }}
- run: bun install
# Analyze code for potential problems
- run: bun prettier --check .
if: ${{ github.event_name == 'pull_request' }}
- run: bun lint
if: ${{ github.event_name == 'pull_request' }}
# Type checking
- run: bun tsc --build
# Testing (commented out - enable as needed)
# - run: bun --filter @repo/web test
# if: ${{ github.event_name == 'pull_request' }}
# - run: bun --filter @repo/api test
# if: ${{ github.event_name == 'pull_request' }}
# - run: bun --filter @repo/edge test
# if: ${{ github.event_name == 'pull_request' }}
# Build all workspaces
- run: bun --filter @repo/web build
- run: bun --filter @repo/api build
- run: bun --filter @repo/edge build
# Validate Terraform configuration and formatting
- uses: hashicorp/setup-terraform@v3
- run: terraform fmt -check -recursive infra/
# - run: terraform validate infra/environments/preview/
# Build Docker image (only on main branch pushes or manual triggers)
- run: docker build --tag api:${{ github.sha }} -f ./apps/api/Dockerfile .
- run: docker save api:${{ github.sha }} | gzip > api-image.tar.gz
# Upload build artifacts
- uses: actions/upload-artifact@v4
with:
name: "build"
path: "apps/web/dist\napps/edge/dist\napps/api/dist\napi-image.tar.gz\n"
deploy-preview:
name: "Deploy"
needs: [build]
if: github.event_name == 'pull_request'
uses: ./.github/workflows/deploy.yml
with:
name: Preview
environment: preview
url: https://{codename}.example.com
secrets: inherit
permissions:
deployments: write
pull-requests: read
deploy-staging:
name: "Deploy"
needs: [build]
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: ./.github/workflows/deploy.yml
with:
name: Staging
environment: staging
url: https://staging.example.com
secrets: inherit
permissions:
deployments: write
pull-requests: read
deploy-prod:
name: "Deploy"
needs: [build]
if: github.event_name == 'workflow_dispatch' && github.event.inputs.environment == 'production'
uses: ./.github/workflows/deploy.yml
with:
name: Production
environment: production
url: https://example.com
secrets: inherit
permissions:
deployments: write
pull-requests: read