- Build Checks
- Unit Testing
- Behavior Testing
- Deployment
- Standardising and implementing testing procedures
- Build checks (verifying the build, i.e. everything has been compiled as expected )
- Behaviour vs Unit tests
- PHPUnit for php projects? Codeception allows Behaviour and unit tests
- QUnit, Jasmin, Mocha etc for javascript projects?
- Building everything as a 'package' i.e. Composer or NPM with build scripts and unit tests all configured using those.
- Rollback command for our shell scripts, basically to revert back to previous, or specific release (version) and re-deploy
- Jenkins + EC2
- BitBucket Pipelines
- Drone.io
- Any number of other paid for services
It's free and Open source, well supported.
The most popular open source solution to CI.
"Blue Ocean" plugin currently a beta looks like it's going to make the UI super nice.
1000+ community contributed plugins for deploying / building etc, which could make it easy / quick.
It means running a server, so the 'freeness' of it is counteracted by the need for us to maintain a server.
Min requirements are Java 8 , 1GB Ram, 50GB+ disk space
As far as I can tell, both build/test scripts AND deployment would need to be built into a single YAML file. i.e. no preset easy deploy methods.
It's new, not yet established, pricing may change in the new year when they launch it.
Interface currently is confusing, I cannot figure out if it's possible to have multiple build scripts or not.
I've had a quick look at this and it seems to be quite cost effective, they're quoted as saying that it's cheaper than Jenkins on EC2, plus it's hosted / managed. I've also briefly looked at several others (there are literally hundreds of CI(aaS)) and most of them seem more expensive than Drone.io so using this as the baseline.
$25 a month for 5 projects, $49 a month for unlimited projects (though 5 is probably enough for us at the moment)
Supports BitBucket (Travis does not). Built to be simple and extensible, definitely a nice way to start. Took 5 minutes to set up a working deploy script for one of my sites.
The ability to write build scripts in a variety of languages (Node, PHP) for Unit testing, using Docker containers if needed.
Can run phantomJS / Firefox / Chrome or Selenium for behavior tests.
Status Badges -> which we can embed in readme files to check current build status, also useful to build a Dev Dashboard to see all current build and test statuses for all projects.
The ability to set up multiple deployments on different branches so we could push to dev servers / live servers separately.
Can deploy via SSH or direct to S3, Heroku, AppEngine, dotCloud. SSH is probably most straight forward for our current infrastructure.
Email notifications on successful / failed builds
Their PHP image is Beta and 5.4. There are some known issues with running Composer on high volume build server. Not sure this will be a problem unless we start writing some PHP 7 apps that are in no way backwards compatible.