[LU-17064] Allow limited builds Created: 31/Aug/23 Updated: 05/Oct/23 |
|
| Status: | Open |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Minor |
| Reporter: | Andreas Dilger | Assignee: | WC Triage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||
| Severity: | 3 | ||||
| Rank (Obsolete): | 9223372036854775807 | ||||
| Description |
|
It would be useful to allow Jenkins to do very limited builds for fortestonly patches with directories in the patch commit message. Build-Parameters: clientdistro=el7.9 Test-Parameters: fortestonly clientdistro=el7.9 serverversion=2.15.3 Since it isn't possible to do this (it will always start all of the builds) it seems possible to have lbuild check the directives in the commit message and just "exit 0" at the start of the build without actually building anything. This would also be useful for cases of patches which are based on an old parent (eg. to give an old build to a customer) that currently fail if the build support for a distro is not in the old code being built and fails the build instead of building for the available distros: 17:19:09 + error 'Target 4.18-rhel8.8 was not found.' 17:19:09 + local 'msg=Target 4.18-rhel8.8 was not found.' |
| Comments |
| Comment by Andreas Dilger [ 12/Sep/23 ] |
|
mdiep, as a starting point, I was thinking of replacing the "fatal 1 "Target $TARGET was not found."" and "fatal 1 "${LBUILD_DIR}/lbuild-$DISTROMAJ not found"" cases in lbuild with just an error message and "exit 0"? That would allow builds to finish without error when built on an old branch that doesn't have newer distro support, at the risk of not building some packages in rare cases. I think that is pretty unlikely and we would notice it as soon as testing could not be run? I couldn't see where the lbuild script had access to the Lustre sources, unless it is run in the Git tree itself? Then I could just use "git log -1" to get the commit message and look for Build-Parameters: lines in the output? |
| Comment by Gerrit Updater [ 21/Sep/23 ] |
|
"Andreas Dilger <adilger@whamcloud.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/52448 |
| Comment by Andreas Dilger [ 21/Sep/23 ] |
|
@minh, one strange thing I noticed with my patch is that it seems the ubuntu2204 builder is not using the lbuild script from the current tree, but a separate one? It is always doing a full build and not printing any debug messages from the patch... |
| Comment by Minh Diep [ 21/Sep/23 ] |
|
Right, for ubuntu* it's just simply make debs |
| Comment by Andreas Dilger [ 22/Sep/23 ] |
|
But it still looks like the Ubuntu2204 build is running some variant "lbuild", but an old version of the script that is not the one from the build tree since there is no "lbuild-ubuntu2204" or similar version in the tree at all. |
| Comment by Andreas Dilger [ 05/Oct/23 ] |
|
Charlie, Minh thought that this functionality would be better to implement directly in the Jenkins Groovy scripting, like ATM-2884 because it would allow the non-builds to skip the queue entirely, rather than waiting in the queue and assigned a builder just to find that nothing is needed. Ideally, this would also allow a "trivial" keyword to allow building specifically the distro/arch that is used for Test-Parameters: trivial testing. The main goal here is to reduce the build and test time for patch series of 20 or 30 patches that contain a series of actually trivial changes like code movement and variable renaming. |