Page MenuHome

Make release builds on buildbot
Open, NormalPublic

Description

Making release builds should be fully automated and part of continuous integration, so we can find issues early and do bug fix releases quickly.

The following could get us there:

  • Modify buildbot packing scripts so they can optionally make release bundles and installers.
  • When asking buildbot to do build of a release branch, automatically make release bundles and installer, and upload files to another location.
  • it and svn update steps would need modifications, or get combined into a single step with a Python script for easier control.
  • Support code signing: T67054 T66998
  • Test building blender-v2.81-release branch once created, and verify it generates correct packages

Event Timeline

Brecht Van Lommel (brecht) lowered the priority of this task from Needs Triage by Developer to Normal.Jul 16 2019, 1:58 PM
Brecht Van Lommel (brecht) created this task.

From my side of things, its stupidly boring, It can (and should) easily be done by a computer

I can walk you through a regular release since it be good to have this written down somewhere in case I am unavailable for a release.

prep:
-Make sure ../lib has the right libs checked out, switching branches in svn isn't a cheap operation (downloads a new copy), so I tend to get this done early on
-Remove any previous build folders: no incremental builds allowed

on actual release day:

git pull 
git checkout release_branch_from_ahoy
make update
make showhash (and validate it matches the hashes from the ahoy)
make release 2017 x64 with_tests packagename packagename_from_ahoy [*1]
make full [*2] 2017 x86 with_tests packagename packagename_from_ahoy [*1]

and in the respective build folders when done I run

ctest -C Release -V -V -O Test_X86/X64.log
cpack -G ZIP
cpack -G WIX [*3]

If we wanted to code sign the things needed to be codesigned would be the blender.exe (can be handled by cmake, there is some tooling in place, but i'm unsure how well it still works with the prevalence of EV certs with usb dongles) and the final .msi installer (we'd have to script this, in the builbot script)

[*1] Only the base part, if ahoy says blender-2.80rc1-<platform>. this would be set to blender-2.80rc1 cmake will add the platform specifier on its own.
[*2] full for x86, since it will error out building the cubins.
[*3] Only make an .msi for final releases, not for nightlies, not for TB's or RC's just final and a/b/c releases. The versioning scheme we use *WILL* cause 'this product is already installed' issues if we release an msi for anything else, and this will flood the tracker with tickets)