DEV Community 👩‍💻👨‍💻

Cover image for Free CI/CD for your personal or entrepreneurial endeavors! 💸
José Quintero
José Quintero

Posted on

Free CI/CD for your personal or entrepreneurial endeavors! 💸

Don't worry, this is not one of those camouflaged "Surprise! I'm actually promoting a product" posts 😄

If you're following the software/tech bubble and browse here, on LinkedIn, medium or similar sites you'll find that continuous integration and continuous delivery seems to have become pretty much a de-facto standard practice in the industry (or at least that's what I've perceived)

While that may be true in some places or tech-first companies, at least where I'm from, not every developer is blessed with the ability to commit changes and seeing them live in a couple of minutes.

How the topic came to mind

I'm currently taking a masters degree and I've had the chance to share experiences with other classmates/colleagues working as software engineers in the industry, from different sectors (banking, insurance, supply chain, etc.). I have not been particularly active in meetups or groups before (though I'm trying to change that), so these kinds of interactions have been very interesting and productive.

My getaway from discussing the topic of CI/CD with my colleagues as part of class or as overall chit-chat is that if a tech product is not your main source of business, or if what you've got works well, you're generally going to be skeptical of adopting or investing in these kinds of practices and their related tools.

This is emphasized if you work in a company with a mission critical system that has worked forever and is very hard to change the known-to-work software engineering processes and culture. This could be the case of the banking industry, for instance. The case of companies that adopt agile practices is different for everyone of course and can't be generalized, but this is what I've observed.

While we as software engineers are aware of the benefit of CI/CD in the speed of development and testing of software, often the people with the decision power to make investments in these kinds of tools are not, and you're left having to practice your convincing skills.

This discussion left me with some questions:

  • How can I make a CI/CD pipeline proof-of-concept with minimal or zero cost? Perhaps to convince someone or make a business case
  • What can I do if I'm an entrepreneur and want to have a CI/CD pipeline?
  • What if I just have a side-project that is getting some traction?

The result

This questions led me to research (read: google) what I could get for free right now. I've found that surprisingly there are several options:

This list is obviously non-exhaustive and mostly focused on build/hosting services. Link to the pricing page is included to see any fine prints.

Free for OSS

  • Now by zeit.co: Described in their own words as global serverless deployments for node.js and docker based projects, this service lets you host your projects. You can set application variables per environment and deploy from a CLI tool. The first non free tier plan is almost as cheap as a Netflix subscription.
  • Travis CI: Another CI service for building and testing often used in conjunction with github and heroku.

Free as in free beer:

  • Heroku: Allows you to host your app. Their free dynos tier puts your app to sleep if there is no traffic so this is excellent for trying things out.
  • Bitbucket: Atlassian suite that includes git repositories, trello boards, and bitbucket pipelines, along with issue tracking and several other things (pull requests, environment variables, etc). The pipelines feature is very similar to circle-ci and allows you to commit a file in your project that configures a docker container to build your app in. 50 build minutes per month
  • Circle CI: Similar to bitbucket pipelines (Builds your project inside a docker container, configured from a file). 1000 minutes free for 1 month and 1 container on linux.
  • Azure Devops, previously known as VSTS or Visual Studio Team Services: Microsoft's offer includes git repositories, issue tracking, kanban boards, and builds among other things. Builds are configured from their web interface instead of using a file. The free tier has unlimited users and build time.
  • Gitlab: Gitlab's suite free tier includes repository, issue boards and 2,000 CI pipeline minutes per month

I've had the chance to use bitbucket, heroku and VSTS in the past, and while there are some limitations, my experience has been great so far.

Has your company embraced devops, ci/cd pipelines or any of these practices? Do you know of any other free or partially free ci/cd services? What has been your experience with the free version of these tools or services?

This is my first post here (or anywhere for that matter) so I'm open to suggestions!

Top comments (6)

Collapse
nikoheikkila profile image
Niko Heikkilä

At work we are running our own Gitlab instance with configured CI runners which is very nice for security without endangering usability. I like the ability to customize the build by placing a special YAML file in project root similar to how Travis handles it.

Automated acceptance tests are run nightly in a Docker platform using Jenkins. In the future we are planning to combine all the tests into a single pipeline with deployment capabilities. That I'm looking forward to.

Whatever the purposes for adopting CI/CD are I recommend to start small and add layers on top of each other. Start from static analysis and make your code lovably clean, then continue by adding automated unit tests and automated acceptance tests. Finally design an automated deployment model to testing / staging platform and have QA specialists perform UAT / exploratory testing before the ultimate production deployment. Always pay attention to keep this pipeline as fast and efficient as possible. It's a lot of hard work but in the end you'll have a short feedback loop where customers get the value they desire without waiting. Sure, they receive buggy features from time to time as well but at least you can provide the necessary fixes as fast.

Collapse
jerodsanto profile image
Jerod Santo

Good stuff! Adding to the "Free for OSS" category, here is a nice list of companies that offer their services for free to all open source projects:

github.com/zachflower/awesome-open...

Collapse
jquintero profile image
José Quintero Author

Really cool list! Thanks.

Collapse
rtarantelli profile image
Renato Tarantelli

Hello Jose,
Great post! I love Azure DevOps, now, being for free for open source projects, this is my main CI/CD solution.

Collapse
yatiac profile image
Rafael E.

Great post! Thank you for taking your time to do this.

🌚 Browsing with dark mode makes you a better developer.

It's a scientific fact.