Skip to content

Latest commit

 

History

History
 
 

.travis

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

Description of CI build configuration

Variables needed by travis

  • GITHUB_TOKEN - GitHub token with push access to repository
  • DOCKER_USERNAME - Username (netdatabot) with write access to docker hub repository
  • DOCKER_PASSWORD - Password to docker hub
  • encrypted_decb6f6387c4_key - Something to do with package releasing (soon to be deprecated)
  • encrypted_decb6f6387c4_iv - Something to do with package releasing (soon to be deprecated)
  • OLD_DOCKER_USERNAME - Username used to push images to firehol/netdata # TODO: remove after deprecating that repo
  • OLD_DOCKER_PASSWORD - Password used to push images to firehol/netdata # TODO: remove after deprecating that repo

Stages

Test

Unit tests and coverage tests are executed here. Stage consists of 2 parallel jobs:

  • C tests - executed every time
  • coverity test - executed only when pipeline was triggered from cron

Build

Stage is executed every time and consists of 5 parallel jobs which execute containerized and non-containerized installations of netdata. Jobs are run on following operating systems:

  • OSX
  • ubuntu 14.04
  • ubuntu 16.04 (containerized)
  • CentOS 6 (containerized)
  • CentOS 7 (containerized)
  • alpine (containerized)

Images for system containers are stored on dockerhub and are created from Dockerfiles located in netdata/helper-images repository.

Packaging

This stage is executed only on "master" brach and allows us to create a new tag just looking at git commit message. It executes one script called releaser.sh which is responsible for creating a release on GitHub by using hub. This script is also executing other scripts which can also be used in other CI jobs:

  • tagger.sh
  • generate_changelog.sh
  • build.sh
  • create_artifacts.sh

Alternatively new release can be also created by pushing new tag to master branch.

tagger.sh

Script responsible to find out what will be the next tag based on a keyword in last commit message. Keywords are:

  • [netdata patch release] to bump patch number
  • [netdata minor release] to bump minor number
  • [netdata major release] to bump major number
  • [netdata release candidate] to create a new release candidate (appends or modifies suffix -rcX of previous tag) All keywords MUST be surrounded with square brackets. Tag is then stored in GIT_TAG variable.
generate_changelog.sh

Automatic changelog generator which updates our CHANGELOG.md file based on GitHub features (mostly labels and pull requests). Internally it uses github-changelog-generator and more information can be found on that project site.

build.sh and create_artifacts.sh

Scripts used to build new container images and provide release artifacts (tar.gz and makeself archives)

Nightlies

Tarball and self-extractor build AND Nightly docker images

As names might suggest those two jobs are responsible for nightly netdata package creation and are run every day (in cron). Combined they produce:

  • docker images
  • tar.gz archive (soon to be removed)
  • self-extracting package

This is achieved by running 2 scripts described earlier:

  • create_artifacts.sh
  • build.sh
Changelog generation

This job is responsible for regenerating changelog every day by executing generate_changelog.sh script. This is done only once a day due to github rate limiter.

Labeler

Once a day we are doing automatic label assignment by executing labeler.sh. This script is a temporary workaround until we start using GitHub Actions. For more information what it is currently doing go to its code.