3.3 KiB
Mozilla Build Verification Scripts
Contents
updates -> AUS and update verification
l10n -> l10n vs. en-US verification
common -> useful utility scripts
Update Verification
verify.sh
Does a low-level check of all advertised MAR files. Expects to have a file named all-locales, but does not (yet) handle platform exceptions, so these should be removed from the locales file.
Prints errors on both STDOUT and STDIN, the intention is to run the script with STDOUT redirected to an output log. If there is not output on the console and an exit code of 0 then all tests pass; otherwise one or more tests failed.
Does the following:
- download update.xml from AUS for a particular release
- download the partial and full mar advertised
- check that the partial and full match the advertised size and sha1sum
- downloads the latest release, and an older release
- applies MAR to the older release, and compares the two releases.
Step 5 is repeated for both the complete and partial MAR.
Expects to have an updates.cfg file, describing all releases to try updating from.
Valid Platforms for AUS
- Linux_x86-gcc3
- Darwin_Universal-gcc3
- Linux_x86-gcc3
- WINNT_x86-msvc
- Darwin_ppc-gcc3
Running it locally
Requirements:
- Docker
- [optional | Mac] zstd (
brew install zst
)
Docker Image
- Ship-it holds the latest builds.
- Clicking on "Ship task" of latest build will open the task group in Taskcluster.
- On the "Name contains" lookup box, search for
release-update-verify-firefox
and open aupdate-verify
task - Make note of the
CHANNEL
under Payload. ie:beta-localtest
- Click "See more" under Task Details and open the
docker-image-update-verify
task.
Download the image artifact from docker-image-update-verify task and load it manually
zstd -d image.tar.zst
docker image load -i image.tar
OR
Load docker image using mach and a task
# Replace TASK-ID with the ID of a docker-image-update-verify task
./mach taskcluster-load-image --task-id=<TASK-ID>
Update Verify Config
- Open Taskcluster Task Group
- Search for
update-verify-config
and open the task - Under Artifacts, download
update-verify.cfg
file
Run Docker
To run the container interactively:
Replace
<MOZ DIRECTORY>
with gecko repository path on local host
Replace<UVC PATH>
with path toupdate-verify.cfg
file on local host. ie.:~/Downloads/update-verify.cfg
Replace<CHANNEL>
with value fromupdate-verify
task (Docker steps)
docker run \
-it \
--rm \
-e CHANNEL=beta-localtest \
-e MOZ_FETCHES_DIR=/builds/worker/fetches \
-e MOZBUILD_STATE_PATH=/builds/worker/.mozbuild \
-v <UVC PATH>:/builds/worker/fetches/update-verify.cfg
-v <MOZ DIRECTORY>:/builds/worker/checkouts/gecko \
-w /builds/worker/checkouts/gecko \
update-verify
Note that
MOZ_FETCHES_DIR
here is different from what is used in production.
total-chunks
and this-chunk
refer to the number of lines in update-verify.cfg
./mach create-mach-environment
./tools/update-verify/scripts/chunked-verify.sh --total-chunks=228 --this-chunk=4