CI tool that can run on Cloudron
-
Hi community,
I was yesterday thinking about packaging up a ci app for my own use. I would want to run the managing component on Cloudron (so have the ui running on my Cloudron) and have workers on other systems (to not mess with the system too much).
I had Drone and Concourse already on my list a while ago, and yesterday briefly looked at packaging up AppVeyor, but sadly it has quite poor documentation when it comes to self hosted (publishing just a binary/package without any version number in its filename, cannot override/configure default paths which causes a clash with the read-only nature of Cloudron apps).
What are the others here on the forum using? It should go hand in hand with Gitea running on Cloudron.
To give a bit more context so far I have used Jenkins at work, which I dislike because its Java and the Jenkinsfile syntax is a bit weird. Travis is old school but also only works with Github and Bitbucket. Github Actions are nice, but while you can selfhost runner (or at least that part was planned) it also would not work outside of Github.
Would you be interested in live streaming the process of building such an app (on youtube live for example)?
-
@fbartels said in CI tool that can run on Cloudron:
cannot override/configure default paths which causes a clash with the read-only nature of Cloudron apps)
I'm not sure about which CI app would be best (I am a Gitlab CI user and lover ), but about this specific point, you can always work-around these issues with symlinks pointing to
/app/data/
,/tmp/
, or/run/
-
@mehdi said in CI tool that can run on Cloudron:
you can always work-around these issues with symlinks
yes, that is true and also something I have done when playing with Teleport, but sadly AppVeyor does not specify where in the system they are planning to write to so it would be a bit of trial and error. Not sure if this is a route I want to go through. It seems to be a nice platform, but their focus is clearly their SaaS.
@mehdi said in CI tool that can run on Cloudron:
I am a Gitlab CI user and lover
Unfortunately Gitlab is quite heavy (Java again). I am rather searching for something that does one thing well instead of a system where I am only using 1% of the functionality.
-
@fbartels said in CI tool that can run on Cloudron:
Gitlab is quite heavy (Java again).
Nope, Ruby ! But yeah it is quite heavy ^^. I totally understand your approach of searching for tools that only do 1 thing, and do it well. About CI servers, I heard good things about Drone ( https://drone.io/ ). Never used it myself though.
-
I have tried to package drone a while ago, but they have a strange deployment technique where everything is set as an environment variable. While that itself is not a problem, you have to even set some flag as an environment variable for migration and then stop drone and start it without that flag. I don't recall the specifics but it was unviable for reproducible deployment. This could have changed though.
Have you looked into Agola ? If you are in the market for Jenkins, let's try to get https://git.cloudron.io/cloudron/jenkins-app out! It was sort of working when I packaged it but Jenkins plugins are always a nightmare for packaging.
-
@girish said in CI tool that can run on Cloudron:
BTW, what kind of CI are you looking for? Just building some projects into artifacts for download?
Yes I have, not sure why I discarded it, though.
@girish said in CI tool that can run on Cloudron:
If you are in the market for Jenkins
While I know Jenkins, it's not what I am looking for for my personal projects.
@girish said in CI tool that can run on Cloudron:
what kind of CI are you looking for?
Misc stuff. Building and uploading my blog, building and installing some custom cloudron apps. Hopefully migrating some stuff off Travis (so pr testing).
-
I ended up going for Drone and have a functioning setup now.
Its configured to use the Postgres database as a backend and auto generates secrets on first start. The one thing though that cannot really be automated is the setup of the git counterpart. For this you'd need to exec into the app and edit a
.env
file manually.Running the agents is then quite automatic again. Whenever I need more agents I can run a script which uses the cloudron cli to fetch the required data to run.
And my first automation ended up being to automate the build and publish my Hugo blog on my Cloudron (via surfer cli).
-
@girish I am not sure If I want to publish it for everyone (yet). The things that you need to do for it outside of the regular Cloudron context make it a bit of an unusual app and I fear just publishing it will lead to a lot of frustration for others stumbling upon it (similar to the video conferencing experience).
Maybe I keep the repo private for now and just open up to users where I can directly guide them on using it. Have to see if there is a market for it
I have setup a mirror of my code to a private Github repo and invited your Github user to it so you can have a look.