Continuous Integration (CI)

As more enterprises expand their teams working on continuous integration (CI), deployment, and delivery, there is an increasing demand to find the best solution to fit their deployment needs.

Jenkins vs Bamboo

Jenkins and Bamboo are currently the two leading platforms for CI deployment and delivery.

  • As an open source solution, Jenkins shines for anyone developing on a budget and is a simple and standalone continuous integration tool that is backed by a really supportive community. It was known as a better alternative to CruiseControl.
  • Atlassian’s Bamboo really shines for developers who are already using other Atlassian products such as Jira and Bitbucket. Today’s leading Static Code Analysis (SCA) solutions (belonging to the SAST methodology) integrate with Bamboo out of the box to provide high quality static code analysis in a smooth, simple to operate environment.

Jenkins

  • It is a server-based system that runs in servlet containers such as Apache Tomcat.
  • It supports version control tools, including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCase and RTC.
  • It can execute Apache Ant, Apache Maven and sbt based projects as well as arbitrary shell scripts and Windows batch commands.
  • Its functionality can be extended with plugins.
  • Its builds can be triggered by various means:
    1. by commit in a version control system,
    2. by scheduling via a cron-like mechanism,
    3. by requesting a specific build URL.
    4. can also be triggered after the other builds in the queue have completed.

PhantomJS

PhantomJS is headless testing of web applications, itself is not a test framework, it is only used to launch the tests via a suitable test runner. It is a headless WebKit scriptable with a JavaScript API. It is suitable for general command-line based testing.

Using PhantomJS with CI system such as Jenkins or TeamCity does not require special setup. Make sure PhantomJS is installed properly on the slave/build agent and it is ready to go.

Since PhantomJS is purely headless on Linux, the agent can run on an installation without any GUI. This means, a barebone Linux system without X11 is not a problem for PhantomJS. It makes it possible to spawn light build agents on Amazon EC2 or Heroku instances.

Release version

  • Create a release branch with the following naming convention: release/[major.minor]. See the following example of commands for creating a branch for release 1.1.0:
git checkout -b release/1.1
git push -u origin release/1.1

Run the following command which will update the package.json version number, create a commit with the provided message, and push the changes to the release branch including the new git tag.

yarn version --new-version [major | minor] --message 'ESALES-98 Bumping version to %s'

This command will produce a Git commit and also push the changes to the repository so you should see activity in your command line that indicates that behavior.

sometimes 'yarn version ...' does not work, update yarn or try 'npm version ...'

results matching ""

    No results matching ""