Assetricity uses a combination of cutting edge tools and technologies for thoroughly ensuring the quality of each build of our products:
- Pivotal Tracker for project management
- GitHub for version control
- Jenkins for continuous integration (CI)
- RSpec and Capybara for automated UI testing
- Amazon EC2 for cloud-based hosting
- Errbit for error logging
This keeps all source code fully tested and in sync across all of our development, staging and production environments. When source code changes are pushed to our GitHub source control server, our Jenkins CI server is automatically notified which starts a test build. Each successful test results in an automated deploy to our Amazon EC2 hosting environment.
Pivotal Tracker (Project and Task Management)
Assetricity uses Pivotal Tracker as a project and task management tool for our development cycles. Application features are broken down into stories that are driven by use cases. When code is committed to source control, it is linked with a Pivotal Tracker story, and stories are only marked as accepted by the Assetricity core development team when the feature passes both code and demonstration reviews.
GitHub (Version Control)
Assetricity uses GitHub as the centralized reference point for all codebases. In addition to source code management, GitHub also provides us with additional functionality for collaborative development and review.
Jenkins (Continuous Integration and Testing)
Our Jenkins CI server pulls down any new changes that have been pushed to GitHub by our developers, and runs all RSpec unit and Capybara feature tests against for each change. Every time a test suite is successfully executed, the total test coverage is calculated and graphed to help us identify any areas of the codebase that are missing tests. The CI server then invokes a Capistrano-based deploy and build process to our Amazon EC2 hosting environment.
Amazon EC2 (Application Hosting)
Our Amazon EC2 application hosting environment acts as a staging server where we review the quality and stability of each build of our products. During the build process, the application is packaged as a Java WAR (web application archive) file and then deployed to a Java Application Server connected to any database infrastructure. Once the build is deployed to the staging server, the Assetricity core development team reviews any newly committed features or bug fixes. If the build is deemed stable for a release, the build is tagged and can then be deployed to any production environments.
Errbit (Error Logging)
Our Errbit server is a error logging system that captures and presents all of the contextual detail whenever an unhandled error occurs within our products. Via the Airbrake protocol, the application is configured to automatically notify our Errbit server of any errors that occur. Our developers use this information to help identify, locate and reproduce bugs in the application in order to submit a bug report in Pivotal Tracker.