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.
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.
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.