mirror of https://github.com/sipwise/repoapi.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.6 KiB
57 lines
1.6 KiB
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
|