# RIOT CI current work
## Latest info
### 27.09.22
- ci migration:
- ci-prod full build completed successfully, ui can handle it easily
- murock-cli deployed to cleanup old builds
- pifleet upgraded:
- using bullseye (-> python 3.9.2 !)
- using tailscale
- using serf
- implemented full-image upgrade
- salt'ed all murdock worker details
### 21.02.22 (Meeting 03/22)
- abandoned Drone testing
### 15.02.22
- Murdock NG VM set up
- test installation running and mostly debugged
- take a look: https://ci.riot-labs.de
### 13.12.21
- integrated can_fast_ci_build.py
### 10.12.21
- dwqw bugfixes, improvements integrated
### 18.11.21
- implemented label race fix: https://github.com/RIOT-OS/murdock-scripts/pull/37
### 09.11.21
- [meeting](/VdR2ScpTQuieUECobtVNYQ) to discuss performance improvements
### older
[Last Meeting Notes ](https://hackmd.io/EufPpUaeSgivgIh-gAUjRQ)
[next meeting agenda](/QMUYYYfqTjSQ0BynELmu-Q)
Results:
- HackMD to share CI notes volatile & CI data, once static add to RIOT documentation
- Evaluate and use CI frontend tool (such as droneio, buildkite...) and just use Murdock (dwq) as backend
- Frontend:
- react to github events
- schedule builds (PR/nightly)
- set github status
- present results
- manage build container version (?)
- Backend (dwq):
- figure out builds, distribute among workers
- TODO: make container aware, allow specifying container for jobs
- open question: nice live view of current Murdock, split out? drop?
- Desired features
- Web interface for config and access management
- Staged CI, small first build test that must pass to run the full CI
- Incremental builds
- Post result summary on PR
- Filterable test result archive
- Support whitelisted emulator tests
- Allow external test repositories (such as release specs/robot with dwq)
- Launch builds/tests from local checkout (just needs documentation)
- Prioritize builds / change order
- Static test rework (not done in murdock, no rebase, parallelized)
- Prevent race conditions with CI label setting
- Mutliple build envs
- To deduplicate work we will use this pad :smile:
- Use `riotctrl` to run tests in RIOT not just release specs
- Use `riotctrl` for RobotFW-Test instead of `dut_pal`
- RobotFW-Test Firmware and DUT python interface shall be moved to RIOT
- Trigger RobotFW-Tests with RIOT PR
## What @MrKevinWeiss is working on
### 10.12.2020 -> Jenkins, Ansible
trying to get the riot-ci/hil Jenkins instance described with `casc` and `plugins.txt`, this way I could deploy jenkins without any clicky clicky on any machine for testing.
It is pretty hard to describe the pipeline it uses the the [`job_dsl`](https://jenkinsci.github.io/job-dsl-plugin/) plugin with a limited API.
I am also having trouble selecting credentials but that seems to be a bug in Jenkins, some regression issue.
The end goal with be deployment of production or test instances with ancible and dockerized jenkins master with non-docker jenkins slave (to make access to the usb easier). This is how the HAW server room will be managed.
## What @bergzand is working on
### How to archive build results
- What to store from the results:
- Build sizes
- performance metrics,
results from tests such as bench_*
- HIL test results
- What type of data to store:
- *Integers*: build sizes, performance metrics
- *booleans*: Test results
- *strings*? Do we need this
- Current state: https://riot-graphs.snt.utwente.nl/d/Kqo15swWz/merge-statistics?orgId=1&from=now-1y&to=now
## What @kaspar030 is working on
- [full build result caching](https://hackmd.io/wT0omUAaRFa_Q5-x0KWlMg) WIP
~~- [evaluating drone.io](https://hackmd.io/US9F596hSP6tc0lej_W9ng) -> put on ice for now~~ drone started nagging for an Enterprise License, not interested anymore
## What @aabadie is working on
- Full rewrite of the Murdock frontend:
- new web interface based on reactjs: https://github.com/RIOT-OS/murdock-html/pull/19
- new web application backend based on FastAPI framework: https://github.com/kaspar030/murdock/pull/30
- Full rewrite of results display: https://github.com/RIOT-OS/murdock-scripts/pull/34
## Questions for the greybeards (or graybeards)
- Instead of droneio or buildkite, why not jenkins?
- @kaspar030:
- subjective:
- Don't like java tools for many reasons
- Jenkins UX is ugly and too oldschool and complex and convoluted
- Jenkins is a resource hog