# 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