To learn more about this project, read the wiki.

Flexisip continuous integration

The files contained in this directories are responsible for continuous integration. Each yaml file is included in the root .gitlab-ci.yml of the Flexisip project.

Basic documentation of Gitlab-CI keywords

A basic documentation of the keywords is available in French on the internal wiki. It helps to understand the basics of Gitlab-CI.

Flexisip tests

The Flexisip tests are run in the tests-flexisip-mr job of the job-linux.yml file. They rely on the current build from source of the Flexisip docker image done in the docker-build-flexisip-src job of the same file.

A Flexisip developper only needs to modify the following variables in tests-flexisip-mr for most usages :

  • LIBLINPHONE_DOCKER_TAG
  • LIME_SERVER_VERSION
  • ACCOUNT_MANAGER_VERSION
  • FILE_TRANSFER_SERVER_VERSION

You can find more information in the comments of this job.

What the test jobs does :

  • It creates a workspace to store the logs of all components, and coredumps
  • It launches docker-compose, running containers of Flexisip primary and auxiliary services. You can find all the services called in the docker-compose.yaml and docker-compose-standalone.yaml files of the Flexisip-tester project.
  • It prints logs of the liblinphone_tester in Gitlab-CI output.
  • It uploads other logs in the artifacts.
  • It displays the backtrace of liblinphone_tester and flexisip if coredumps were generated during the tests.

Files structure

The files of this directory are organized by system type and by distribution. Each file responsible for a Linux distribution has jobs inheriting from jobs located in job-linux.yml file.

Typically, this is a sample structure to illustrate :

  • job-Linux
    • build
    • test
    • package
    • upload
  • job-linux-centos7
    • build-centos7 (extends build)
    • test-centos7 (extends test)
    • package-centos7 (extends package)
    • upload-centos7 (extends upload)
  • job-linux-ubuntu
    • build-ubuntu (extends build)
    • package-ubuntu (extends package)
    • upload-ubuntu (extends upload)