In my previous articles, I described Cloudify’s integration with Jenkins, as well as with CircleCI and GitHub Actions. These integrations provide easy access to Cloudify from within some of the most popular CI/CD tools in the market.

In this article, I will demonstrate using Cloudify’s integrations within the context of real-world development work. The demonstration will use GitHub Actions, however the same concepts can be applied to any supported CI/CD platform.

Note: before proceeding, you may want to brush up on Gitflow. A good description can be found here.

You can also watch the demo here:

Example Scenario

In our example scenario, we have a Git repository in…


Image for post
Image for post

In the previous article, Cloudify & Jenkins, I introduced Jenkins’ plugin for Cloudify — a plugin that provides Jenkins job/pipeline authors with a Jenkins-centric way to interact with Cloudify.

In this article, I will introduce Cloudify’s integration with two major players in the CI/CD landscape: CircleCI and GitHub Actions.

Common Interface

One central factor in our design is to keep the interface to CI/CD authors as consistent as possible across CI/CD products. We managed to achieve this by constructing a simple Docker image, containing everything required to connect to a Cloudify Manager instance.

In addition, the Docker image contains a special script (called cfyci) that wraps calls to the Cloudify CLI, providing a more streamlined interface to CI/CD products. (It is expected that this wrapper functionality will be embedded with the Cloudify CLI in an upcoming…


Image for post
Image for post

Programmatic access to Cloudify Manager is available through an official REST API. The two other access methods — namely, the CLI and the UI — both use the same official REST API.

When working with Jenkins, automating Cloudify-related tasks becomes a challenge. Interacting with Cloudify would require placing curl commands in “Execute Shell” build steps or pipeline steps, tedious error-prone code for parsing results and so forth.

The Jenkins plugin for Cloudify comes to address these issues, significantly reducing the effort required to create and maintain Jenkins artifacts (jobs and pipelines) that use Cloudify.

Prerequisites

The Cloudify Jenkins plugin declares its prerequisites in standard Jenkins plugin fashion, so installing the plugin will result in all prerequisite Jenkins components being downloaded and installed automatically. …

About

Isaac

Traveller, writer, musician, software architect; not necessarily in that order

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store