Manage and Keep track of your Builds and Deployments
Tags: tutorial, devops, deployment, builds
Published: 2019-10-30 11:12:02

I am sure most of you are already aware of the new Engines feature SashiDo released shortly. However, in case you missed our Announcement on how to [Power up with SashiDo’s brand new Engine feature](https://blog.sashido.io/power-up-with-sashidos-brand-new-engine-feature/), I suggest for you to check it out now, as it is closely related to the main topic here. 

After this short intro, let me get back on track and present you Builds and Deployments -  awaited features by many of you that are now a fact! 

### Builds

![Builds](https://media-blog.sashido.io/content/images/2018/12/Builds.gif)

**Builds** are generated only by specific actions you take as the following events:

* Change of the Parse Server version from the Dashboard.
* After git push to the master branch of your application repo, usually when you push changes to your cloud code.
* Manually from the Dashboard.

Once a Build is triggered, what happens is that the code from your private SashiDo GitHub repo is bundled together with the Parse Server version you chose for your app from the SashiDo Dashboard. Then a new [Docker Image](https://docs.docker.com/engine/reference/commandline/images/) is created of this bundle, which contains multiple layers, used to execute code by the Docker engine on our Kubernetes clusters. 

Probably it is not a surprise for any of you, that some minor syntax error present in the package.json file may cause the Build to fail. Actually, that is the most common reason, others may include a wrong NPM package name, failing of the unit tests, etc. Luckily, Build Logs are here! Now you can effortlessly follow the progress of your Build and if it fails, you will be perfectly able to localize and fix the error.

We laid out the Builds Logs with a colored bar chart for your newest 15 Builds together with a simple List of Builds below, holding the recent 100. Last, but not least the ```Start Build``` button is in the upper right corner.

### Deployment 

![Deploy](https://media-blog.sashido.io/content/images/2018/12/Deploy.png)

**Deployments** are triggered by everything that changes the runtime configuration of your app. Here are the examples:

* Every time after Build, no argument there. 
* Scaling vertically, in other words changing the type of [Engines](https://blog.sashido.io/power-up-with-sashidos-brand-new-engine-feature/) your app runs on
* Any update to your [Environment Variables](http://blog.sashido.io/tag/environment-variables/).
* Any change in the App Settings.
* Manual Start Deployment from the Dashboard. 
 
To put it in a few words, the Deployment takes all of your application's artifacts and runs them to the real servers. 

Deployments usually do not fail over a mistake you may have made. However, an Engine being stuck while deploying may cause the operation to fail.  

We chose to display your app’s last 100 Deployments structured in a simple and neat Deployment List, holding details like creation, completion time, current status etc. 

Have in mind that the last Deployment will always be with *ACTIVE* status. You need to have one running version of your app, right? :)

Same as with Builds, the ```Start Deployment``` button is present in the upper right corner to manually trigger the process if needed.

### Fin

Well, that’s it! An awaited feature is finally present on your Dashboard. Not to mention, it is one more debugging tool in your sleeve. Take your time and explore Builds and Deployments! We’ll be looking forward to your feedback as usual!

Those of you who know us can easily guess that in the future, we plan to further upgrade Builds and Deployments and customize them with some graphs and configurations. But I will leave the details for this improvement to be a surprise :)

Happy Coding!