Merge ~michihenning/jenkaas-jobs:install-extra-packages-during-build into jenkaas-jobs:master
| Status: | Rejected |
|---|---|
| Rejected by: | Michał Sawicz |
| Proposed branch: | ~michihenning/jenkaas-jobs:install-extra-packages-during-build |
| Merge into: | jenkaas-jobs:master |
| Diff against target: |
147 lines (+21/-9) 10 files modified
.gitignore (+3/-0) jenkaas_jobs/yaml/build/build-0-fetch.sh (+6/-1) jenkaas_jobs/yaml/build/build-0-fetch.yaml (+5/-1) jenkaas_jobs/yaml/launchpad/lp-trigger-autolanding.yaml (+1/-1) jenkaas_jobs/yaml/launchpad/lp-trigger.yaml (+1/-1) tests/fixtures/launchpad/lp-one-trigger.xml (+1/-1) tests/fixtures/launchpad/lp-three-trigger-autolanding.xml (+1/-1) tests/fixtures/launchpad/lp-three-trigger.xml (+1/-1) tests/fixtures/launchpad/lp-two-trigger-autolanding.xml (+1/-1) tests/fixtures/launchpad/lp-two-trigger.xml (+1/-1) |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Michał Sawicz | Disapprove | ||
| dobey | Pending | ||
|
Review via email:
|
|||
Commit message
Make sure that install_packages is used during first build step, in case a dependency is added to a project config after the chroots were created.
Description of the change
While adding unity-scopes-api, I found that we need click-dev, which wasn't installed on the slaves.
Just adding click-dev to install_packages doesn't help, because that is used when the chroots are built. However, if we add a new project to our config and find that something extra needs to be installed, we can't fix it without modifying jenkaas-jobs because install_packages is expanded into prepare-
The easiest solution seems to be to also look at install_packages during build-0-fetch and call apt install. If the extra packages are installed already, it finishes very quickly and does not harm. If they are missing, they are added before the build kicks off.
I suspect that we could also remove install_packages from prepare-0-install altogether (but I didn't do that). install_packages has an effect only if a dependency for a project is known *before* the chroots are created, but that's generally not the case.
Thing is, that means running a NOOP `apt-get install` for 99% of the runs. IIUC this is needed in `debian/rules` clean?
I want to go in the direction bileto went and not run clean at all during source package builds. Would that work for you?