Edgewall Software
Modify

Opened 13 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:

changesetmicrocontroller firmwarePC frontendTest 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
  1. 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).
  2. The step where we want to display a failed as state "Skipped" is defined via section [markasskippedonfail].
  3. 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:

changesetmicrocontroller firmwarePC frontendTest 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)

skipped-state_and_hidesteps_patch.diff (11.5 KB) - added by fbrettschneider@… 13 years ago.
skippedExample.JPG (99.7 KB) - added by fbrettschneider@… 13 years ago.

Download all attachments as: .zip

Change History (5)

Changed 13 years ago by fbrettschneider@…

Changed 13 years ago by fbrettschneider@…

comment:1 Changed 13 years ago by hodgestar

  • Type changed from defect to enhancement

comment:2 Changed 13 years ago by fbrettschneider@…

  • Milestone changed from 0.6.2 to 0.6.1

ready-to-use, no need to delay after 0.6.1

comment:3 Changed 13 years ago by anatoly techtonik <techtonik@…>

  • Cc techtonik@… added

Add Comment

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The ticket will remain with no owner.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.