Construction zone
Intent
Determine how to split voltha-nightly-jobs.yaml into standalone yaml config files so functionality can be placed in named directories and files. Currently a good deal of searching and effort are needed to trace job construction.
./jjb/voltha-test/voltha-nightly-jobs
├── master.yaml
├── playground.yaml
├── README.md
├── voltha-2.12.yaml
├── voltha-2.11.yaml
└── voltha-2.8.yaml
0 directories, 5 files
TODO
Yaml does not appear to natively support includes or nested yaml files.
Templates also contain inlined definitions such as (voltha-pipe-job-boiler-plate).
Definitions are included within job templates by macro expasion
- <<: *voltha-pipe-job-boiler-plate
Definitions will also need to be isolated to allow including within a job template.
Structure
- To work around lack of include directives
- Coupled with a general inability to list a common pipeline name across distinct files.
- Single monolithic job configs are not going to scale well over time.
- Branch context can be introduced by naming conventions and subdirectories.
- A directory named for the pipeline-jobs.yaml file is created alongside the yaml.
- Create a yaml config within the subdir named for each release branch.
- A set of branch specific jobs accumulate in each of the release.yaml file.
- Only quark to all this is the job set must be unique across files (append release version).
Nice to have
- A cleaner answer would be to create subdirectories named for distinct pipelines/jobs.
- Beneath the job subdir create individual release.yaml config files.
- voltha-nightly-jobs/voltha-2.12.yaml will eventually become monolithic as releases progress.
- Splitting configs based on job set would help reduce this config as well.