# drone.io as frontend for RIOT's CI
idea: use drone for PR handling, nightly handling, container handling
why drone?
- both server and runner are open source and freely available
- very easy to bundle complex build steps into parameterize "plugin" containers [example](https://hackmd.io/4o5GH42sR6GnExPW6_x7Jg)
- drone can handle per-build container change and arm64 (raspi) workers
Status: (09.11.21) too much work for getting hacked dwq support, waiting to test @aabadie's murdock rewrite
## trying to model RIOT's ci using drone
steps:
- DONE:
- setup drone instance ([test instance](https://drone.schleiser.de/kaspar030/RIOT))
- update drone file to use dwq
- update to current drone syntax
- implement pushing merge commit somewhere
- implement ssh tunneling to ci.riot-os.org for disque, redis
- launch simple build [first result](https://drone.schleiser.de/kaspar030/RIOT/241)
- make dwq run on specific container
- added "parallelism:" support via custom configuration converter
https://github.com/kaspar030/drone-riot-conv
- TODO:
- parse results
- store artifacts (Where?)
- re-do live view (chop handler from Murdock?)
- allow local run
- add nightly (using drone.io cron)
- storing artifacts:
one way would be to make the main pipeline run on a specific runner that can locally mount in a folder that is exposed via http.
pro: artifacts are already available while building
con: not very contained
artifacts could be pushed via sftp
pro: simple
con: artifacts (and build output) only available after build
maybe use S3 (minio) to provide storage?
## Current Setup
- drone server instance at drone.schleiser.de (standard installation)
- two drone workers (one on a local box, one on breeze). both runners
are mounting a local folder to /cache so git-cache works
- currently re-using production ci.riot-os.org dwq/disque setup