kernelci / kernelci/kernelci-pipeline
Turn pipeline configuration on its head
- Dominant language
- Python
- Stars
- 11
- Forks
- 40
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 14
Description
Today the [pipeline config](https://github.com/kernelci/kernelci-pipeline/blob/main/config/pipeline.yaml) is somewhat convoluted with configuration for a given tree every across a huge file. We should try to improve this situation. And it will certainly require multiples steps, but below is an envisioned future state of a `trees.yaml` file that contains all trees and the main filters we have to apply when testing (eg architectures to build or hardware to test on).
```
trees:
mainline:
url: 'https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git'
branches:
- "mainline"
architectures:
- "all"
mediatek:
url: 'https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux.git'
branches:
- "for-next"
- "for-mailine"
architectures:
- "arm64"
- "arm"
platforms:
mach: # or tag?
- "mediatek"
```
The first step can be simply integrating branches into trees and then generate the build configs from there, leaving filters for a second step.
```
trees:
mainline:
url: 'https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git'
branches:
- "mainline"
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading config/pipeline.yaml and tracing how build configurations are generated. The first step is to integrate branches into a trees.yaml structure and generate the existing build configs from it; filters for architectures and platforms are a later step.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, devops
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100