mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 17:35:10 +03:00
www builds currently bypass Turbo. This caches Next.js compilation and sitemap generation while keeping content refreshes and asset uploads on every build, including cache hits. **Changed:** - Refresh content before Turbo hashes its inputs, and upload assets after Turbo saves or restores the build output. - Include generated content, shared code, environment settings, sitemaps, and the customer RSS feed in the cache configuration. - Remove the redundant `vercel.json` build override and consolidate public environment settings into `NEXT_PUBLIC_*`. Cache reuse requires the same commit and build inputs because production CDN URLs include the commit SHA. **Added:** - Build lifecycle tests covering cache restoration, input invalidation, root/app commands, and upload ordering and failure handling. ## To test - From `apps/www`, run `pnpm exec vitest run turbo-build.test.ts generate-sitemap.test.ts scripts/lib/githubStars.test.ts`. - Check the Vercel preview build runs content preparation before `build:next`, and verify the homepage, `/sitemap.xml`, and `/customers-rss.xml` load. - Rebuild with identical prepared content and environment settings to check compilation is cached. Asset uploads should still run when enabled. Validation: 63 tests passed, along with typecheck, ESLint for the new test, formatting, and a full local build. The local build used public example settings and placeholder survey configuration, with asset uploads disabled; Vercel deployment validation is still pending. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Build & Deployment** - Production builds now reuse cached outputs and restore generated assets when a cache is available. - Static assets upload after a successful build, and changes to content, documentation, configuration, or shared components trigger a fresh build. - **Documentation** - Added production build guidance covering caching, CDN uploads, overrides, and direct-build limitations. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Alaister Young <10985857+alaister@users.noreply.github.com>
73 lines
2.0 KiB
YAML
73 lines
2.0 KiB
YAML
name: Marketing site tests
|
|
|
|
on:
|
|
pull_request:
|
|
branches: ['master']
|
|
paths:
|
|
- '.github/workflows/www-tests.yml'
|
|
- 'apps/www/**/*.ts*'
|
|
- 'apps/www/package.json'
|
|
- 'apps/www/turbo.jsonc'
|
|
- 'scripts/upload-static-assets.sh'
|
|
- 'packages/common/sentry.ts'
|
|
- 'packages/common/sentry.test.ts'
|
|
- 'apps/www/next.config.mjs'
|
|
- 'apps/www/next.config.js'
|
|
- 'apps/www/lib/**/*.js'
|
|
- 'apps/www/lib/**/*.mjs'
|
|
- 'apps/www/content/md/**'
|
|
- 'apps/www/scripts/**/*.mjs'
|
|
- 'apps/www/internals/**/*.mjs'
|
|
- 'apps/www/_blog/**'
|
|
- 'apps/www/_alternatives/**'
|
|
- 'apps/www/_customers/**'
|
|
- 'apps/www/public/.well-known/**'
|
|
# www catalog tests check that linked docs guides exist, so guide changes
|
|
# must trigger these tests and their sources must be included in checkout.
|
|
- 'apps/docs/content/guides/**'
|
|
|
|
# Cancel old builds on new commit for same workflow + branch/PR
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
CI: true
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: blacksmith-4vcpu-ubuntu-2404
|
|
|
|
steps:
|
|
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
persist-credentials: false
|
|
sparse-checkout: |
|
|
apps/www
|
|
apps/docs/content/guides
|
|
packages
|
|
scripts
|
|
supabase
|
|
patches
|
|
|
|
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
|
|
name: Install pnpm
|
|
with:
|
|
run_install: false
|
|
|
|
- name: Use Node.js
|
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
|
with:
|
|
node-version-file: '.nvmrc'
|
|
cache: 'pnpm'
|
|
|
|
- name: Install deps
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
- name: Run tests
|
|
run: pnpm run test
|
|
working-directory: ./apps/www
|