CI/CD, what?

What emotion does the word "release" trigger in you? Relief, or anxiety? If you are still living with manual testing to prepare for releases and manual or semi-scripted deploys to perform them, your feelings may be closer to the latter one. That's why software development is moving towards continuity, where the risk around releasing is reduced by increasing the frequency of shipping your code.

Continuous Integration

Continuous Integration

Merge code changes back to the main branch as often as possible and automatically build and test the updated application.

  • Detect problems as quickly as possible and solve them while they are small
  • Get alerted as soon as you break the build and fix your code changes while they are still fresh in your mind
  • Avoid the integration hell that happens when people wait for release day to merge their changes into the release branch
Continuous Deployment

Continuous Deployment

Automatically deploy well-tested code changes to your staging or production servers.

  • Accelerate the feedback loop with your customers with a continuous stream of bug fixes and new feature releases
  • Releases are less risky and easier to fix in case of problem as you deploy small batches of changes
  • Focus on building software, and see your work go live minutes after you have finished working on it

Make deploying as simple as "git push"

Smoothy provides you with a powerful way to build automated CI/CD pipelines and link them to your GitHub, Bitbucket, or Gitlab repositories. This way, you only have to push your code changes to Git, and the related pipelines will automatically be executed.

Github
Github
Bitbucket
Bitbucket
Gitlab
Gitlab

Stages

Every pipeline consists of one or more stages, in which you can build your application, run unit and integration tests to check if your code is valid, deploy your application to a server, or trigger another pipeline. Different stages can be configured to run in sequence or in parallel for fast execution, so you can completely design the pipeline to suit your application's needs.

start
1

Clone code repository

The master branch of the code repository is cloned at the beginning of the pipeline execution. All the tasks and tests in the consequent stages run in the context of the application code.

Code repository
elonmusk
Owner
tesla-website
Name
2
Stages in the same container are performed in parallel for faster execution.
Pipeline
Build Laravel application
Name
6
Actions
Pipeline
Compile Vue.js assets
Name
2
Actions
3
Pipeline
Test application
Name
3
Actions
4
Pipeline
Deploy application
Name
2
Actions
finish

Regardless of the programming languages you are working with, you can easily build and test your application using Smoothy's CI/CD pipelines. For every stage, you can define the environment in which you would like to run the stage. You can securely pass any sensitive data such as passwords, SSH keys, or credentials as environment variables, and easily spin up services such as MySQL and Redis.

PHP
PHP
Node.js
Node.js
.Net
.Net
Java
Java
Python
Python
C & C++
C & C++
Ruby
Ruby
Go
Go

Actions

To define the actual build and test scripts that are executed within a certain stage, you have two options. You can either add your own custom scripts, or you can take the easier path and use Smoothy's predefined actions. These actions are recommended to you, based on the stage environment and on the already defined actions.

start
1

Run custom script

Run your own custom scripts in your pipeline.

// install dependencies

npm install

// build application

npm run build

// test application

npm run test

2

Build Dockerfile

Use a predefined action to build the Dockerfile at a provided location, and push the resulting Docker image to the Smoothy registry.

Docker
./Dockerfile
Location Dockerfile
finish

Real-time logs

You can easily following along with and debug the execution of the pipeline, using the real-time execution logs that are available via the Smoothy interface.

Output
(success)

$ docker build --pull -f Dockerfile -t registry.smoothy.cloud/pipeline-36bc3a23-a846-440e-80c6-057544e85eef:latest .


Step 1/4 : FROM node:alpine

alpine: Pulling from library/node

8e402f1a9c57: Pulling fs layer

682f5b61546c: Pulling fs layer

c482ca3e1e59: Pulling fs layer

c482ca3e1e59: Verifying Checksum

c482ca3e1e59: Download complete

8e402f1a9c57: Verifying Checksum

8e402f1a9c57: Download complete

682f5b61546c: Verifying Checksum

682f5b61546c: Download complete

8e402f1a9c57: Pull complete

682f5b61546c: Pull complete

c482ca3e1e59: Pull complete

Digest: sha256:5fec7c5da14d7ce1e27247cce8889f51d2cf97f6aa73511ccc9a8944f066d625

Status: Downloaded newer image for node:alpine

 ---> 953c516e1466

Step 2/4 : COPY . /app

 ---> f6b67031b352

Step 3/4 : WORKDIR /app

 ---> Running in 73c075fa922d

Removing intermediate container 73c075fa922d

 ---> a795881b9e14

Step 4/4 : RUN npm install

 ---> Running in a52c79fbdff7

added 1221 packages from 505 contributors in 32.834s


Job succeeded

Keep exploring the cloud platform built for developers

Rather than having to spend your time learning and integrating 6 different tools, Smoothy allows you to manage the entire process of building and deploying online applications, all from the same, easy-to-use interface.

Be the first to use Smoothy when we launch

Our intelligent all-in-one cloud platform combines all the necessary tools a developer needs to build and deploy online applications at any scale. By leveraging the power of machine-learning, the platform automates as much of your work as possible, and offers all this through a granny-proof interface.