
CI/CD on a budget for open source projects - danielmunro
https://danmunro.com/posts/ci-cd-on-a-budget-for-open-source-projects/
======
MaulingMonkey
> For open source projects, everything except the droplet in Digital Ocean is
> completely free.

Alternatively, Appveyor & Travis have fully free tiers. They don't even have
my credit card number. CI is trivially forked, doesn't require configuring
secrets per repository, etc. Being CI focused, both have configuration and UI
oriented towards having a matrix of builds that can individually pass/fail for
more granular results, and comes with various SVG badges for build status.

A concrete example of travis on a Rust project:

[https://github.com/MaulingMonkey/bugsalot/blob/master/.travi...](https://github.com/MaulingMonkey/bugsalot/blob/master/.travis.yml)

[https://travis-
ci.org/github/MaulingMonkey/bugsalot/builds/6...](https://travis-
ci.org/github/MaulingMonkey/bugsalot/builds/628911388)

Linux/Windows/OSX unit testing, Android/iOS/WASM builds.

------
idoubtit
A more indicative title would be: Hints for a self-hosted Java CI/CD with
Github actions.

If you're using Gitlab and languages other than Java, there is nothing useful
in this blog post.

~~~
torvald
You are right, but it does illustrate how little is needed to get your code of
the ground. See [https://github.com/sdras/awesome-
actions](https://github.com/sdras/awesome-actions) for a list of plug n' play
building blocks. And there are a bunch of different triggers and patterns
([https://help.github.com/en/actions/reference/events-that-
tri...](https://help.github.com/en/actions/reference/events-that-trigger-
workflows)) you can listen to, all tightly coupled with your code and (GitHub)
UI.

There is a lot of bang for the buck here.

------
Uninen
You can do everything mentioned in the bullet points (CI service, test, build
environment, docker image repository, code quality, coverage, metrics) except
running the production code for free on Gitlab.com or self-hosted GitLab
instance.

Edit. Serious question: why would you want to set up and maintain several
different tools when you can have everything running in one place?

------
dawnerd
I use drone on my own server and love it. Just another alternative I wanted to
mention

[https://drone.io/](https://drone.io/)

------
f00_
Google is offering free fuzzing to large open source projects:
[https://google.github.io/oss-fuzz/getting-
started/accepting-...](https://google.github.io/oss-fuzz/getting-
started/accepting-new-projects/)

~~~
dmwilcox
The Internet offers free fuzzing to open ports j/k that actually looks useful
;)

------
dan_can_code
Thanks for sharing Daniel. I'm not sure if you're aware but netlify and vercel
offer free domain hosting for Javascript / JAMstack projects. They both also
offer pretty decent free CI/CD workflows, but I'm not sure how that works with
custom images or anything.

------
exegete
I did something similar with a Flask server on EC2 that is updated on every
push using Github Actions.

[https://github.com/wesbarnett/flask-
project](https://github.com/wesbarnett/flask-project)

------
catchmeifyoucan
It comes down to how often you build, but I’ve been using AWS Amplify for
CI/CD, and it’s been really awesome and simple to set up. You point it to your
GitHub Repo, and you’re good to go. It works well for webapps.

------
nickbauman
It would be better if it were expressed using Maven instead of Gradle because
Gradle is just one more languaged-based build tool that rides on Maven.

------
econcon
You can use Lambda for CI/CD and it will run on demand so you'll not be paying
for it within free tier.

------
amdelamar
> Digital Ocean starts at a $5/mo buy in.

Heroku is $0/mo to start. heroku.com/free

