To get started, you need to add your first GitHub or Bitbucket project to Semaphore.
Need help? Read our step-by-step tutorial.
A red build can be discouraging. To debug a failed build on Semaphore, you can launch an SSH session by clicking on the “Launch SSH” button within build results. To learn more, check out our detailed how-to guide.
Working with branches on Semaphore is easy. Semaphore automatically recognizes every newly pushed branch, adds it to your project, and runs a build for the latest commit. Every time you push to that branch, Semaphore will trigger a new build. If you delete the branch, it will be removed from Semaphore too.
Each pull request on GitHub/Bitbucket will display the build status of the given branch, which shows if tests are passing, and if the branch can be safely merged.
Semaphore also lets you set up more fine-grained control over how CI works with branches. You can:
You can configure all of this in Project Settings > Branches.
If you'd like to learn more about organizing your branching workflow, read our tutorial Elements of a Continuous Deployment Workflow, which is based on how we work on Semaphore.
Here are a few more quick tips:
Semaphore's platform is very flexible:
The build command editor lets you customize the setup of your build pipeline, enable parallel threads, and set up post-thread commands that run on both success and failure.
Semaphore provides native support for building, testing and deploying apps made with Docker.
If you're new to Docker, you can learn from our growing collection of in-depth tutorials in the Semaphore Community.
To start running your Docker project, all you need to do is add it on Semaphore. After a brief analysis of your Git repository, Semaphore will pre-select the Docker-enabled platform, and you’ll be ready to use the Docker CLI tools in your builds and deploys. The Docker-enabled platform can also be selected in Project Settings > Platform.
Semaphore will also cache your Docker images to ensure that your builds are only doing what they're meant to, and that the time needed for dependency resolving is minimal.
For most up-to-date information about our Docker platform, you can refer to our documentation page. The following guides can help you get started:
Semaphore also provides in-app integrations with most popular Docker registries, which will take care of the authentication process for you. — Amazon EC2 Container registry, Docker Hub, Google Container registry, Heroku Container Registry, Quay.io, and custom or self-hosted container registries.
Speeding up your builds on Semaphore is easy:
In addition to continuous integration, Semaphore can also continuously deploy your application when all tests pass on the branch associated with an automatic deployment.
Even if you would rather deploy manually, you can quickly set up a target server and let anyone in the team deploy with one click. This will let you track releases over time.
To get started, click on the "Set Up Deployment" button on your project page to add your first server.
You can use custom deployment commands and scripts with the "Generic" method, and you'll also find wizards for AWS, Heroku and more.
Semaphore Community is a collection of tutorials and interviews on continuous delivery practices and tools for various programming languages, written by Semaphore engineers and contributors from the community. You can take a look at all categories and read tutorials about the technologies of your choice.
We recommend you to read a few general practice tutorials:
This should be all you need to get started with building and deploying your application with Semaphore. If you have any questions or need some more hands-on assistance, our support engineers are here to answer your questions.
Semaphore Docs are open source — Edit on GitHub