Hosted CI/CD that helps everyone deliver stable applications, faster.

With Semaphore, you can easily automate the process of software testing and delivery in the cloud. It is designed to be easy to use and engineered for high performance.

And now with cutting-edge Docker support, your team has the right platform to deliver the next-generation of applications and services.

1. GIT PUSH (to GitHub or BitBucket)

You push your code to a remote repo hooked up with Semaphore…

2. Semaphore TESTS

Compile — Run dependency containers — Run unit tests — Code style checks — Security checks — Acceptance tests

3. Semaphore DEPLOYS

Prepare assets — Create container image — Upload to Cloud — Docker Push

4. Product gets UPDATED! 🎉

Optionally, your team gets a notification by Email, Slack or both.


Automatically test your app after every change

Find bugs before they reach your users. Whenever somebody pushes new code to GitHub or Bitbucket, Semaphore immediately runs all tests, along with any security and style checks that you’ve defined. You don’t have to manually add and remove the corresponding branch, as Semaphore keeps an eye on your repository and does that for you automatically. Your project can always be on the right track.

Build page flat
  1. Every git push triggers runs your automated test suite
  2. Developer deployed this change on a staging server
  3. Parallel CI jobs to speed things up
  4. Quickly SSH into the CI environment
  5. Full output log showing results of every build command

Make CI build part of your pull request review process

Once you start using Semaphore, every build automatically becomes a part of the GitHub or Bitbucket pull request review process. As a developer, you’ll know that code is ready for review and that it will be tested once again after being merged in the main branch. As a reviewer, you can see at a glance that a given branch is green, and therefore passes all the checks that you've defined as mandatory for your project. That lets you concentrate on higher-level concerns when reviewing the code.

Pull request integration

Parallelize your tests to save time

Test multiple projects and branches simultaneously as you push new commits. To cut your test time in half and more, simply schedule your build commands to run in parallel jobs. With support for up to 128 parallel jobs, Semaphore helps your project move forward fast, with a peace of mind.


A cutting-edge platform to support projects in any environment

Builds and deploys on Semaphore run on a feature-rich platform — a range of 100+ open source programming languages and tools preinstalled and available out of the box, based on a LTS (long-term support) version of Ubuntu Linux. The platform is documented down to a micro version number and updated every month. Find a complete, detailed list in Semaphore docs.

So whether you need to test your code on two versions of Java, your new microservice requires the latest version of Elixir, or the front-end team is working on an Angular.js app, you don’t need to go through hoops to accommodate your build configuration with a CI provider. In most cases Semaphore supports your builds without any installation and configuration overhead.


Customize your builds down to the last detail

While Semaphore analyzes and suggests a working configuration for every new project, it’s just as easy to customize the build to your liking. Install any package or run arbitrary binaries in your custom setup. Drag and drop commands across parallel jobs in an intuitive graphical configuration editor. Define environment variables, and add custom configuration files and SSH keys — all of which can be safely encrypted. And to make it easy for you to interact with the platform and troubleshoot your builds, Semaphore lets you SSH directly into the build environment.

Give priority to important work

By default Semaphore automatically builds every new branch in your Git repository. However you can easily customize that behavior to your liking. With priority branches, you can tell Semaphore which ones are more important. Whitelist branch name patterns, or completely turn off automatic building of new ones. Want to schedule daily or hourly builds? Just a few clicks.

Priority branch

Work of your team gets into the pipeline in the order that it arrives, unless you tell Semaphore to do it differently.

Native support for Docker-based continuous delivery. At last.

Semaphore’s custom-made platform for Docker equips you with unrestricted access to latest Docker CLI toolchain, including container image caching. Combine that with Semaphore’s state-of-the-art performance, and you finally have a Docker CI/CD platform that you can rely on. In-app integrations with AWS, Docker Hub, Google Cloud and help you quickly set up a full continuous deployment pipeline for your container-based apps and microservices. Read more about using Docker on Semaphore.

Securely authenticate and push to Docker registries

Build your Docker images on Semaphore and push them to your Docker registry for deployment. Built-in integrations let you configure deployment via Docker Hub, AWS Elastic Container Service, Google Container Registry and in just a few clicks.

Docker registries
Docker build example flat
  1. Built-in Docker image cache and high performance hardware ensure fast time to production

Deploy new features when all tests pass

Safety net provided by automated CI builds: check. Next up: move even faster with continuous deployment. With a unified workflow for the entire team, Semaphore enables your team to roll-in revisions and gain feedback faster by automatically deploying verified versions of code.

Quickly set up deployment pipelines for the whole team

Use Semaphore's built-in integrations with AWS, Cloud66, Docker and Heroku to quickly set up deployment pipelines for the whole team. Or do something completely custom. In just a few minutes, any member of the team will be empowered to deploy new features, or test out their work in progress on staging server.

Deployment integrations

Manually deploy feature branches

Certain branches are short-lived and need to be tested on a staging server. Or you don't feel like automatically pushing new code to production. So just initiate a manual deploy with a single mouse click.

Manual deployment multiple

Share history of who deployed what & when

Sometimes you need to check if there was a bad deploy. Or you are curious if that bug fix you've been waiting for has hit production. It's always right there on Semaphore, in your team’s common changelog.

Server deployment history

Manage a fine-grained access policy across all projects in your organization

Organization accounts simplify project management inside companies and other groups. With a team-based permission system, you can easily specify and delegate project responsibilities while centralizing payment. The combination of grouping people into teams while giving teams different access levels offers flexibility to match the company structure of any size.

Organization team settings

See all development activities at a glance

Get a clear-eyed view of your team's progress with a unified view of commits, test results and deploy history for every project. Whether you’re looking at a global dashboard showing status across all projects relevant to you, a feature branch or latest deployment to production, live updates make sure you never miss a thing.

Project overview flat
  1. Current status across branches and pull requests
  2. What’s the last thing we deployed?
  3. A live timeline of all project-related activities

Get notified on every important event

Semaphore has built-in integrations with popular group communication tools such as Slack and Hipchat, so that your team is always in the loop. Know when the build failed or has been fixed. Want to know only about deploys to production on selected projects? Semaphore has you covered. You can also create a custom integration with your tools and workflow using Semaphore's webhooks and API.

Slack notifications

Get started quickly & focus on development, not managing configuration & infrastructure.

Semaphore works without any configuration files and changes in your source code. With its' automatic configuration for a wide range of projects, you can set up continuous integration in a minute.

Simplify your infrastructure by eliminating the need to configure, maintain and scale custom CI/CD servers and environments. Focus on what matters the most — delivering value to your users.


Human-frequency product and article updates. Unsubscribe at any time.

© 2009-2017 Rendered Text. All rights reserved. Fine print: Terms of Service, Privacy policy, Security.

Try Semaphore, Free for 30 Days

Easy setup, unlimited projects and collaborators, no credit card required.

or sign in with your existing account