Semaphore lets you continuously deploy your applications and services when all automated tests pass. This way, developers only need to push new code to a Git repository in order for Semaphore to run all tests and deploy a new version.
To accomplish this is very easy. You only need to set up a target server, an entity which encapsulates deployment settings and history on Semaphore. The server can be linked to a particular branch, and it will trigger deployment after every successful build on that branch.
Note: It is also possible to set up a deployment server without continuous deployment and perform manual, one-click deployment from any branch.
Servers, which can be accessed from project pages, display a detailed deploy history in a form similar to a changelog. This way, your team can keep track of who delivered what and when.
In addition, each deploy can trigger a notification in your favorite group chat channel.
Both automatic and manual deployment workflows are a significant improvement over launching deploys from individual developers' local machines and ad-hoc communication. They also empower new team members to deploy their first contributions on their first day at the job quickly and without friction.
The following guides show you how to set up deployment to one of the cloud platforms and tools Semaphore integrates with. If your service is not listed, or you have custom scripts and infrastructure, we recommend going with the Generic deployment method.
See also our guides to setting up continuous integration and deployment with Docker.
We also very much welcome any feedback you may have, as well as suggestions which deployment integrations you would like to see next.
Semaphore Docs are open source — Edit on GitHub