Wikipedia: Continuous integration (CI) is the practice, insoftware engineering, of merging all developer working copies with a sharedmainlineseveral times a day.
Me: Running repetitive development activities in controlled environment and periodic manner.
What?
CI solutions
Jenkins (OSS fork from Hudson)
Hudson (Maintained by Oracle)
Travis CI (OSS solution hosted by Github)
Bamboo (Atlassian)
TeamCity (JetBrains)
Why Jenkins?
Popular
Versatile(600+ plugins)
Active community & development (+LTS)
For What?
Testing
Unit testing
Functional testing
Integration testing
Performance testing
Static analysis
Building
Packaging (.tgz .wgt .exe .dmg ...)
Releasing (tag, package, publish)
Publishing (doc, api, package)
Deployment
And other repetitive or automated tasks...
Why?
... we already have a Grunt ?
#!/bin/shgrunt test build
Build: Grunt / Ant / Maven / Bash / Make /...
Test: Lint / Karma / Selenium / Sauce Labs /...
Release: Gitosis / Github / NPM / ...
Deploy: SSH / Fabric / ...
So Why?
Environment
Clean & controlled
Operating systems (Linux, Mac OS X, Windows)
Different versions and dependencies (os, version, module, ...)
Integrations
Long or resource hungry runs
Build artefacts(also statistical data)
Packages
Reports
Features
Notifications
Automated, manual and periodic
Integrations (Jenkins comes with API and different clients)