Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 21 additions & 17 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,37 +1,41 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
versioning-strategy: "increase"
- package-ecosystem: 'npm'
directory: '/'
versioning-strategy: 'increase'
schedule:
interval: "weekly"
interval: 'weekly'
open-pull-requests-limit: 1
ignore:
- dependency-name: '*'
update-types:
- 'version-update:semver-major'
labels:
- "type: dependencies 🔗"
- "automerge 🤞"
- 'type: dependencies 🔗'
- 'automerge 🤞'
groups:
npm-dependencies:
patterns:
- "*"
- package-ecosystem: "github-actions"
directory: "/"
- '*'
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: "weekly"
interval: 'weekly'
open-pull-requests-limit: 1
groups:
github-actions:
patterns:
- "*"
- '*'

- package-ecosystem: "pip"
directory: "/"
- package-ecosystem: 'pip'
directory: '/'
schedule:
interval: "weekly"
interval: 'weekly'
open-pull-requests-limit: 1
labels:
- "type: dependencies 🔗"
- "automerge 🤞"
- 'type: dependencies 🔗'
- 'automerge 🤞'
groups:
python-dependencies:
patterns:
- "*"
- '*'
8 changes: 4 additions & 4 deletions .github/workflows/deployment-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ jobs:
WEBMENTION_IO_TOKEN: ${{ secrets.WEBMENTION_IO_TOKEN }}

# Secrets are not available to forked PRs. Also, we don't want to deploy untrusted forks.
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false
if: github.event_name != 'pull_request' ||
github.event.pull_request.head.repo.fork == false

permissions:
contents: read
Expand All @@ -60,7 +61,7 @@ jobs:
cache: npm

- name: Install dependencies
run: npm ci --force
run: npm ci

- name: Install Playwright Chromium (with system deps)
run: npx playwright install --with-deps chromium
Expand All @@ -72,7 +73,7 @@ jobs:
run: |
mkdir -p .vercel
cat > .vercel/project.json <<EOF
{"projectId":"$VERCEL_PROJECT_ID","orgId":"$VERCEL_ORG_ID","settings":{"framework":"astro","installCommand":"npm ci --force"}}
{"projectId":"$VERCEL_PROJECT_ID","orgId":"$VERCEL_ORG_ID","settings":{"framework":"astro","installCommand":"npm ci"}}
EOF

- name: Skip preview deployment when Vercel token is unavailable
Expand Down Expand Up @@ -100,4 +101,3 @@ jobs:
PUBLIC_UPSTASH_SEARCH_REST_URL: ${{ vars.PUBLIC_UPSTASH_SEARCH_REST_URL }}
PUBLIC_UPSTASH_SEARCH_READONLY_TOKEN: ${{ vars.PUBLIC_UPSTASH_SEARCH_READONLY_TOKEN }}
GITHUB_DEPLOYMENT_ENV: Preview

5 changes: 2 additions & 3 deletions .github/workflows/deployment-production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ jobs:
cache: npm

- name: Install dependencies
run: npm ci --force
run: npm ci

- name: Install Playwright Chromium (with system deps)
run: npx playwright install --with-deps chromium
Expand All @@ -64,7 +64,7 @@ jobs:
run: |
mkdir -p .vercel
cat > .vercel/project.json <<EOF
{"projectId":"$VERCEL_PROJECT_ID","orgId":"$VERCEL_ORG_ID","settings":{"framework":"astro","installCommand":"npm ci --force"}}
{"projectId":"$VERCEL_PROJECT_ID","orgId":"$VERCEL_ORG_ID","settings":{"framework":"astro","installCommand":"npm ci"}}
EOF

- name: Vercel build (production)
Expand Down Expand Up @@ -102,4 +102,3 @@ jobs:
PUBLIC_UPSTASH_SEARCH_REST_URL: ${{ vars.PUBLIC_UPSTASH_SEARCH_REST_URL }}
PUBLIC_UPSTASH_SEARCH_READONLY_TOKEN: ${{ vars.PUBLIC_UPSTASH_SEARCH_READONLY_TOKEN }}
GITHUB_DEPLOYMENT_ENV: Production

11 changes: 5 additions & 6 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,20 +41,20 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v6.2.0
with:
python-version: '3.13'
cache: 'pip'
python-version: "3.13"
cache: "pip"

- name: Install Python dependencies
run: python3 -m pip install -r requirements.txt

- name: Setup Node.js
uses: actions/setup-node@v6.4.0
with:
node-version: '24.x'
cache: 'npm'
node-version: "24.x"
cache: "npm"

- name: Install dependencies
run: npm ci --force
run: npm ci

- name: Run lint
run: npm run lint
Expand All @@ -72,4 +72,3 @@ jobs:
steps:
- name: Skip lint for hotfix branch
run: echo "hotfix/* branch detected; skipping lint but allowing deployments."

12 changes: 7 additions & 5 deletions .github/workflows/migrations-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ jobs:
runs-on: ubuntu-latest
environment: preview

if: github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success'
if: github.event_name == 'workflow_dispatch' ||
github.event.workflow_run.conclusion == 'success'

permissions:
contents: read
Expand Down Expand Up @@ -99,12 +100,12 @@ jobs:
if: steps.gate.outputs.should_migrate == 'true'
uses: actions/setup-node@v6.4.0
with:
node-version: '24.x'
cache: 'npm'
node-version: "24.x"
cache: "npm"

- name: Install dependencies
if: steps.gate.outputs.should_migrate == 'true'
run: npm ci --force
run: npm ci

- name: Verify database schema is up to date
id: verify
Expand Down Expand Up @@ -139,7 +140,8 @@ jobs:
exit 1

- name: Push database migrations (preview)
if: steps.gate.outputs.should_migrate == 'true' && steps.verify.outputs.needs_push == 'true'
if: steps.gate.outputs.should_migrate == 'true' &&
steps.verify.outputs.needs_push == 'true'
env:
ASTRO_DB_REMOTE_URL: ${{ secrets.ASTRO_DB_REMOTE_URL }}
ASTRO_DB_APP_TOKEN: ${{ secrets.ASTRO_DB_APP_TOKEN }}
Expand Down
12 changes: 7 additions & 5 deletions .github/workflows/migrations-production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ jobs:
runs-on: ubuntu-latest
environment: production

if: github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success'
if: github.event_name == 'workflow_dispatch' ||
github.event.workflow_run.conclusion == 'success'

permissions:
contents: read
Expand Down Expand Up @@ -78,12 +79,12 @@ jobs:
if: steps.gate.outputs.should_migrate == 'true'
uses: actions/setup-node@v6.4.0
with:
node-version: '24.x'
cache: 'npm'
node-version: "24.x"
cache: "npm"

- name: Install dependencies
if: steps.gate.outputs.should_migrate == 'true'
run: npm ci --force
run: npm ci

- name: Verify database schema is up to date
id: verify
Expand Down Expand Up @@ -118,7 +119,8 @@ jobs:
exit 1

- name: Push database migrations (production)
if: steps.gate.outputs.should_migrate == 'true' && steps.verify.outputs.needs_push == 'true'
if: steps.gate.outputs.should_migrate == 'true' &&
steps.verify.outputs.needs_push == 'true'
env:
ASTRO_DB_REMOTE_URL: ${{ secrets.ASTRO_DB_REMOTE_URL }}
ASTRO_DB_APP_TOKEN: ${{ secrets.ASTRO_DB_APP_TOKEN }}
Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/playwright.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6.4.0
with:
node-version: '24.x'
cache: 'npm'
node-version: "24.x"
cache: "npm"

- name: Install dependencies
run: npm ci --force
run: npm ci

- name: Install Playwright browsers
run: npx playwright install --with-deps
Expand Down Expand Up @@ -148,7 +148,7 @@ jobs:
- name: Run Playwright E2E tests
run: npm run test:e2e:smoke
env:
CI: '1'
CI: "1"

- name: Stop Astro dev server
if: always()
Expand All @@ -175,4 +175,5 @@ jobs:

steps:
- name: Skip E2E for hotfix branch
run: echo "hotfix/* branch detected; skipping e2e workflow but allowing deployments."
run: echo "hotfix/* branch detected; skipping e2e workflow but allowing
deployments."
17 changes: 9 additions & 8 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6.4.0
with:
node-version: '24.x'
cache: 'npm'
node-version: "24.x"
cache: "npm"

- name: Install dependencies
run: npm ci --force
run: npm ci

# Astro build runs sync, check, and integrations including verify links
- name: Verify green build (local DB snapshot)
Expand All @@ -66,12 +66,13 @@ jobs:
run: npm run test:coverage

- name: Report Coverage
if: steps.vitest.outcome == 'success' && hashFiles('coverage/coverage-summary.json') != ''
if: steps.vitest.outcome == 'success' &&
hashFiles('coverage/coverage-summary.json') != ''
# v2.9.0
uses: davelosert/vitest-coverage-report-action@3c50566c523e04813df28de8f7c48dd97d663f1c
with:
json-summary-path: './coverage/coverage-summary.json'
json-final-path: './coverage/coverage-final.json'
json-summary-path: "./coverage/coverage-summary.json"
json-final-path: "./coverage/coverage-final.json"

- name: Upload test coverage
if: always() && hashFiles('coverage/coverage-summary.json') != ''
Expand All @@ -90,5 +91,5 @@ jobs:

steps:
- name: Skip testing for hotfix branch
run: echo "hotfix/* branch detected; skipping lint, unit, and e2e workflows but allowing deployments."

run: echo "hotfix/* branch detected; skipping lint, unit, and e2e workflows but
allowing deployments."
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ build/Release
# Python bytecode
__pycache__/
*.py[cod]
.venv/

# Planning docs
CONTENT*.md
4 changes: 2 additions & 2 deletions astro.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import AstroPWA from '@vite-pwa/astro'
import db from '@astrojs/db'
import lit from '@semantic-ui/astro-lit'
import mdx from '@astrojs/mdx'
Expand All @@ -11,6 +10,7 @@ import { defineConfig } from 'astro/config'
import type { AstroUserConfig } from 'astro'
import { fileURLToPath } from 'node:url'
import { createLogger, type LogOptions, type PluginOption } from 'vite'
import { VitePWA } from 'vite-plugin-pwa'
/**
* You cannot use path aliases (`@lib`, `@components`, etc.) in files that are
* imported by astro.config.ts, because the path alias resolution happens
Expand Down Expand Up @@ -66,7 +66,6 @@ const shouldSuppressRollupWarning = (warning: {
}

const standardIntegrations = [
AstroPWA(pwaConfig),
/** Astro DB - uses Tursa for backing store in production */
db(),
mdx(markdownConfig),
Expand Down Expand Up @@ -209,6 +208,7 @@ export default defineConfig({
plugins: [
fixContentAssetPropagation(),
tailwindcss(),
VitePWA(pwaConfig),
pwaDevAssetServer(),
] as PluginOption[],
resolve: {
Expand Down
Loading
Loading