Skip to content

ci(publish): add a -fonts release flavor with the spoofed OS font bundles kept - #123

Open
emandel2630 wants to merge 1 commit into
germondai:devfrom
emandel2630:ci/publish-fonts-flavor
Open

ci(publish): add a -fonts release flavor with the spoofed OS font bundles kept#123
emandel2630 wants to merge 1 commit into
germondai:devfrom
emandel2630:ci/publish-fonts-flavor

Conversation

@emandel2630

Copy link
Copy Markdown
Contributor

Summary

Every release is currently published without the spoofed Windows/macOS font bundles: CAMOUFOX_KEEP_SPOOFED_OS_FONTS (#101, #108) defaults to 0 and none of the publish workflows set it. Since FINGERPRINT_POOL hands each browser a Windows or macOS profile and Camoufox spoofs that OS's font list, a screenshot (#106) from the published image renders as tofu for anything but a Linux fingerprint — the only fix today is a local build.

This adds a second flavor to publish.yml so each v* push also produces :X.Y.Z-fonts and :latest-fonts, built from the same apps/api/Dockerfile with the arg set.

What changes

  • build matrix gains a flavor: [default, fonts] axis; the build arg, cache scope and digest artifact name are keyed by it.
  • merge runs once per flavor. The fonts run uses docker/metadata-action's suffix=-fonts,onlatest=true, so the default :X.Y.Z / :latest tags are produced exactly as before and the fonts build can never shadow them.
  • README image table, the standalone deployment note and the changelog mention the new tag.

Nightlies and the baseline image are untouched. Cost is one extra build per platform on release pushes only, and the -fonts image is ~891 MB larger, as documented for the arg.

Verification

  • Workflow parses; the matrix expands to 4 build jobs and 2 merge jobs.
  • I cannot run the release workflow from a fork. If you would rather see it exercised first, a workflow_dispatch trigger on a throwaway tag would confirm the tag set before the next release.

…dles kept

The pool spoofs a Windows or macOS fingerprint per browser and Camoufox spoofs
that OS's font list with it, but the published image deletes the matching
bundles (germondai#97, germondai#101): every `screenshot` of a non-Linux fingerprint renders as
tofu, and the only fix today is a local build with
CAMOUFOX_KEEP_SPOOFED_OS_FONTS=1.

Build every release twice from the same Dockerfile and publish the second as
`:X.Y.Z-fonts` / `:latest-fonts`. The default tags are unchanged: the build
matrix gains a `flavor` axis, artifacts and cache scopes are keyed by it, and
the merge job runs once per flavor with docker/metadata-action's
`suffix=-fonts,onlatest=true` so the fonts build never shadows a default tag.
Cost is one extra build per platform on release pushes only; nightlies and the
baseline image are untouched.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant