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.
Victor Seva bf25944003
MT#62949 build README
11 months ago
..
fixtures MT#61223 repoapi: fix views for trunk-next 2 years ago
management MT#57906 build: allow uuid optional parameter on command 3 years ago
migrations MT#61875 build: support failed BuildRelease 1 year ago
test MT#61223 repoapi: fix views for trunk-next 2 years ago
README.md MT#62949 build README 11 months ago
__init__.py
admin.py MT#62714 build: allow to change pool_size via admin panel 1 year ago
apps.py
conf.py
exceptions.py MT#61223 [build] improve validation of release configs 2 years ago
models.py MT#61875 build: support failed BuildRelease 1 year ago
serializers.py
signals.py MT#33006 repoapi: upgrade structlog config (3.0+) 4 years ago
tasks.py MT#61223 build: fix release parameter for trunk-next on builds 2 years ago
urls.py
utils.py MT#61223 build: fix trunk-next builds 2 years ago
views.py MT#61875 build: support failed BuildRelease 1 year ago

README.md

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.

REPOS_SCRIPTS_CONFIG_DIR = "/usr/share/sipwise-repos-scripts/config"

The release yaml 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:

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 JenkinsBuildInfo