Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use hercule with non-github websites (Gitea/Gitlab...) #199

Open
tobiasBora opened this issue Feb 18, 2020 · 4 comments
Open

Use hercule with non-github websites (Gitea/Gitlab...) #199

tobiasBora opened this issue Feb 18, 2020 · 4 comments
Labels
enhancement New feature or request

Comments

@tobiasBora
Copy link

tobiasBora commented Feb 18, 2020

Hello,

First, thanks for this tool. This project looks very promising, but I'm curious to know, are there some ways for me to integrate this tool with other websites than github? For example, I'd be interested to use hercules on self-hosted instances of Gitea or Gitlab. Also, being new to this field, how does hercules-ci compares with drone.io + a shell runner that will compile my project using nix-build?

Thanks!

@tobiasBora tobiasBora added the enhancement New feature or request label Feb 18, 2020
@tobiasBora tobiasBora changed the title Use hercule on with non-github websites (Gitea/Gitlab...) Use hercule with non-github websites (Gitea/Gitlab...) Feb 18, 2020
@roberth
Copy link
Member

roberth commented Feb 19, 2020

Hi @tobiasBora,

Currently, Hercules CI only integrates with GitHub. We're investigating the feasibility of a GitLab integration, but for now we're prioritizing other features.

Compared to drone.io or buildkite, we provide a better experience by integrating Nix. This improves

  • support: Nix isn't "first-class" on our CI; it's the core. If you're having Nix-specific trouble, we have you covered.
  • the dashboard, designed specifically for Nix. No more interleaved logs. Nix-specific build info is made available.
  • simplified configuration: no need to maintain builds scripts to find the right file, push to the right cache, etc
  • sandboxed builds: in Nix, sandboxing isn't just about security. The correctness of the build output can depend on it. Running in a Docker container prevents Nix from setting up its sandbox. The Hercules CI agent runs outside docker and gives you correct builds from the Nix sandbox.
  • automatic caching: the agent's Nix store is an instantly available cache, speeding up your builds. Adding a binary cache is a one-time setup covering all your repositories.

The only thing that's currently missing is the ability to run arbitrary commands in environments other than the Nix sandbox, but that will land soon.

@tobiasBora
Copy link
Author

tobiasBora commented Feb 19, 2020 via email

@roberth
Copy link
Member

roberth commented Feb 19, 2020

The Nix sandbox should be about as secure as a Docker container, but I am not willing to assume this, because while it uses most of the same Linux kernel features, it is a distinct implementation that hasn't been scrutinized as much.
Also note that cloud providers typically don't trust Docker for isolating their tenants.

For these reasons, Hercules CI only builds automatically for pushes by people with direct push access to the actual repo. This works perfectly for most teams. If they're maintaining actively contributed open source software, they'll benefit from e.g. bors bot to build contributions from otherwise untrusted forks after some human review.

@OliverEvans96
Copy link

I agree, it would be great to have nix-first CI across hosting providers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants