- 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
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
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.
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.
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 inGIT_TAG
variable.
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.
Scripts used to build new container images and provide release artifacts (tar.gz and makeself archives)
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
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.
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.