Heyy everybody.
I’m looking for a simpler, more modern, and reliable alternative to Jenkins for running CI/CD pipelines with C++ and Python projects. Ideally, I’d like something that:
- Runs jobs in containers, similar to GitHub or GitLab pipelines
- Triggers jobs periodically or through external triggers (like HTTP endpoints for Bitbucket, GitHub, etc.)
- Has an API to query job states
- Integrates with HashiCorp Vault for secrets management
- Supports artifact storage (nice-to-have)
- Integrates well with HashiCorp Nomad
- Is self-hosted (I have cheap, performant hardware available)
- Is open-source so I can contribute to it
What alternatives to Jenkins would you recommend based on these needs?
Hey @MiroslavRalevic
, if you’re looking for an alternative to Jenkins that’s modern and simpler to manage, GitLab CI could be a solid choice.
It’s designed for ease of use and has powerful container support. Plus, it allows for triggers via HTTP endpoints, similar to GitHub Actions.
You can easily configure it to run C++ and Python jobs. The integrated features, like the API for querying job statuses and secret management, make it a one-stop solution for your needs.
GitLab also integrates nicely with HashiCorp Vault for managing secrets. While it doesn’t have the same deep integration with HashiCorp Nomad as Jenkins does, you can still configure it to work together with Nomad for orchestration.
If you want to keep your setup open-source and contribute to the community, GitLab’s open-source edition is a perfect fit.
Additionally, if you use LambdaTest for browser testing, GitLab makes it easier to integrate browser tests into your CI/CD pipeline.
Hope this provides you a good option ! 
Surely you may consider GitLab CI, as suggested by @ian-partridge, but…
If a lightweight and container-centric CI/CD tool is what you need, then Drone CI presents a great alternative.
It offers simple configuration and works very well with containers, with native Docker support. It can trigger jobs through webhooks, making it perfect for external triggers from platforms like GitHub and Bitbucket. Additionally, it provides a REST API for querying build states.
Drone also allows for the secure use of secrets and integrates with tools such as HashiCorp Vault for managing sensitive data.
While Drone’s support for HashiCorp Nomad isn’t as extensive as Jenkins’, it integrates effectively with container-based orchestration tools. This makes it an ideal choice if you’re using Docker to run your C++ and Python jobs.
Being open-source, Drone CI allows for self-hosting on your own infrastructure. Its simplicity can also save you from the complexities of configuring more involved systems like Jenkins.
Furthermore, it integrates well with LambdaTest for incorporating cross-browser testing into your pipelines.
Hope you find this helpful! 
Huh! @ian-partridge and @alveera.khn have already provided wonderful answers… hmm… But nevermind, I know one more alternative. It is Argo CD, and it could be a great fit for a more cloud-native, Kubernetes-first solution.
Designed for Kubernetes-based CI/CD pipelines, it offers excellent integration if you’re working with containerized workloads. You can run jobs in containers and trigger them externally using webhooks (via GitHub, Bitbucket, etc.), just as you’ve outlined. It also integrates with HashiCorp Vault for secrets management and provides a solid API to query the status of jobs.
While Argo CD can be configured to work with HashiCorp Nomad for orchestration, it aligns more naturally with Kubernetes. Being open-source, it’s a good fit for self-hosting if you’re already using Kubernetes in your infrastructure. Furthermore, it integrates with tools that allow automated testing, including LambdaTest for cross-browser compatibility, as part of your CI/CD pipeline. This makes it a strong contender for highly containerized or Kubernetes-based environments.
Tools like GitLab CI, Drone CI, and Argo CD each offer modern, open-source alternatives to Jenkins, with strengths that cater to different needs. Whether you prioritize a Kubernetes-native approach, a container-first solution, or an all-in-one platform like GitLab, there’s likely an option here that aligns with a simpler, more modern infrastructure while still allowing for self-hosting.
Hope this helps! 