kernelci / kernelci/kernelci-pipeline

Turn pipeline configuration on its head

Open
#1,048 1 comment 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.