In order to customize steps, we should be able to have external properties depending on the builder, schedulers or slaves.
For example, if I want to use the same builder on different platforms, I may wish to use slave dependent properties/options for my steps.
Furthermore, I sometimes might want to do a full build with a full checkout.
slave('linux1','pw1',properties={'os':'linux','arch':'x86','p':'32'})
slave('linux2','pw2',properties={'os':'linux','arch':'ia64','p':'64'})
slave('aix1','pass',properties={'os':'aix','arch':'ppc','p':'64'})
scheduler(...,properties={'clean','none'})
scheduler(...,properties={'clean','libs'})
scheduler(...,properties={'clean','full'})
addStep(...,["make",WithProperties("%s","clean")])
addStep(...,["build",WithProperties("%s","os")]