15 comments

[ 3.6 ms ] story [ 45.5 ms ] thread
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.

I would change your assertion from "Java" to "JVM-hosted languages"
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.
> 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://travis-ci.org/github/MaulingMonkey/bugsalot/builds/6...

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

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

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

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.
(comment deleted)
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.
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?

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