From bf259440037a4d3637e92bc36e8b71b06ecf3e4d Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Thu, 5 Jun 2025 15:04:16 +0200 Subject: [PATCH] MT#62949 build README Change-Id: I48f1c07d4de1b7d3f50725027fb9248ac7742945 --- build/README.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 build/README.md diff --git a/build/README.md b/build/README.md new file mode 100644 index 0000000..5cd8784 --- /dev/null +++ b/build/README.md @@ -0,0 +1,56 @@ +build +===== + +This app is in charge of the building process of releases. + +It reads the yaml files from sipwise-repos-scripts package in order to +find out everything related to a release. + +```python +REPOS_SCRIPTS_CONFIG_DIR = "/usr/share/sipwise-repos-scripts/config" +``` + +The [release yaml](fixtures/config/trunk.yml) file is the one source of truth related +to a release: + +* debian_release +* release-mrX.Y[.Z]?: backports to be included in the release repository +* jenkins-jobs: jenkins jobs related info +* release_mirror: steps to do on release process + +But for build the most important part of the file is ``jenkins-jobs``. +There are ``projects`` and ``build_deps`` defined. + +``build_deps`` is a list of projects that are a build dependency of others. Like: + +```yaml +jenkins-jobs: + build_deps: + data-hal: + - ngcp-panel + ngcp-schema: + - ngcp-panel + libinewrate: + - sems-pbx + libswrate: + - kamailio + - sems-pbx + libtcap: + - kamailio + - lnpd + sipwise-base: + - ngcp-panel + - ngcp-schema + check-tools: + - snmp-agent +``` + +In this example ``data-hal`` needs to be built *before* ``ngcp-panel``. ``sipwise-base`` has +to be built *before* ``ngcp-panel`` and ``ngcp-schema`` and so on. + +``build`` app has the logic to resolve this dependency hierarchy so triggering the right project in the right moment. + +``build`` triggers jenkins jobs and when the job finishes the next in the queue is triggered. +It keeps the info of what project has been triggered, built or failed. + +``build`` depends on [repoapi](../repoapi/models/jbi.py) JenkinsBuildInfo