Skip to content

fix: route all build outputs to builds/, fix S3 deploy MIME types - #647

Merged
pethers merged 2 commits into
mainfrom
copilot/fix-reports-and-mimetype-issues
Mar 16, 2026
Merged

fix: route all build outputs to builds/, fix S3 deploy MIME types#647
pethers merged 2 commits into
mainfrom
copilot/fix-reports-and-mimetype-issues

Conversation

Copilot AI commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

Reports missing from docs/ after release because Playwright/test-results wrote to repo root instead of builds/. S3 deploy had incomplete MIME type coverage — JSON, XML, SVG, TXT, and webmanifest files either got wrong types or weren't uploaded at all.

Build output consolidation

All build artifacts now route through builds/:

Tool Before After
Vitest coverage builds/coverage (unchanged)
TypeDoc builds/api (unchanged)
Playwright HTML playwright-report/ builds/playwright-report
JUnit XML test-results/junit.xml builds/test-results/junit.xml
Lighthouse test-results/lighthouse-reports/ builds/test-results/lighthouse-reports/
  • .gitignore: added playwright-report/ and test-results/ entries
  • copy-test-reports.ts: updated source path, added warning log on missing source dirs (was silently swallowing ENOENT)

S3 deploy MIME type overhaul

Every text-based type now uses --no-guess-mime-type with explicit --content-type:

# Before: CSS without charset, JS with legacy type, SVG lumped with raster images,
#          JSON/XML only covered 4 named files, webmanifest not handled at all

# After: per-type sync commands
--content-type 'text/css; charset=utf-8'
--content-type 'text/javascript; charset=utf-8'
--content-type 'image/svg+xml'
--content-type 'application/json; charset=utf-8'
--content-type 'text/xml; charset=utf-8'
--content-type 'text/plain; charset=utf-8'
--content-type 'application/manifest+json'

Added builds/ and runbooks/ to the EXCL array to prevent deploying intermediate artifacts.

Workflow path updates

Updated artifact upload paths in e2e.yml, test-and-report.yml, slsa-provenance.yml, and .lighthouserc.json to match the new builds/ structure.


💬 Send tasks to Copilot coding agent from Slack and Teams to turn conversations into code. Copilot posts an update in your thread when it's finished.

… for all file types

- .gitignore: add playwright-report/ and test-results/ to prevent accidental commits
- playwright.config.js: route report output to builds/playwright-report and builds/test-results
- src/utils/copy-test-reports.ts: update playwright source path, add warning logs
- deploy-s3.yml: comprehensive MIME types (CSS charset, SVG, JSON, XML, manifest, txt)
- deploy-s3.yml: add --no-guess-mime-type to HTML sync, exclude builds/ and runbooks/
- e2e.yml, test-and-report.yml, slsa-provenance.yml: update artifact paths
- .lighthouserc.json: update Lighthouse output to builds/test-results/

Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
@github-actions github-actions Bot added infrastructure CI/CD and build infrastructure github_actions GitHub Actions updates config Configuration changes needs-tests Needs test coverage workflows GitHub workflows scripts Scripts and automation labels Mar 16, 2026
Copilot AI changed the title [WIP] Fix missing reports in docs and set correct mimetime fix: route all build outputs to builds/, fix S3 deploy MIME types Mar 16, 2026
Copilot AI requested a review from pethers March 16, 2026 12:29
@pethers
pethers marked this pull request as ready for review March 16, 2026 12:32
@pethers
pethers merged commit c995b46 into main Mar 16, 2026
17 checks passed
@pethers
pethers deleted the copilot/fix-reports-and-mimetype-issues branch March 16, 2026 12:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

config Configuration changes github_actions GitHub Actions updates infrastructure CI/CD and build infrastructure needs-tests Needs test coverage scripts Scripts and automation workflows GitHub workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants