Opened 14 years ago
Last modified 13 years ago
#669 new enhancement
Support of build result "Skipped" + user-defined labels for build steps + hiding of build steps
Reported by: | fbrettschneider@… | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | 0.6.1 |
Component: | General | Version: | 0.6 |
Keywords: | Cc: | techtonik@… | |
Operating System: | BSD |
Description
My situation: 2 platforms for building the two components of our firmware package, plus 1 platform for testing such version of a package. A 4-steps build in the recipe. This leads to the following build table:
changeset | microcontroller firmware | PC frontend | Test of the package |
[123457] | cleanup | cleanup | cleanup |
update | update | update | |
build | build | build | |
compose | compose | compose | |
[123456] | cleanup | cleanup | cleanup |
update | update | update | |
build | build | build | |
compose | compose | compose |
- Both build platforms, microcontroller firmware and PC frontend, do a normal makeclean+svn-update+compiling/linking, and after their build they copy the executables to a version directory in the compose step.
- Platform Test of the package
- does nothing in step cleanup.
- Second, in step update, it is waiting until both firmware files (of the other 2 platforms) appear in the version directory. I use a self-written program Watchandwait for that waiting. Watchandwait is blocking and waiting until it returns
- true as soon as both other compose steps succeed their compose steps
- failed as soon as a new revision has been committed.
- This way either
- next we run some software tests in step build and report a release-ready version in step compose
- or we skip this revision and try to test the next new revision
- The whole thing handles our high svn-commit frequency and calls the test system only for the current latest revision.
You need to apply the attached patch and also you need to extend the slave configurations a bit to support such skipping.
In my example you need to have a slave config file for platform Test of the package like this:
[os] name=Tests version=v0.1 family=Foo [repository] branch=trunk [stepconfig] Cleanup=__hide__ Update=Watchandwait for completeness in version dir Build=call Test engine Compose=report new release candidate [markasskippedonfail] whenstepcount=2
- Since for example step build has different meanings in each Bitten platform configuration, we can define labels for the displayed step names in this file (see section [stepconfig] from above).
- The step where we want to display a failed as state "Skipped" is defined via section [markasskippedonfail].
- step cleanup does nothing and has no meaning for platform Test of the package. That's why we hide it in the table via that keyword __hide__
The whole patch leads to the following Bitten build table:
changeset | microcontroller firmware | PC frontend | Test of the package |
[123457] | cleanup | cleanup | Watchandwait for completeness in version dir |
update | update | call Test engine | |
build | build | report new release candidate | |
compose | compose | ||
[123456] | cleanup | cleanup | Watchandwait for completeness in version dir |
update | update | call Test engine | |
build | build | report new release candidate | |
compose | compose |
Such table is more readable. In case [123456] has been skipped, that build ends on step Watchandwait for completeness in version dir and the whole table cell appears in blue, and the Bitten build is reported as 'Skipped'!
Attachments (2)
Change History (5)
Changed 14 years ago by fbrettschneider@…
Changed 14 years ago by fbrettschneider@…
comment:1 Changed 14 years ago by hodgestar
- Type changed from defect to enhancement
comment:2 Changed 14 years ago by fbrettschneider@…
- Milestone changed from 0.6.2 to 0.6.1
comment:3 Changed 13 years ago by anatoly techtonik <techtonik@…>
- Cc techtonik@… added
ready-to-use, no need to delay after 0.6.1