summaryrefslogtreecommitdiffstats
path: root/tools/update-verify/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'tools/update-verify/README.md')
-rw-r--r--tools/update-verify/README.md118
1 files changed, 118 insertions, 0 deletions
diff --git a/tools/update-verify/README.md b/tools/update-verify/README.md
new file mode 100644
index 0000000000..14eb2a5f9a
--- /dev/null
+++ b/tools/update-verify/README.md
@@ -0,0 +1,118 @@
+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:
+>
+> 1) download update.xml from AUS for a particular release
+> 2) download the partial and full mar advertised
+> 3) check that the partial and full match the advertised size and sha1sum
+> 4) downloads the latest release, and an older release
+> 5) 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](https://docs.docker.com/get-docker/)
+- [optional | Mac] zstd (`brew install zst`)
+
+Docker Image
+------------
+
+1. [Ship-it](https://shipit.mozilla-releng.net/recent) holds the latest builds.
+1. Clicking on "Ship task" of latest build will open the task group in
+Taskcluster.
+1. On the "Name contains" lookup box, search for `release-update-verify-firefox`
+and open a `update-verify` task
+1. Make note of the `CHANNEL` under Payload. ie: `beta-localtest`
+1. 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
+--------------------
+
+1. Open Taskcluster Task Group
+1. Search for `update-verify-config` and open the task
+1. Under Artifacts, download `update-verify.cfg` file
+
+Run Docker
+----------
+
+To run the container interactively:
+> Replace `<MOZ DIRECTORY>` with gecko repository path on local host <br />
+> Replace `<UVC PATH>` with path to `update-verify.cfg` file on local host.
+ie.: `~/Downloads/update-verify.cfg`
+> Replace `<CHANNEL>` with value from `update-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`
+```
+./tools/update-verify/scripts/chunked-verify.sh --total-chunks=228 --this-chunk=4
+```