Make the Firefox source build reproducible, and let its check fail

The diff step rebuilds the extension from master-ff-src.zip (the source
archive AMO reviews) and compares the result with our build. It had never
worked, which the removed continue-on-error was hiding:

- The source zip left out .yarn/releases (yarnPath points there, so yarn
  could not start in the unpacked source) and scripts/ (build:ff runs
  scripts/postbuild-cleanup.cjs). Both are now included.
- diff.sh used `[ a || b ]`, which is not valid test syntax, and piped
  `diff -qr` into `sort`, so the check exited 0 whatever diff found. It now
  goes by diff's own exit status; with a file altered it fails.
- With those fixed, the builds still differed: webpack inlined
  import.meta.url from @pezkuwi/* packageInfo.js as the absolute file://
  path of the build machine, which also put our build directory into the
  published extension. DefinePlugin now gives it a fixed value; it is only
  shown in duplicate-version warnings.

Also fail-fast: false on the matrix. Without continue-on-error, the first
red step cancelled the others, so their results were lost.

Checked locally with node_modules as locked: "Builds are identical".
This commit is contained in:
Kurdistan Tech Ministry authored and SatoshiQaziMuhammed committed 2026-10-08 09:07:34 +04:00
1 parent 865bce54ae
commit 758d346078
4 files changed
+17 -21

No files matched your search

+2
View File
@@ -4,6 +4,8 @@ on: [pull_request]
jobs:
pr:
strategy:
# Each step reports on its own; one red step must not cancel the others.
fail-fast: false
matrix:
step: ['lint', 'test', 'build', diff]
runs-on: ubuntu-latest