Drone
-
Drone is a Container-Native, Continuous Delivery Platform
https://drone.io/ | https://github.com/drone/drone
Would be interesting to combine it with Gitea enabling a pretty serious code lifecycle platform.
-
@yusf Ah so a system like Jenkins but can be over a distributed network? That sounds AMAZING. Sign me tf up!
-
@yusf Does look good.
Looking at as an alternative to GitLab Runners.
Could be the perfect pairing for Gitea too. Dockerised:
-
@marcusquinn I am using both Gitea and Drone on Cloudron. I have posted about it in https://forum.cloudron.io/topic/3350/offered-drone-ci-on-cloudron
-
@fbartels Nice, only just discovered Drone from your post and that combo does look tasty, I'm having a crazy few weeks/year but it's certainly on my radar.
-
I have meanwhile made the app public so anybody can now install it from my git repo. It can be found at https://github.com/fbartels/cloudron-drone-app
-
I've updated the repo here to automate pulling down the latest version of Drone. Open to feedback, of course.
-
@girish I can get around to some test for this one of these days. Do you think this is a good fit for the store? Of course, drone runners would need to be run elsewhere. I tried to package that out of curiosity but no dice so far. Best run on another VM anyways. But always good to have the CI server run on the same cloudron as a gitea instance.
-
@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.
-
@atridad said in Drone:
I can also put it on the cloudron Git to make it easier.
Yes, please. We can then move this package forward.
-
@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 said in Drone:
I cant import into your gitlab I copied and pasted the files into a new repo I made
the next time you could also add an additional remote to your local repo and then push to this new remote. This has also the upside of preserving history.
-
@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.
-
-
@girish Any plans to add this to the App Store?
-
This is working very well for us, paired with Gitea. Highly recommend making this an official app store install.
-
@marcusquinn same here, but the Drone runners are still not part of the equation, would be nice if they could work together with the docker addon to have it 100% "portable"
-
@marcusquinn Which package are you using ? Or are you running this outside Cloudron ?
-
@marcusquinn Which package are you using ? Or are you running this outside Cloudron ?
We are running
Docker runner
andSSH runner
as docker containers andExec runner
as a service on the Cloudron host, basically exactly as described in the Drone documentation.
https://docs.drone.io/runner/overview/@marcusquinn same here, but the Drone runners are still not part of the equation, would be nice if they could work together with the docker addon to have it 100% "portable"
Maybe we'll package runners as cloudron apps later that could build & deploy an app on Cloudron.
-
@vladimir-d I meant the drone server. How are you running it - https://docs.drone.io/server/overview/ ? Is it a Cloudron package or something else?
-
@girish our own @fbartels already created a nice package: https://github.com/fbartels/cloudron-drone-app which require a few manual steps, but is still good to go.
Back then I used a mashup of this one and the one atridad (?) created (which is no longer online it seems).
-
Ah, I didn't realize @fbartels opened it up for all.
-