Skip to content

Instantly share code, notes, and snippets.

@hneiva
Last active February 18, 2026 19:39
Show Gist options
  • Select an option

  • Save hneiva/7904f2958916a8fe3495815677b4e67a to your computer and use it in GitHub Desktop.

Select an option

Save hneiva/7904f2958916a8fe3495815677b4e67a to your computer and use it in GitHub Desktop.
Zucchini partials - local setup
# From firefox checkout, run:
# docker run -it --rm -v $(pwd):/work --platform linux/amd64 debian:13-slim bash
# Install requirements
apt update && apt install python3 python3-pip zstd wget -y
pip install -r /work/taskcluster/docker/partials-zucchini/requirements.txt --break-system-packages
mkdir /workspace
# This is the "to-mar" complete
wget -O /workspace/target.complete.mar https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/F8gaO4HjR5q8eNxyWp_GxA/runs/0/artifacts/public%2Fbuild%2Ftarget.complete.mar
# Get public keys from repo
cp /work/toolkit/mozapps/update/updater/nightly_aurora_level3_primary.der /tmp/
cp /work/toolkit/mozapps/update/updater/dep1.der /tmp/
cp /work/toolkit/mozapps/update/updater/release_primary.der /tmp/
# Convert keys
mkdir -p /workspace/keys && \
openssl x509 -inform DER -pubkey -noout -in /tmp/nightly_aurora_level3_primary.der > /workspace/keys/nightly.pubkey && \
openssl x509 -inform DER -pubkey -noout -in /tmp/dep1.der > /workspace/keys/dep.pubkey && \
openssl x509 -inform DER -pubkey -noout -in /tmp/release_primary.der > /workspace/keys/release.pubkey
# Download+setup the zucchini binary from toolchain task
wget -O /tmp/zucchini.tar.gz https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/UNyFwcjPSUmsZEi4N25hjQ/runs/0/artifacts/public%2Fbuild%2Fzucchini.tar.xz
tar xvf /tmp/zucchini.tar.gz -C /usr/bin
# Download+setup mar binary from toolchain task
wget -O /tmp/mar.tar.zst https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/BRB5J1iESpW1wvSgykaJpQ/runs/0/artifacts/public%2Fbuild%2Fmar-tools.tar.zst
tar xvf /tmp/mar.tar.zst -C /usr/bin --strip=1
# Run the zucchini script with required arguments
python3 /work/taskcluster/docker/partials-zucchini/make_incremental_zucchini.py \
--workdir=/workspace \
--to-mar=/workspace/target.complete.mar \
--arch=x86_64 \
--locale=en-US \
--target=/workspace/artifacts/ \
'--from-mars-json=[{"url":"http://ftp.stage.mozaws.net/pub/firefox/candidates/68.0-candidates/build2/update/linux-x86_64/en-US/firefox-68.0.complete.mar","update_number":1,"dest_mar":"target-68.0.partial.mar","previousVersion":"68.0"}]' \
--mar-channel-id=firefox-mozilla-release \
--branch=try \
--cert-path=/workspace/keys/dep.pubkey \
--allow-staging-urls \
--to-mar-url=https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/F8gaO4HjR5q8eNxyWp_GxA/artifacts/public/build/target.complete.mar
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment