ReleaseEngineering/How To/Generate partial updates: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
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, where XXXXXX is the bug number for the request
* 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.


== 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, where XXXXX is the bug number for the request
* 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.


= 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
#  and XXXXXX is the bug number


  # 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 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 149: Line 148:
   
   
  # all platforms
  # all platforms
  mkdir bugXXXXXX; cd $_
  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 154:
  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.
Line 180: Line 179:
   --exclude=* \
   --exclude=* \
   /pub/mozilla.org/firefox/candidates/$NEWV-candidates/build$BUILD/ \
   /pub/mozilla.org/firefox/candidates/$NEWV-candidates/build$BUILD/ \
   /tmp/bugXXXXXX/
   /tmp/bug$XXXXXX/
   
   
  cd /pub/mozilla.org/firefox/candidates/$NEWV-candidates/build$BUILD/update
  cd /pub/mozilla.org/firefox/candidates/$NEWV-candidates/build$BUILD/update
Line 211: Line 210:


On a linux slave
On a linux slave
  mkdir /builds/slave/bugXXXXXX/; cd $_
  mkdir /builds/slave/bug$XXXXXX/; cd $_
  hg clone http://hg.mozilla.org/build/tools
  hg clone http://hg.mozilla.org/build/tools
  hg -R tools update -C -r FIREFOX_13_0_1_RELEASE_RUNTIME
# eg FIREFOX_13_0_1_RELEASE_RUNTIME
  hg -R tools update -C -r FIREFOX_VER_RELEASE_RUNTIME
  cd tools/release/updates
  cd tools/release/updates
  curl -sL https://bugzilla.mozilla.org/attachment.cgi?id=637065 | patch -p3
  curl -sL https://bugzilla.mozilla.org/attachment.cgi?id=$ZZZZZZ | patch -p3
  cd ..
  cd ..
   
   
  # adjust platforms as necessary
  # adjust platforms as necessary
  bash final-verification.sh mozRelease-firefox-{win32,mac64}-oneoff.cfg 2>&1 |tee log
  bash final-verification.sh mozRelease-firefox-{win32,mac64}-$XXXXXX.cfg 2>&1 |tee log


Check for errors, eg 404's.
Check for errors, eg 404's.
Confirmed users
4,293

edits

Navigation menu