KiCad CI plugin for Drone


#1

Hi all!

i have been working in an open-source CI plugin for Drone. For those of you who are not familiar with Drone, it provides a self-hosted CI service (similar to Travis CI or Circle CI).

Basically, it allows you to automatically generate gerber files, schematics in pdf and SVG plots as soon as you push your commits into your Git repo. Output files are stored in a folder named CI-BUILD. You can then deploy this folder somewhere. All of this on top of KiCad v5.

There are a couple of functionalities included into the plugin:

  • You can specify variants of the board (if you happen to build two or more differently populated boards)
  • You can also tag the board with the current commit, tag and date if you have the correct footprint on the board.

It works quite well so far. Here’s a link to the last outputs of the demo board so you can check out the files. Here are a screenshot of the three PCB varaints from the demo board.


From left to right: (1) Variant 1, (2) Variant 2, (3) Variant 3. Each pair of components present in the boards have a field named variant with the content sample1, sample2 and sample3 respectively. The other components don’t have any variant field.

The source code is available on this repo, and the Docker image is available as toroid/drone-kicad in dockerhub.

You can find the demo repo in the same Github organization under the name drone-kicad-sample (sorry, two links maximum). The plugin is not yet published in the official drone plugins marketplace, but I should probably do that sooner than later. I tested it with Drone 0.8.6.

Please check the README for documentation, or post your questions here!

I hope you find it useful!

Andrés.


#2

Do you host your own drone-server? Or is there a free drone somewhere that could be used for generating outputs from e.g. open-hardware kicad sources?


#3

Yes, we have a self hosted Drone server.

We opened registration in order to let users test the drone-kicad pipeline, but I don’t find the means to approve only builds for this plugin.

So basically if there are users that use the server for other purposes I will have to ban them and/or close registration again…

So feel free to make some tests. I’ll try to add that filter someway. Go to https://bianca.toroid.io and you suould get access. It should list only public repositories.

Please let me know if you get good results!

Andrés.