blob: 57efa9a12246bc6b6adbf62f1bf4bf008a56d93d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# Description of CI build configuration
## Variables needed by travis
- GH_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
### Lint
Stage is executed every time and consists of 4 parallel jobs which check for any deviation from coding conventions.
Checks are performed using:
- csslint (CSS)
- eslint (JS)
- shellcheck (shell scripts)
- flake8 (python)
Ideally any error should cause whole CI pipeline to fail. Unfortunatelly right now only shellcheck and eslint are
causing pipeline to fail.
### 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)
### Release
This stage is executed only on "master" brach and allows us to create a new tag just looking at git commit message.
It also has an option to automatically generate changelog based on GitHub labels and sync it with GitHub release.
For the sake of simplicity and to use travis features this stage cannot be integrated with next stage.
### Packages
As a name might suggest, this stage is responsible for creating netdata packages such as:
- docker images
- tar repository (soon to be removed)
- self-extracting package
This stage is separated into 2 parallel jobs. One creating docker images and second one creating github artifacts.
Whole stage is executed only on master branch, but there are also additional parameters assigned to jobs:
- docker images - execution only on cron job or when there is a tag assigned starting with `v`
- artifacts - script responsible for creating artifacts doesn't have special conditions, but deployment to GitHub
releases is done only when there is tag assigned
|