A modern interface, one-step integration with GitHub and Bitbucket, and a free build container have made CircleCI the go-to CI tool for many organizations of all sizes. What many people don’t know is that we offer extra resources and settings specifically for open source projects.
Extra build containers
All organizations (users and companies) on CircleCI get one linux container and 1000 build minutes to run their projects. Proprietary code included. 100% free. As awesome as that may be, we offer open source projects even more! An open source project being built on CircleCI gets three additional build containers, 4 in total. Better yet, those build containers have no minutes cap, so you can build as much as you want. That’s $150 worth of CircleCI services provided for free.
Multiple build containers allows you to do one of two things. Build multiple pull requests (PRs) at the time, or build a single PR much faster with CircleCI’s parallelism. Either way you win.
Note: Projects built on Linux (our default platform) will automatically receive the additional containers if they are “public” projects on GitHub or Bitbucket. We don’t leave macOS users in the cold though. If you’re building an open source project on macOS and want to take advantage of our offer, contact firstname.lastname@example.org.
Useful features and settings
Public build pages - Your build pages can be public to allow core contributors, collaborators, and the general community transparency into your project.
Private environment variables - Many projects will end up needing an API token, SSH key, password or something else in order to build all dependencies or perhaps deploy somewhere. Private envars allow you to store these variables safely even when your project can be seen and contributed by thousands of users outside of your organization.
Advanced Settings -> Build forked Pull Request - This determines whether or not PRs opened from forked repositories will be built. The main upside to this being testing users’ contributions quickly and efficiently, telling you if their PR is good before you even get a chance to look at it. A possible downside could be a high volume or forked PRs or poorly crafted PRs can keep your build containers busy and not working on your own code.
Advanced Settings -> Pass secrets to builds from forked pull request - This setting is extremely important for security. When this is on, those private envars mentioned earlier, AWS & Heroku credentials, and even SSH keys stored on CircleCI will be available to anyone who makes a fork and opens a PR to your project. The upside to this setting is that builds that require these variables will be able to pass, which is always a nice. The severe downside however is allowing someone, anyone, to simply edit your CircleCI configuration to print our your SSH key to terminal, and now have access to your server.
Advanced Settings -> Only build pull request - This setting means only pull request and the project’s default branch (typically master) will be built. Useful for projects with a lot of commit activity, this helps reduce the number of builds that will be run.
Community projects already being built on CircleCI
There’s already tons of open source projects big and small being built on CircleCI. Here’s a few examples:
- Vue - A progressive framework for building user interfaces.
- Calypso - The next generation webapp powering WordPress.com.
- fastlane - A build automatically tool for Android and iOS.
- Yarn - A fast, reliable, and secure alternative npm client.
Join CircleCI Discuss to share your projects and tell us how we can get better at supporting the open source community.