The Preflight plugin provides steps that can be used for developer Preflight builds
The preflight client first starts a simple file server.
First, The server is used to transfer source files from the user desktop to a build agent and to transfer build artifacts from the build agent to the user desktop.
Next, the preflight client requests anthill to perform a build. It is expected that the build will have special preflight transfer steps already configured.
- One step will request source files from the preflight client that originated the build and lay them down in the workspace directory.
- The second step will send artifacts from the agent back to the preflight client.
The basic model for a preflight workflow is this.
- Check out source.
- Transfer modified source files from the preflight client. These files will overwrite the pristine copy.
- Run build commands.
- Transfer build artifacts to the preflight client.
- Alternatively, the source checkout step could be skipped altogether and the preflight client will provide all source files.
In normal usage, the preflight system depends on steps added to the normal build workflow. These steps are in the Preflight folder:
- “Transfer Source Step” and
- “Transfer Artifacts Step”.
These steps should be added at appropriate points in your build job.
All steps, including preflight steps, have preflight flags in the “Additional Options” section of the step configuration. The first, “Run in Preflight”, controls if the step is executed in a preflight build. Most steps will leave this on the default, true. The main exception would be artifact publishing steps. Artifacts from preflight builds are often not preserved on the server.
The second option, “Run in Preflight Only”, controls if the step is executed only in a preflight build. Normal builds do not execute steps with set to true. By default, this option is false and most steps will use this setting. The exceptions are the two preflight steps. These should only be used in a preflight a build as the communicate with the preflight client. When configuring these steps, set “Run in Preflight Only” to true.
The preflight flags are not limited to any particular steps. This is useful, for example, for skipping packing steps not useful to a preflight user or publishing preflight artifacts to special artifact sets.
The preflight client controls what files are sent and what files are received with command line options. For sending source files, “-i” will add an include pattern and “-x” will add an exclude pattern. For receiving files, the options are similiar: “-I” will add an artifact include pattern and “-X” will add an exclude pattern (note the difference is case).
Here’s a simple example:
C:\>preflight build -p petstore -w "build trunk" -i "src/**" -x "src/conf/**" -I "dist/*.war" -X "dist/util.war"
This command will run the “build trunk” workflow of the “petstore” project. All source files will be included except those in src/conf. All WAR files in dist will be returned, except for util.war.