danieka
For the last year or so I’ve been using Earthly for a lot of CI/CD tasks. What I really appreciate is being able to run my pipeline locally and running a single command that in turn runs all tests, lints, builds and deploys. I’ve previously used CircleCI and their YAML config which I don’t like. It takes a lot of pushes and time to get right and the YAML file itself tends to become quite long and burdensome to maintain.
However, Earthly is rethinking their business model and will maybe stop hosting their cloud satellites (see their Slack for more info), so I’m looking for alternatives. Do you use a build tool or pipeline configuration tool? Or just use the tools that your CI provides? Are makefiles what I’m looking for?
Trending in Discussions
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
New
Hey there,
It’s been more than a year since we started using LiveView as our main UI library and building a whole library of UI componen...
New
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Quite interesting article Google brought me. Didn’t find any mentions about it here.
What do you think in general? Would you use togethe...
New
:warning: Security advisory: Decimal DoS vulnerability
A vulnerability has been published for decimal where very large exponents can cau...
New
It would be helpful to have a list of companies worldwide that hire engineers without prior experience in Elixir. Often, it can be quite ...
New
Anyone running long-lived stateful processes on BEAM? We’re building an AI agent runtime and would love to compare notes.
We’re a small ...
New
Other Trending Topics
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Aludel - LLM Evaluation Workbench
Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself.
My main conc...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #ai
- #elixirconf-us
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 1 to 9- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
dimitarvp
I am not in the loop but I just took a look at Earthly’s pricing page and the free tier is still there. What am I missing? Is it going to be mandatory to pay for GitHub Actions?
danieka
This is from their Slack channel. As long as you’re not using cloud satellites I’m guessing you should be fine, as long as you don’t expect any further development.
dimitarvp
I see, thanks for following up.
At least they said they’ll provide free alternatives when the time comes so I would not be too worried.
But still, no idea, sorry for the noise. I’d also be interested in an answer however. I’ve been extremely unhappy with the YAML nature of CI/CD for ages but never had the time and energy to seriously tackle the problem.
D4no0
I personally hate yaml configuration files with passion too. These last months I configured entire CI + build pipelines for elixir projects both in CircleCI and github actions.
CircleCI is far the worst one I’ve met yet, starting from the fact that it takes usually at least 40 seconds to start the required docker containers for each pipeline, to the fact that the syntax they have is abysmal and poorly documented. This was the first time I had to resort to using chatGPT to actually generate me configs I can use to poke to understand how it works, after digging into the documentation for a few hours without any success.
Github actions is better in the regard of reusable pipelines and it’s obviously more streamlined, but their design imposes some hard limitations too. In terms of documentation, horrible just like CircleCI. Also, if you are using paid runners hosted by them, be careful as you will be scammed when it comes to time billed (sadly can’t find the link for more information on that).
Gitlab is the one I used from the start of my career and is actually the one I prefer the best. You can deploy and connect a custom runner in 5 minutes on a clean VM and it just works. You can also take a look at a generic configuration for elixir projects, much cleaner and shorter than both github and circleCI. If I remember correctly you also have validations for your configuration if you use the web editor from gitlab, which is pretty nice.
Overall, I would prefer for all these YAML configurations to be discarded in favor of a DSL or programming language that can validate both the structure as well as if those configurations make any sense from the logical standpoint.
I don’t care much about being able to run locally CI/CD pipelines, simply because in commercial projects you have a lot of secrets that are being setup in the repo, so for you to run them locally, you have to leak all those values.
I however would like to be able to run tests on configuration files, so as you mentioned, don’t have to push every-time to repo to check if the config is valid. I have not so long ago set a brand new CI pipeline in github and I have 30+ commits on that MR, really idiotic practice.
dimitarvp
We can only pray somebody will finally wake up and do it. Us the working programmers don’t get much time to play with stuff like that.
Somebody, please!
Correct but also it’s addressable and doable f.ex. you can have those in 1Password and use their CLI tool to fetch secrets at runtime; it’s slightly clunky and takes a little time to set up but it works and doesn’t compromise prod security as long as the dev itself is not an idiot.
Yeah same. Whoever imagined that’s a good way to do things should be shot in public.
D4no0
It’s not about developers leaking credentials from their poor management of tokens locally, it’s about devs not having access to those credentials. For example you are pushing to dockerhub with a corporate token, do you really want anyone but the CI server to have access to that token?
dimitarvp
Ah, that’s true, sure you don’t want that – my point was that you can untangle logistical stuff like pushing to Docker registries on successful run from the actual linting script. On your machine you only want to run the latter.
D4no0
Well, this really doesn’t solve much, you basically will have parts of scripts that you cannot run locally, hence again pushing continuously to repo to check if they work.
joelpaulkoch
If you want to avoid YAML, isn’t dagger the thing you want?
They even have an Elixir SDK.
I’ve never tried it because the CIs I set up are usually so simple that it’s not worth the effort to learn how dagger works.
I actually don’t dislike YAML for CI and I also prefer Gitlab’s CI config in comparison to e.g. GitHub actions.
Regarding the original question, there is act which claims that you can run GitHub actions locally with it, so that might be something for you.
If anyone of you tries dagger or act, please share your experience.