How to setup private builds on Offspring

The hwpacks built by LTs will usually include packages from a private PPA, and the only way to make them accessible to Offspring is by including the auth token for that PPA into the [sources] URL used in the hwpack config. Something like:

  [ste-ppa]
  sources-entry=http://<user>:<token>@private-ppa.launchpad.net/ste/ppa/ubuntu oneiric main

The above must not be made public, for obvious reasons, so the config branch must also be private -- only visible to the members of the LT.

For this to work, it's recommended that you register a new LP user with a newly created SSH key and subscribe it both to the private config branch and to the private PPAs used in your hwpack. That way we can give Offspring the new SSH private key and it will be able to fetch the config branch and with that it can get the packages from the private PPAs.

Here's how you'd set this up:

Create the LP user

You should ask Loïc, Kiko, Stephen or Joey to create an email alias of the form <landing-team> N.offspring@linaro.org (e.g ste.offspring@linaro.org for the first STE LT, ste2.offspring@linaro.org for the second [when we have one], and so on). That alias should point to the email address of the LT's tech lead.

Using the email address created above, register a new LP account using the same username as in the email address (e.g. ste.offspring) and upload a new ssh key to it.

Create the private config branch

The simpler way to do this is to create an empty branch locally, push it to lp:~<landing-team>/linaro-images/<branch-name> and file a question asking for it to be made private. Once it's made private you can push the actual config to it.

Notice that if somebody branches off of the above branch and push it to a different location, it won't be private by default, so everyone should always push directly to the private branch.

Gluing it all together

Now you should subscribe the newly created user to the PPAs used in your hwpack, get the subscription URLs for them from Launchpad (e.g. https://launchpad.net/~ste.offspring/+archivesubscriptions) and use them in your hwpack config.

You'll also need to subscribe the newly created user to the private branch we created above.

That's all there is to do on Launchpad. Now we need to set up a private project on Offspring:

Make a private project

You can do that either when creating a new project or in the project's edit page. A private project needs an owner, and it's recommended that the LT's tech lead is the owner.

At this point you should also set the Launchpad ID to use when fetching the config branch (e.g. ste.offspring) and the private' SSH key you created above.

Automatically syncing private builds

If the Offspring project you created above has the same name as one of the companies for which we have a Landing team (e.g. samsung, ti, ste, freescale, arm), the build artefacts will be automatically synced to that LT's storage area on snapshots.linaro.org (e.g. snapshots.linaro.org/hwpacks/ste)

Defining the people who can see a private project and its builds

On a private project's main page you should see the group of users who can see it, together with a link to add/remove users to that group.

internal/archive/Platform/Infrastructure/OffspringPrivateBuilds (last modified 2013-08-23 12:12:21)