Anyone using Drone ( ?

Good experiences? Bad experiences?

I realize that no matter what I do, I'm going to end up needing a lot of configuratability in the tools, and will probably have to write my own plugins.

· · Web · 2 · 0 · 0

@emacsen Yes, yes, no. Been using one instance with GitHub and another one with Gitea, and it generally just worked.


I'm looking at self-hosting it up for a self-hosted gitea.

I know some of what I need to do will be unique. First, I need it to check out using git-lfs.

Secondly, this is a large repository (essentially a highly dynamic mono-repo), and what I need is for it to only build essentially a directory at a time, and only when changed (ie check out this directory and children when you see a file modified).

I'm worried about how much customization will be involved. Any thoughts?

@emacsen @raucao you can add a custom rule to handle the git clone step. for example, one co-worker’s .drone.yml starts with

--- kind: pipeline type: docker name: Deployment to Firebase Hosting platform: os: linux arch: amd64 # tell drone not to do the git clone clone: disable: true # steps executed in order steps: - name: git-clone image: alpine/git:1.0.7 commands: - git clone - cd proj-1 && git checkout $DRONE_COMMIT - name: setup image: node:lts commands: - echo 'prefix = /data/.npm-packages' > /root/.npmrc [...]

for the directories you need to build, maybe you can write a script that figures out what changed in the most recent commit, and figure out what to rebuild. run it as a drone step.

@fn @raucao

Thanks. I think this is going to be challenging but sounds doable.

I wonder if I can actually instruct drone about the directories I want built and build settings for them.

This is a great place to start looking. Thanks!

@emacsen @fn If the repo is that large, and you're self-hosting, you will also want to consider caching your files instead of cloning anew on every push or PR. We use (see e.g.

@raucao @fn

I'll keep it in mind.

In reality the builds are extremely isolated and actually very simple/fast, so caching isn't really going to buy me much.

I don't know the world of build tools, and I may even be using the wrong system. Who knows... I just want to get this prototype out of the way.

@emacsen i set it up for the co-workers over a year ago. a couple of projects use it heavily (do all deployment through it). one other project prototyped using a mac mini to automatically build unity3d games for iOS, using the mac os native drone runner. they ended up not using it in production, though for logistical reasons, not technical.

the projects that use it use the docker-based drone-runner to make builds or do deployments.

Sign in to participate in the conversation

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!