Application Deployment

For deploying new versions of our websites, we use the continuous delivery approach, sometimes also called continuous integration.

This approach includes an automated build service that runs your automated test suite, which can usually also deploy the latest changes to the server if the build passes.

Why?

Mina

Mina is the deploy tool we're currently using. It's being maintained by our very own @d4be4st, so if you run into any issues with it, you can always ping him.

Since mina shouldn't be used directly for deployment, this article won't go into extreme lengths about it. You can read more about the deployment process with Mina in the README.md of the Mina repository.

Semaphore

Semaphore is the build service we're currently using. Semaphore supports notifications through instant messaging software, emails and other methods. It also supports automated deployments, which need to be configured separately.

Semaphore uses mina for deployment in the background, and you can check other projects for details on how to set up deployment.

New projects on Semaphore can only be created by admin users, so if you need to create a new project, be sure to contact your team lead for it.

Git and continuous delivery

Using continuous delivery for deploying our applications requires some care when handling git branches.

Sources