Confirmed users
4,293
edits
No edit summary |
m (→Update Verify) |
||
| (12 intermediate revisions by 2 users not shown) | |||
| Line 10: | Line 10: | ||
* all locales are being generated, possibly only some of the platforms | * all locales are being generated, possibly only some of the platforms | ||
For the purposes of this doc we'll say the update will be between $OLDV and $NEWV build$BUILD. | For the purposes of this doc we'll say the update will be between $OLDV and $NEWV build$BUILD. The bug is $XXXXXX | ||
= Create config files = | = Create config files = | ||
| Line 17: | Line 17: | ||
* grab a copy of the release config, mozRelease-branch-patcher2.cfg, from your own CVS checkout or from [http://mxr.mozilla.org/mozilla/source/tools/patcher-configs/mozRelease-branch-patcher2.cfg?raw=1 mxr] | * grab a copy of the release config, mozRelease-branch-patcher2.cfg, from your own CVS checkout or from [http://mxr.mozilla.org/mozilla/source/tools/patcher-configs/mozRelease-branch-patcher2.cfg?raw=1 mxr] | ||
* verify that the file is up to date by checking the values of <tt>from</tt> and <tt>to</tt> in <tt><current-update></tt>, and the right buildN in the <tt>completemarurl</tt> of the <tt><releases></tt> block for the release being created | * verify that the file is up to date by checking the values of <tt>from</tt> and <tt>to</tt> in <tt><current-update></tt>, and the right buildN in the <tt>completemarurl</tt> of the <tt><releases></tt> block for the release being created | ||
* rename it to mozRelease-branch-patcher2-XXXXXX.cfg | * rename it to mozRelease-branch-patcher2-$XXXXXX.cfg | ||
To modify the config | To modify the config | ||
| Line 27: | Line 27: | ||
* if only some platforms are needed (eg windows), remove the other platforms from the <tt><platforms></tt> and <tt><exceptions</tt> blocks | * if only some platforms are needed (eg windows), remove the other platforms from the <tt><platforms></tt> and <tt><exceptions</tt> blocks | ||
Attach the file to the bug, request review. You'll download it again later. | Attach the file to the bug, request review. You'll download it again later using $YYYYYY for the attachment id. [https://bug768576.bugzilla.mozilla.org/attachment.cgi?id=637051 Example config]. | ||
== Update verify configs == | == Update verify configs == | ||
| Line 33: | Line 33: | ||
* grab a copy of the configs, either from your tools checkout or directly from hg.m.o ([http://hg.mozilla.org/build/tools/raw-file/default/release/updates/mozRelease-firefox-win32.cfg windows], [http://hg.mozilla.org/build/tools/raw-file/default/release/updates/mozRelease-firefox-mac64.cfg mac]) | * grab a copy of the configs, either from your tools checkout or directly from hg.m.o ([http://hg.mozilla.org/build/tools/raw-file/default/release/updates/mozRelease-firefox-win32.cfg windows], [http://hg.mozilla.org/build/tools/raw-file/default/release/updates/mozRelease-firefox-mac64.cfg mac]) | ||
* verify the configs are up to date by checking the current release is referenced in the 2nd line, and that the to definition there refers to the right buildN path | * verify the configs are up to date by checking the current release is referenced in the 2nd line, and that the to definition there refers to the right buildN path | ||
* rename to mozRelease-firefox-win32-XXXXXX.cfg | * rename to mozRelease-firefox-win32-$XXXXXX.cfg | ||
To modify the configs: | To modify the configs: | ||
| Line 44: | Line 44: | ||
* repeat for each platform | * repeat for each platform | ||
Attach the files to the bug as a patch (eg via mq), request review. You'll download it again later. | Attach the files to the bug as a patch (eg via mq), request review. You'll download it again later using $ZZZZZZ as the attachment id. [https://bug768576.bugzilla.mozilla.org/attachment.cgi?id=637065 Example config]. | ||
= Generate the partials = | = Generate the partials = | ||
| Line 50: | Line 50: | ||
cd /builds/slave/rel-m-rel-updates/build | cd /builds/slave/rel-m-rel-updates/build | ||
mv temp/ temp.automated_run/ | mv temp/ temp.automated_run/ | ||
curl -sL https://bugzilla.mozilla.org/attachment.cgi?id=YYYYYY \ | curl -sL https://bugzilla.mozilla.org/attachment.cgi?id=$YYYYYY \ | ||
> patcher-configs/mozRelease-branch-patcher2-XXXXXX.cfg | > patcher-configs/mozRelease-branch-patcher2-$XXXXXX.cfg | ||
# where YYYYYY is the attachment number for the patcher config | # where YYYYYY is the attachment number for the patcher config | ||
# get source and build tools - a checksum based run doesn't have these | # get source and build tools - a checksum based run doesn't have these | ||
| Line 61: | Line 60: | ||
perl patcher2.pl --build-tools-hg --tools-revision=FIREFOX_VER_RELEASE \ | perl patcher2.pl --build-tools-hg --tools-revision=FIREFOX_VER_RELEASE \ | ||
--app=firefox --brand=Firefox \ | --app=firefox --brand=Firefox \ | ||
--config=patcher-configs/mozRelease-branch-patcher2-XXXXXX.cfg | --config=patcher-configs/mozRelease-branch-patcher2-$XXXXXX.cfg | ||
Get the complete mar files (~45 mins for windows & mac) | Get the complete mar files (~45 mins for windows & mac) | ||
perl patcher2.pl --download \ | perl patcher2.pl --download \ | ||
--app=firefox --brand=Firefox \ | --app=firefox --brand=Firefox \ | ||
--config=patcher-configs/mozRelease-branch-patcher2-XXXXXX.cfg | --config=patcher-configs/mozRelease-branch-patcher2-$XXXXXX.cfg | ||
Generate unsigned partial updates (90 mins??) | Generate unsigned partial updates (90 mins??) | ||
perl patcher2.pl --create-patches --partial-patchlist-file=patchlist.cfg \ | perl patcher2.pl --create-patches --partial-patchlist-file=patchlist.cfg \ | ||
--app=firefox --brand=Firefox \ | --app=firefox --brand=Firefox \ | ||
--config=patcher-configs/mozRelease-branch-patcher2-XXXXXX.cfg | --config=patcher-configs/mozRelease-branch-patcher2-$XXXXXX.cfg | ||
Make a backup of the new partials/snippets, destroy snippets (< 5 min) | Make a backup of the new partials/snippets, destroy snippets (< 5 min) | ||
| Line 83: | Line 82: | ||
IP=`/sbin/ifconfig eth0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'` | IP=`/sbin/ifconfig eth0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'` | ||
ssh -oBatchMode=no cltbld@buildbot-master12.build.mozilla.org \ | ssh -oBatchMode=no cltbld@buildbot-master12.build.mozilla.org \ | ||
"curl --fail -k -Fslave_ip=$IP -Fduration=3600 --user reda:cted \ | |||
https://signing1.build.scl1.mozilla.com:9120/token | https://signing1.build.scl1.mozilla.com:9120/token" \ | ||
> /builds/slave/rel-m-rel-updates/token | > /builds/slave/rel-m-rel-updates/token | ||
rm /builds/slave/rel-m-rel-updates/nonce | rm /builds/slave/rel-m-rel-updates/nonce | ||
| Line 103: | Line 102: | ||
perl patcher2.pl --create-patchinfo \ | perl patcher2.pl --create-patchinfo \ | ||
--app=firefox --brand=Firefox \ | --app=firefox --brand=Firefox \ | ||
--config=patcher-configs/mozRelease-branch-patcher2-XXXXXX.cfg | --config=patcher-configs/mozRelease-branch-patcher2-$XXXXXX.cfg | ||
Snippet verification (< 1 min) | Snippet verification (< 1 min) | ||
| Line 118: | Line 117: | ||
ftp/firefox/nightly/$NEWV-candidates/build$BUILD/update \ | ftp/firefox/nightly/$NEWV-candidates/build$BUILD/update \ | ||
ffxbld@stage.mozilla.org:/pub/mozilla.org/firefox/nightly/$NEWV-candidates/build$BUILD/ | ffxbld@stage.mozilla.org:/pub/mozilla.org/firefox/nightly/$NEWV-candidates/build$BUILD/ | ||
# after verifying output replace -nav with -av to push for real | |||
Upload snippets (~ 1 min) | Upload snippets (~ 1 min) | ||
| Line 144: | Line 144: | ||
# windows | # windows | ||
cd /e/builds/ | cd /e/builds/moz2_slave | ||
# else | # else | ||
cd /builds/slave | cd /builds/slave | ||
# all platforms | # all platforms | ||
mkdir | mkdir bug$XXXXXX; cd $_ | ||
hg clone http://hg.mozilla.org/build/tools scripts | hg clone http://hg.mozilla.org/build/tools scripts | ||
hg -R scripts update -C -r FIREFOX_13_0_1_RELEASE_RUNTIME | hg -R scripts update -C -r FIREFOX_13_0_1_RELEASE_RUNTIME | ||
| Line 155: | Line 155: | ||
cd scripts/release/updates/ | cd scripts/release/updates/ | ||
# ZZZZZZ is the attachment number for the verify config | # ZZZZZZ is the attachment number for the verify config | ||
wget -O- https://bugzilla.mozilla.org/attachment.cgi?id=ZZZZZZ | patch -p3 | wget -O- https://bugzilla.mozilla.org/attachment.cgi?id=$ZZZZZZ | patch -p3 | ||
# mac | # mac | ||
bash verify.sh -c mozRelease-firefox-mac64-XXXXXX.cfg 2>&1 |tee uv.log; echo $? | bash verify.sh -c mozRelease-firefox-mac64-$XXXXXX.cfg 2>&1 |tee uv.log; echo $? | ||
# win32 | # win32 | ||
bash verify.sh -c mozRelease-firefox-win32-XXXXXX.cfg 2>&1 |tee uv.log; echo $? | bash verify.sh -c mozRelease-firefox-win32-$XXXXXX.cfg 2>&1 |tee uv.log; echo $? | ||
Verify exit code is 0, reboot slave to get back in service. | Verify exit code is 0, reboot slave to get back in service. | ||
= Configure bouncer = | = Configure bouncer = | ||
Add a product: Firefox-$NEWV-Partial-$OLDV | |||
Add locations: | |||
osx /firefox/releases/$NEWV/update/mac/:lang/firefox-$OLDV-$NEWV.partial.mar | |||
win /firefox/releases/$NEWV/update/win32/:lang/firefox-$OLDV-$NEWV.partial.mar | |||
= Redo SUMS files = | = Redo SUMS files = | ||
... so that they include the new partials. | |||
# ffxbld@stage | |||
# backup in case of disaster, adjust platforms as required | |||
rsync -av --include=*SUMS* \ | |||
--include=win32 --include=win32/* --include=win32/*/*checksums \ | |||
--include=mac --include=mac/* --include=mac/*/*checksums \ | |||
--exclude=* \ | |||
/pub/mozilla.org/firefox/candidates/$NEWV-candidates/build$BUILD/ \ | |||
/tmp/bug$XXXXXX/ | |||
cd /pub/mozilla.org/firefox/candidates/$NEWV-candidates/build$BUILD/update | |||
for f in `find -name firefox-$OLDV-$NEWV.partial.mar`; do | |||
csfile=../`dirname $f`/firefox-$NEWV.checksums | |||
echo $csfile | |||
for hash in sha512 md5 sha1; do | |||
echo `openssl dgst -$hash $f | cut -d' ' -f2` $hash `stat -c '%s' $f` update/$f >> $csfile | |||
done | |||
done | |||
Then force build the release-mozilla-release-firefox_checksums builder on the buildbot master. If that fails there are uber-painful manual steps in [https://bug768576.bugzilla.mozilla.org/attachment.cgi?id=637737 here]. | |||
= Push to mirrors = | = Push to mirrors = | ||
If you haven't released yet there isn't anything to do here, because everything will get pushed by the automation when the go comes. If the release has shipped already you need to push the new partials out. | |||
From a build slave: | |||
ssh -oIdentityFile=~/.ssh/ffxbld_dsa ffxbld@stage.mozilla.org | |||
rsync -nav --exclude=*tests* --exclude=*crashreporter* --exclude=*.log --exclude=*.txt --exclude=*unsigned* \ | |||
--exclude=*update-backup* --exclude=*partner-repacks* --exclude=*.checksums --exclude=*.checksums.asc \ | |||
--exclude=logs --exclude=jsshell* --exclude=*.zip --exclude=*.zip.asc --exclude=contrib* \ | |||
/pub/mozilla.org/firefox/nightly/$NEWV-candidates/build$BUILD/ /pub/mozilla.org/firefox/releases/$NEWV/ | |||
Verify the list is correct - expect the new partial.mar's + asc files, the SUMS files and their asc's, and the directories containing them. | |||
'''Then remove the n from -nav to push for real'''. This should take < 15 min to copy info firefox/releases/; allow 3 hours for a reasonable number of mirrors to rsync it. | |||
= Final verification = | = Final verification = | ||
Verify bouncer is working OK and mirrors are responding properly. | |||
On a linux slave | |||
mkdir /builds/slave/bug$XXXXXX/; cd $_ | |||
hg clone http://hg.mozilla.org/build/tools | |||
# eg FIREFOX_13_0_1_RELEASE_RUNTIME | |||
hg -R tools update -C -r FIREFOX_VER_RELEASE_RUNTIME | |||
cd tools/release/updates | |||
curl -sL https://bugzilla.mozilla.org/attachment.cgi?id=$ZZZZZZ | patch -p3 | |||
cd .. | |||
# adjust platforms as necessary | |||
bash final-verification.sh mozRelease-firefox-{win32,mac64}-$XXXXXX.cfg 2>&1 |tee log | |||
Check for errors, eg 404's. | |||
= Pushsnip = | = Pushsnip = | ||
Once RelMan gives the go | |||
# ffxbld@aus3-staging | |||
backupsnip Firefox-$NEWV-build$BUILD-$OLDV-partial | |||
pushsnip Firefox-$NEWV-build$BUILD-$OLDV-partial | |||
Both operations should be quick because they only operate on a single version. | |||
This will be done after the main push of Firefox-$NEWV-build$BUILD if the partials where generated prior to release. | |||