P4 Plugin for Jenkins manages Perforce workspaces; synchronising code and polling/triggering builds. The plugin supports:
- Perforce authentication
- Perforce workspace management
- Synchronisation behaviour
- Polling and filtered builds
- External review tools (Swarm)
- Change-list browsing
- Labeling builds (Tagging)
- External repository browsers (P4Web, Swarm)
- Submit assets back to Perforce (Publish)
- Jenkins 1.509 or greater.
- Perforce Server 2012.1 or greater.
- Minimum Perforce Protection of 'open' for the Jenkins user.
- If you wish to use the Review Build feature you will need Swarm.
- Swarm 2014.2 or greater is required to support Jenkins authentication.
- Some parameters are not available during Polling. As a result these variables will not get expanded leading to unexpected results (e.g. new workspaces being created resulting in continuous polling). Jenkins job and multi configuration parameters should be expand, but custom or parameterised build variables are unlikely to be available.
The plugin makes use of the Jenkins Credential store making it easier to manage the Perforce Server connection for multiple Jenkins jobs. Perforce Server credentials must be added to the Global or a user defined domain, using one of the two supported Perforce Credentials: 'Perforce Password Credential' or 'Perforce Ticket Credential'.
All Perforce Credential types support SSL for use on Secured Perforce Servers; to use just check the SSL box and provide the Trust fingerprint.
Perforce workspaces are configured on the Jenkins Job configuration page and support the following behaviours:
- Template & Stream
In this mode the workspace View is generated using the specified template workspace or stream. The name of the workspace is generated using the Workspace Name Format field and makes it an ideal choice for matrix builds.
Perforce will populate the workspace with the file revisions needed for the build, the way the workspace is populated is configured on the Jenkins Job configuration page and support the following behaviours:
- Sync only
Perforce will not attempt to cleanup the workspace; the sync operation will update all files (as CLOBBER is set) to the required set of revisions. If the populating the 'have' table options is enabled then the 'have' list will be updated.
Please refer to the README for more information.