chore: update versions (#84) #89
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Main CI | |
on: | |
push: | |
branches: | |
- main | |
env: | |
# This enabled remote task caching using Turborepo | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_TEAM: ${{ vars.TURBO_TEAM }} | |
# Neon | |
NEON_DATABASE_USERNAME: ${{ secrets.NEON_DATABASE_USERNAME }} | |
NEON_API_KEY: ${{ secrets.NEON_API_KEY }} | |
NEON_PROJECT_ID: ${{ secrets.NEON_PROJECT_ID }} | |
# Authentication | |
AUTH_GITHUB_ID: ${{ secrets.AUTH_GITHUB_ID }} | |
AUTH_GITHUB_SECRET: ${{ secrets.AUTH_GITHUB_SECRET }} | |
AUTH_GOOGLE_ID: ${{ secrets.AUTH_GOOGLE_ID }} | |
AUTH_GOOGLE_SECRET: ${{ secrets.AUTH_GOOGLE_SECRET }} | |
AUTH_SECRET: ${{ secrets.AUTH_SECRET }} | |
# Uploadthing | |
UPLOADTHING_SECRET: ${{ secrets.UPLOADTHING_SECRET }} | |
UPLOADTHING_APP_ID: ${{ secrets.UPLOADTHING_APP_ID }} | |
# Unkey | |
UNKEY_ROOT_KEY: ${{ secrets.UNKEY_ROOT_KEY }} | |
jobs: | |
format-lint-typecheck: | |
name: Format, Lint & Typecheck | |
runs-on: ubuntu-latest | |
environment: Production | |
env: | |
# We don't need to validate the environment variables when we are checking the format, linting and typechecking | |
SKIP_ENV_VALIDATION: true | |
# Database URL | |
DATABASE_URL: ${{ secrets.DATABASE_URL }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 2 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Format check | |
run: bun format:check | |
- name: Spell check | |
run: bun lint:spell | |
- name: Lint markdown | |
run: bun lint:md | |
- name: Lint & Typecheck | |
run: bun turbo lint typecheck | |
build-marketing: | |
name: Build marketing website | |
runs-on: ubuntu-latest | |
needs: format-lint-typecheck | |
environment: Production | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 2 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Build marketing website | |
run: bun turbo build --filter=@orbitkit/marketing | |
build-app: | |
name: Build web app | |
runs-on: ubuntu-latest | |
needs: format-lint-typecheck | |
environment: Production | |
env: | |
# Database URL | |
DATABASE_URL: ${{ secrets.DATABASE_URL }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 2 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Build | |
run: bun turbo build --filter=@orbitkit/web | |
e2e-web: | |
name: E2E Web App | |
runs-on: ubuntu-latest | |
needs: format-lint-typecheck | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 2 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Create Neon Branch | |
id: create-branch | |
uses: neondatabase/create-branch-action@v4 | |
with: | |
project_id: ${{ env.NEON_PROJECT_ID }} | |
branch_name: web/e2e-main-${{ github.sha }} | |
username: ${{ env.NEON_DATABASE_USERNAME }} | |
api_key: ${{ env.NEON_API_KEY }} | |
- name: Set DATABASE_URL | |
shell: bash | |
run: | | |
echo "DATABASE_URL=${{ steps.create-branch.outputs.db_url }}?sslmode=require" >> $GITHUB_ENV | |
- name: Install Playwright Browsers | |
run: bun playwright install --with-deps | |
- name: Run Playwright tests | |
run: bun turbo test:e2e --filter=@orbitkit/web | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: web-playwright-report | |
path: apps/web/playwright-report/ | |
retention-days: 30 | |
e2e-marketing: | |
name: E2E Marketing App | |
runs-on: ubuntu-latest | |
needs: format-lint-typecheck | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 2 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Install Playwright Browsers | |
run: bun playwright install --with-deps | |
- name: Run Playwright tests | |
run: bun turbo test:e2e --filter=@orbitkit/marketing | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: marketing-playwright-report | |
path: apps/marketing/playwright-report/ | |
retention-days: 30 | |
delete-e2e-db-branch: | |
runs-on: ubuntu-latest | |
needs: e2e-web | |
steps: | |
- name: Delete Neon Branch | |
uses: neondatabase/delete-branch-action@v3 | |
with: | |
project_id: ${{ secrets.NEON_PROJECT_ID }} | |
branch: web/e2e-main-${{ github.sha }} | |
api_key: ${{ secrets.NEON_API_KEY }} |