[ansible][fedora] Update package name
[barometer.git] / .gitlab-ci.yml
1 ---
2 include:
3   - project: anuket/releng
4     file: '/gitlab-templates/RTD.gitlab-ci.yml'
5   - project: anuket/releng
6     file: '/gitlab-templates/Docker.gitlab-ci.yml'
7   - project: anuket/releng
8     file: '/gitlab-templates/GoogleStorage.gitlab-ci.yml'
9
10 variables:
11   DOCKER_REGISTRY: docker.io
12
13 .barometer-build-script: &barometer-build-script
14   before_script:
15     - ./systems/centos/8/build_base_machine.sh
16   script:
17     - pwd
18     - cd src
19     - |
20         echo -e "\e[0Ksection_start:`date +%s`:make_clobber\r\e[0KMake Clobber"
21         make clobber
22         echo -e "\e[0Ksection_end:`date +%s`:make_clobber\r\e[0K"
23     - |
24         echo -e "\e[0Ksection_start:`date +%s`:make\r\e[0KMake"
25         make
26         echo -e "\e[0Ksection_end:`date +%s`:make\r\e[0K"
27
28 # Docker Builds
29 docker-build-collectd:
30   extends: .docker-build-and-push
31   variables:
32     DOCKER_IMAGE: "$DOCKER_ORGANIZATION/barometer-collectd"
33     DOCKER_BUILDCONTEXT: "docker/barometer-collectd"
34     DOCKER_FILEPATH: "docker/barometer-collectd/Dockerfile"
35
36 docker-build-collectd-latest:
37   extends: .docker-build-and-push
38   variables:
39     DOCKER_IMAGE: "$DOCKER_ORGANIZATION/barometer-collectd-latest"
40     DOCKER_FILEPATH: "docker/barometer-collectd-latest/Dockerfile"
41
42 docker-build-dma:
43   extends: .docker-build-and-push
44   # Failing since 2019
45   allow_failure: true
46   variables:
47     DOCKER_IMAGE: "$DOCKER_ORGANIZATION/barometer-dma"
48     DOCKER_BUILDCONTEXT: "docker/barometer-dma"
49     DOCKER_FILEPATH: "docker/barometer-dma/Dockerfile"
50
51 docker-build-collectd-experimental:
52   extends: .docker-build-and-push
53   variables:
54     DOCKER_IMAGE: "$DOCKER_ORGANIZATION/barometer-collectd-latest"
55     DOCKER_FILEPATH: "docker/barometer-collectd-experimental/Dockerfile"
56
57 docker-build-grafana:
58   extends: .docker-build-and-push
59   variables:
60     DOCKER_IMAGE: "$DOCKER_ORGANIZATION/barometer-grafana"
61     DOCKER_BUILDCONTEXT: "docker/barometer-grafana"
62     DOCKER_FILEPATH: "docker/barometer-grafana/Dockerfile"
63
64 docker-build-influxdb:
65   extends: .docker-build-and-push
66   variables:
67     DOCKER_IMAGE: "$DOCKER_ORGANIZATION/barometer-influxdb"
68     DOCKER_BUILDCONTEXT: "docker/barometer-influxdb"
69     DOCKER_FILEPATH: "docker/barometer-influxdb/Dockerfile"
70
71 docker-build-kafka:
72   extends: .docker-build-and-push
73   variables:
74     DOCKER_IMAGE: "$DOCKER_ORGANIZATION/barometer-kafka"
75     DOCKER_BUILDCONTEXT: "docker/barometer-kafka"
76     DOCKER_FILEPATH: "docker/barometer-kafka/Dockerfile"
77
78 docker-build-ves:
79   extends: .docker-build-and-push
80   variables:
81     DOCKER_IMAGE: "$DOCKER_ORGANIZATION/barometer-ves"
82     DOCKER_BUILDCONTEXT: "docker/barometer-ves"
83     DOCKER_FILEPATH: "docker/barometer-ves/Dockerfile"
84
85 docker-build-snmp:
86   extends: .docker-build-and-push
87   variables:
88     DOCKER_IMAGE: "$DOCKER_ORGANIZATION/barometer-snmp"
89     DOCKER_BUILDCONTEXT: "docker/barometer-snmp"
90     DOCKER_FILEPATH: "docker/barometer-snmp/Dockerfile"
91
92 # Build jobs
93 barometer-build:
94   image: centos:8
95   stage: deploy
96   <<: *barometer-build-script
97   variables:
98     DOCKER: y
99   rules:
100     - changes:
101         - "docs/**"
102         - .gitignore
103       when: never
104     - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
105     - if: '$CI_PIPELINE_SOURCE == "schedule"'
106       when: never
107     - if: $CI_COMMIT_TAG
108     - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
109
110 # Scheduled Jobs
111 barometer-daily:
112   image: centos:8
113   stage: build
114   <<: *barometer-build-script
115   variables:
116     DOCKER: y
117   script:
118     - !reference [.gsutil-install, script]
119     - cd ci/
120     - . barometer-build.sh
121     - . barometer-upload-artifact.sh
122   rules:
123     - if: $CI_PIPELINE_SOURCE == "schedule" && $BAROMETER_SCHEDULE == "true"
124
125 barometer-plugins-test:
126   image: docker:latest
127   stage: test
128   interruptible: true
129   # Build has been failing for awhile
130   allow_failure: true
131   needs: []
132   services:
133     - docker:dind
134   before_script:
135     - docker login -u "$DOCKER_USERNAME" -p "$DOCKER_TOKEN" $DOCKER_REGISTRY
136   script:
137     - docker pull $DOCKER_ORGANIZATION/barometer-collectd-tests:latest || true
138     - docker pull $DOCKER_ORGANIZATION/barometer-collectd-tests-base:latest || true
139     - >
140         docker build
141         -t $DOCKER_ORGANIZATION/barometer-collectd-tests-base
142         -f docker/barometer-collectd-plugin-tests/Dockerfile.base
143         --network=host
144         .
145     - >
146         docker build
147         -t $DOCKER_ORGANIZATION/barometer-collectd-tests
148         -f docker/barometer-collectd-plugin-tests/Dockerfile
149         --network=host
150         .
151     - >
152         docker run
153         -t
154         -v `pwd`/src/collectd/collectd_sample_configs-master:/opt/collectd/etc/collectd.conf.d
155         -v /var/run:/var/run
156         -v /tmp:/tmp
157         -v `pwd`/plugin_test:/tests
158         --net=host
159         --privileged
160         $DOCKER_ORGANIZATION/barometer-collectd-tests:latest
161     - docker container rm $(sudo docker container ls -aq)
162     - docker rmi $DOCKER_ORGANIZATION/barometer-collectd-tests:latest
163     - docker rmi $DOCKER_ORGANIZATION/barometer-collectd-tests-base:latest
164   rules:
165     - if: $CI_PIPELINE_SOURCE == "schedule" && $BAROMETER_SCHEDULE == "true"