Drone
-
@atridad yes, that will be great. I think having runners separate is fine, that's how the GitLab CI is as well (we have runners in a separate VM). From what I remember, the app needed configuration on first run itself, is that still the case?
-
@girish it does, yeah. I can change the default to something more sensible like git.domain.tld.
The post install can be found here: https://git.atridad.dev/atridad/cloudron-drone-ci/src/branch/master/POSTINSTALL.md
I can also put it on the cloudron Git to make it easier.
-
I think having runners separate is fine
Separate does not have to mean off Cloudron however. One of the systems I am running my Drone runners is also the Cloudron system where I am running the app/dashboard. Simply not started as a Cloudron app, but through docker-compose (I have scripting for that in my Drone app). The Runner only cleans up containers it has created itself, so its safe to use in my opinion.
-
@fbartels same here. It seems to be safe to run.
-
-
@girish Oh could you give me access to make repos on there again? Username is atridad. I made a new account.
-
@atridad Yes, of course. Done.
-
@girish Thanks! Its here: https://git.cloudron.io/atridad/cloudron-drone-ci
-
@atridad I got it going here - https://git.cloudron.io/cloudron/drone-app/ . It seems the .env file is missing in the git repo, you should have permissions to add it.
-
@girish oh whoops, I’ll add that right away
-
@girish I work with macOS and because I cant import into your gitlab I copied and pasted the files into a new repo I made. Unfortunately the .env file is considered a hidden file and didn't show up in finder...
Good catch. Its in there now.
-
@atridad That's a preference you can set in finder to show all hidden files or use the CLI.
-
@robi ahhh I'll check that out. I was being lazy tbh and didn't just use the command-line.
-
-
@atridad thanks!
Trying to understand how this app works. If I configure this for gitea, then it will use the gitea provider to sign in - https://docs.drone.io/server/provider/gitea/ ?
If that's the case, what is https://docs.drone.io/server/user/registration/ ? Or is the OAuth stuff separate from the users?
-
@girish The OAuth is seperate I believe. So far I haven't been able to see an issue with open registration. But yeah it uses gitea as a login provider.
-
@fbartels Good point. I'll do that next time.
-
@girish my drone app has some install instructions and further usage in its readme (including the gitea setup). you can find them at https://github.com/fbartels/cloudron-drone-app#installation.
-
@atridad I had to add
RUN chmod +x /app/code/start.sh
to your Dockerfile in order to install it properly, it was throwing a 400 error.Is there any chance to add the runners/agents as cloudron apps as well? I was just playing around with the exec runner and couldn't get it to work, but I would think it could be the same as the cloudron-build-service, no?
-
@msbt you don't really need an app for that, you can just run the docker runner on your cloudron host. I am using https://github.com/fbartels/cloudron-drone-app/blob/master/runner/docker-compose.yml along with a
.env
file with my server specific values. -
@fbartels I'm trying to have a complete deployment solution for static pages, like Directus + Gitea + Drone (with Agents) + Surfer on one server which can be given/rented to the customer when the site is finished, so they can have everything in one place and can build/update the website(s) themselves. Would be nice to have it in the GUI (and there's a dashboard on :3000 if you set credentials, right?) and have the possibility to restart if need arises without sshing onto the box. But if it's too tricky or crazy effort, your suggestion will probably be the way to go
-
@msbt the webinterface on the runners is only for debugging as far as I know. So they do not really need to be reachable from the public internet. The only important thing is that the runners can reach the "dashboard" to get job information.
I have runners deployed on a few machines, even had it running on my laptop.
And one of the Drone jobs indeed builds a hugo blog and then deploys it via surfer.
-
@fbartels thanks, it does work indeed, I even used your
cloudron-surfer
image to deploy a demo Hugo to a surfer instance.Although I would still find it a lot more practical if the runner was an actual part of cloudron, so we go full circle and have all the benefits, like when you migrate everything on a new machine
-
@msbt True. The best part about runners though is that they need barely any config and don't need to store much at all. It is very scalable. As for my image, I do need to fix that. I've been slammed with projects and life lately but I'm trying to get to everything I've said I would do lol
-
@atridad If you detail out some steps of what needs doing, perhaps someone can chip in at the repo you specify.
Many hands make short work.
-
@robi from my perspective that is all already part of https://github.com/fbartels/cloudron-drone-app/. Atridad just decided that he wanted to do his own app.
-
@fbartels ah, thanks for the clarification!
-
@robi Just added that. Thing about this repo is hopefully making it more viable as an official app. One thing that I think would help is support for required environment variables when installing specific apps. Similar to how the ports are defined. That would let us specify the gitea URL and the OAuth info.
-
-
@robi Submitted.
-
@atridad Replying to your post in my feature request here to keep it in the drone thread. It might be able to make the runner work too?????
https://docs.cloudron.io/packaging/addons/#docker -
@atridad uh nice catch, that would be awesome!
-
Is anyone aware of the licensing changes to Drone? There are some notes here - https://laszlo.cloud/drone-community-edition-what-is-included
There is a fork of drone now called woodpecker ci. I opened a request for that here https://forum.cloudron.io/topic/7186/woodpecker-ci . From https://woodpecker-ci.org/faq#why-is-woodpecker-a-fork-of-drone-version-08, "The Drone CI license was changed after the 0.8 release from Apache 2 to a proprietary license. Woodpecker is based on this latest freely available version."
-
@girish yes, I've been following the woodpecker project also already for a while. it seems quite active. On the other hand I have not noticed any limitations in my usage of Drone so far. Also the "agent less single node" limitation is something I cannot confirm, multiple runners here without any problems.
-
@girish oh nice, it seems the woodpecker agents come with single binary files, this could make it easier to set up, right?
-
@msbt yes, quite nice that it has release binaries which IIRC drone didn't have.
-
-
@fbartels ah good point, thanks for the clarification! Do you think we can get it to work with the docker addon we have?
-
@msbt yes, I would imagine that one could wrap the agent into a Cloudron app, but I honestly do not see that much of a value to it.
Reasons:
- the agent does not have a webinterface by default (but one can be enabled with https://docs.drone.io/runner/docker/configuration/reference/drone-ui-disable/)
- the agent does not store anything, so needs no backups
- needs manual configuration for address of drone server and shared secret anyways
I just have a small docker-compose.yml on any system that I want to act as a runner (my laptop, desktop, ..., even on my cloudron instance).
-
@fbartels I get most of the reasons and I'm using it the same way you suggested, but I once crashed one of my Cloudrons because I installed a wrong docker-compose thing to launch the runners, which either updated or removed Docker, thus killing Cloudron. It was a quick fix to reinstall Docker, but would be nice to have the runners as an app so people don't have to tinker and install things outside the Cloudron ecosystem.
Would be also easier to migrate and such, or launch/start additional runners on different Cloudrons with one click if more are needed without sshing into each box.