archive rebuild jenkins job
Open, Needs TriagePublic

Description

We quite badly need an easy way to rebuild a package in an archive.

Use cases:
David would like to use gammaray. Gammaray depends on private Qt API and so can't be installed without a rebuild.
Scarlett would like to build appstream which depends on several dependencies, these currently need git repos created, sources imported into git and jobs created with overridden tars before they can be compiled.

We should be able to just add an archive and package name to the projects yaml file and it'll create jobs which download the source from that archive and rebuild it for our archive.

e.g.

  • ubuntu
    • yakkety
      • hello

Will create a job which downloads the latest hello package from Yakkety and recompiles it.

It should also work for Debian archive and Launchpad PPAs at least.

It should be possible to override the archive downloader and just point to a .dsc file, this could also be used before the archive downloaded is coded.

ci-tooling/lib/projects/factory/ needs a new archive factory class
ci-tooling/lib/ci/ needs a new build module for archive packages
jenkins-jobs/sourcer.rb needs to handle the archive type and create jobs without any SCMs
ci-tooling/lib/projects.rb needs to handle projects without a source tree checkout
ci-tooling/nci/sourcer.rb needs to handle the new type
and of course everything needs tests

jriddell created this task.Oct 20 2016, 3:01 PM
jriddell moved this task from Discussing to Doing on the Neon board.Oct 21 2016, 1:15 PM
sitter added a subscriber: sitter.Oct 27 2016, 9:51 AM

It should be possible to override the archive downloader and just point to a .dsc file, this could also be used before the archive downloaded is coded.

There literally is no use case for this once the archive download is coded, so this is a waste of time and the archive download should be coded in that time instead.

ci-tooling/lib/ci/ needs a new build module for archive packages

I am assuming what you mean is a that this needs a new fetcher?

ci-tooling/lib/projects.rb needs to handle projects without a source tree checkout

No. Source tree checkout in this case is grabbing the latest source and unpacking it. Otherwise the project can't be properly injected in the dep tree.

This is in doing for 5 months. Why?

jriddell moved this task from Doing to Ready To Do on the Neon board.Jun 16 2017, 11:08 AM