Skip to content

Building Linux packages for Bloom

Steve McConnel edited this page Feb 17, 2015 · 13 revisions

Building packages for Bloom is a semi-automated process. The packages itself can be built on the internal Jenkins server, but then need to be signed and uploaded manually.

There are currently two jobs on the internal Jenkins server that build Bloom packages:

  • Bloom_Packaging-Linux-all-3.0-release builds the Version3.0 branch (package name: bloom-desktop)
  • Bloom_Packaging-Linux-all-master-release builds the master branch (package name: bloom-desktop-unstable)

Prerequisites

You'll need a login on the internal Jenkins, together with the permissions to trigger a build for the Bloom package jobs. You'll also need the permission to upload a package to llso or pso.

Download the releasepackage script as well as the sample config file. Rename the sample config file to releasepackage.config and insert the correct values.

DEBSIGNKEY specifies the gpg key that should be used to sign the packages. You can probably find it by running gpg --list-secret-keys | grep sec. This lists something like:

sec   2048R/12345678 2011-09-14

You want the part after the slash, e.g. in this case it would be: DEBSIGNKEY=-k12345678.

Check dependencies

Before starting a package build, check the dependencies on TC and make sure that the tags on the dependent jobs are at the correct build.

Check that we have current packages of Mono and Libgdiplus (and other dependent packages) at the desired destination (llso-experimental (nightly packages), llso (alpha packages), pso-experimental (beta packages), or pso (released packages)). If necessary create and tag these packages.

Build package

Start a package build on the internal Jenkins by opening the build job page and clicking on "Build with Parameters". Usually you probably want to set the PackageBuildKind to Release.

Mark the Jenkins build

After the package build on Jenkins is finished, open the details page of this build and click "Add description". Enter the description: "Package 3.0.358 (Beta 4)" (of course adjusting the build number (358) and beta version (Beta 4)). Click Submit, then "Keep this build forever"

Sign package

Run the following command to download the artifacts of the package build, sign them and upload them to the repo, in the example below to pso-experimental:

path/to/releasepackage --component experimental --repo pso bloom

(This is the releasepackage file that you downloaded earlier. You need to make it executable first by something like "chmod +x path/to/releasepackage".)

Tag source code

Tag the source code at the commit the package was built with (42b1bd for package bloom-desktop_3.0.358.42b1bd) and push that to GitHub:

git fetch origin
git tag -a -m "Bloom 3.0 Beta-4 release (Linux)" bloom-3.0-linux-beta-4 42b1bd
git push origin bloom-3.0-linux-beta-4