aboutsummaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: a0d104242bb471316b840b2e4ab6dd97a75a65e4 (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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
stages:
- test
- analyze
- build
- publish

#############
# Templates #
#############
.job: &job
  before_script:
  - ./.gitlab-ci/$CI_JOB_STAGE/$CI_JOB_NAME.sh setup
  dependencies: []
  script:
  - ./.gitlab-ci/$CI_JOB_STAGE/$CI_JOB_NAME.sh

.dind: &dind
  <<: *job
  tags:
  - dind
  image: docker:stable
  variables:
    DOCKER_DRIVER: overlay2
  services:
  - docker:stable-dind

#######
# Tests
#######
.dispatcher: &dispatcher
  <<: *job
  stage: test
  image: hub.lavasoftware.org/lava/ci-images/$CI_JOB_NAME
  artifacts:
    reports:
      junit: dispatcher.xml

.server: &server
  <<: *job
  stage: test
  image: hub.lavasoftware.org/lava/ci-images/$CI_JOB_NAME
  artifacts:
    reports:
      junit:
      - common.xml
      - server.xml

dispatcher-debian-9: *dispatcher
server-debian-9: *server
dispatcher-debian-10: *dispatcher
server-debian-10: *server

###########
# Analyze #
###########
codestyle:
  <<: *job
  stage: analyze
  image: debian:9

coverage:
  <<: *job
  stage: analyze
  image: hub.lavasoftware.org/lava/ci-images/server-debian-9
  coverage: '/^TOTAL.+ (\d+\.\d+)%$/'
  artifacts:
    paths:
    - htmlcov

sast:
  <<: *dind
  stage: analyze
  allow_failure: true
  artifacts:
    paths: [gl-sast-report.json]

#########
# Build #
#########
doc:
  <<: *job
  stage: build
  image: debian:9
  artifacts:
    paths:
    - doc/v2/_build/html

debian-pkg:
  <<: *job
  stage: build
  image: hub.lavasoftware.org/lava/ci-images/debian-9-packaging
  artifacts:
    paths:
    - build/*.deb

###########
# Publish #
###########
lava-dispatcher:
  <<: *dind
  stage: publish
  dependencies: [debian-pkg]
  variables:
    IMAGE_TAG: $CI_REGISTRY_IMAGE/$CI_JOB_NAME

lava-server:
  <<: *dind
  stage: publish
  dependencies: [debian-pkg]
  variables:
    IMAGE_TAG: $CI_REGISTRY_IMAGE/$CI_JOB_NAME