Agile Force One (A41): Architecture for continuous integration with Perforce

For organizations already using Perforce for their developments or new set ups, ds data systems provides A41 architecture for Agile developent based on continuous integration (CI). This architecture could be operated in company premises or in SaaS mode running in AWS.

Perforce is a version control tool (Software Version Management) that is responsible for managing the project code, organize, keep versions and document all changes that are made on it. It allows the organization of files in packages called blocks or streams, mix the code versions easily made by different developers, and return to a previous project state smoothly. It also offers the ability to work offline to later unify the code, in addition to a system of access control and security through different user roles. Each file is stored in the master repository that users can not modify directly, but they can recover locally spoilt or deleted code.

It is a product that can be integrated with different production systems and environments. This allows application development to be completely managed by the tool Perforce, without the need of developer control.


Below are a number of tools and components that make up a complete solution Agile development with Perforce.

  •  JIRA

Jira is a web application for bug tracking and management of development projects. It is also used in non-technical areas for managing tasks, thanks to its features for organizing workflows.

This tool, combined with Perforce, can generate jobs in Perforce quecorresponden to incidents created in Jira, allowing developers to link directly Perforce jobs Jira issues.

This makes a tool Jira notification and control acting on Perforce errors, and therefore the assignment of tasks and communication between users is much more specific.

Desarrollo agile2

When you create a job in Perforce from Jira, it has a number of features which provide guidance from the user that created it, to the state where the incidence is. Therefore, we get specific data of the problem and can proceed more easily to your resolution. You can also assign a treatment time of the incident, what person development team should take care of it and how critical is the issue.


Fisheye is a web application to display and control repositories. Lets see changes, revisions, tags and branches; find pieces of code, text, comments, authors and more.

If we use Fisheye to display the Perforce repository, you get an advantage, as it is very easy to integrate and displays all the code, how it has changed, when it changed and who did it. Therefore, we get specific monitoring of projects in detail for the changes to be doing.

Desarrollo agile3

When you add the Perforce plugin Fisheye, after a simple setup, you can start adding repositories, assign roles and search code.

Desarrollo agile4


Jenkins is a continuous integration web tool written in Java. Allows constructions (compilations and execution of tests) in short time intervals to detect faults projects ASAP.

Ant is a build tool for building and developing software. Usually used in Java projects for automating builds, its operation is based on XML files that specify all construction tasks.

Eclipse is an integrated development environment (IDE) for applications of all sizes. It is a text editor with syntax highlighting, but also allows the creation of projects, real-time compilation and execution of unit tests or JUnit tests.

Perforce works with all these development tools together, uniting and integrating their tasks. For Jenkins work with Perforce, simply add the Jenkins Perforce plugin. So, to create a new project in the application of continuous integration, selects as the repository of Perforce. Jenkins is responsible for synchronizing the repository and its compilation and construction schedule to meet the needs of the developer, whether he wants to make the building daily, weekly, or whenever there are changes to the code. These changes, when doing a build in Jenkins, are reflected in the change list, detailing who has made and the commentary has been about.

Desarrollo agile5

After creating the new project in Jenkins it must be assigned a compiler, the tool that will take care of doing the construction work. For this task, Ant is the right candidate, simply install the plugin and select Ant on Jenkins. Can be assigned directly to the characteristics of the project tasks that are to be run, as they can be compiled, creating directories, generating executables, etc..

Also test can be performed subsequently to the application of the construction project, and generating, from these, the results into a document. For large projects, this is highly recommended, and the remainder of testing and evaluation work to developers.

Finally, to create and structure the code, a good choice is Eclipse. Integrates with Perforce using a plugin to be installed in the development environment itself. You can create a project from scratch, modify an existing one in Perforce, organize application classes in packages and directories, and test and run different versions of the project.

Desarrollo agile6

In addition, Eclipse automatically generate the XML file you need Ant to build the project, which, just create the file and host it on the Perforce repository for the project to Jenkins continuous integration.

Definitely, Perforce is a very versatile tool that reduces the organizational work of the developer, and allows you to focus on the task of generating code. Management and construction versions of that code, Perforce makes a number of integrated tools such as those mentioned above.


Swarm is a flexible code collaboration platform built on top of the Perforce versioning service. Swarm's social coding features let you share creative ideas immediately, collaborate on the fly, and get early feedback from continuous integration and deployment. Swarm enables:

Activity Streams. Every project in Swarm has an activity stream. You'll see a description of the project, a list of members and followers, and a list of the branches defined for the project.

Contextual Code Conversations. Comments are the primary feedback mechanism in Swarm. Comments can be made on any changelist or review, or on any specific line of a text-based file.

Flexible Code Review Workflow. Ensure better team collaboration and faster delivery through pre- and post-commit reviews. Once a review is requested, reviewers can mark changes as needing revision, approved, rejected, or archived.

Vertical or Side-by-Side Diff. When you view a changelist or conduct a code review in Swarm, the files are presented as diffs, showing you how they have changed. Icons show whether a file was added, edited, or deleted.

Review Dashboard. Get a snapshot of review activities across all projects. Quickly see whether a change passed a test or not before looking at it in detail.

Issue Tracking. Perforce Jobs (e.g., bugs, requirements) can be assigned to a change or review.

Architecture sample video