charity: water is a non-profit organization bringing clean and safe drinking water to people in developing countries. Its engineering team focuses both on the public-facing fundraising platform behind charitywater.org and on internal tools that facilitate meeting the donor promise of reporting on every dollar raised.
Stack: Ruby on Rails, Sinatra, Sidekiq, Postgres and React
The test suite for charity: water’s biggest application is large, so when making bigger changes to the codebase, pushing to CI is a must to validate that everything is working.
While using a competitor’s solution the team started having intermittent failures that were beyond their control. It seemed that was due to their current CI/CD tool provider’s instability with VM images.
“We haven't had to reach out to Semaphore CI's support too often (it just works) but when we have it has been responsive and delightful.”
While testing other solutions the engineering team at charity: water found out that Semaphore has been extremely solid. They can always trust that when something in their CI pipeline is not working it's something they did wrong.
Additionally, they've found Semaphore CI boxes to be extremely performant, which allowed them to parallelize the test suite on a single box as well as across boxes.
They also value the simplicity that Semaphore provides both in its clean UI and the solid and versatile platform images that are constantly being updated and maintained.
“There are many CI platforms to choose from but I think Semaphore has really struck the perfect balance of speed, stability, and an elegant UI. It's easy to say that one CI platform is better than another on paper but we have used Semaphore for the past few years and it has continued to meet and exceed expectations. Semaphore is rock solid.”
The test suite of their largest application would take 1+ hour to run with a single RSpec process locally but thanks to Semaphore they've been able to cut that runtime down to about 8 minutes.