summaryrefslogtreecommitdiffstats
path: root/manager/.gitlab-ci.yml
blob: 369035c8b0f6eb3d7e3561bad90f6bda9c9b3426 (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
stages:
  - check

default:
  image: $IMAGE_PREFIX/manager:$IMAGE_TAG
  before_script:
    - cd manager
    - poetry --version
    - poetry env use $PYTHON_INTERPRETER
  tags:
    - docker
    - linux
    - amd64

examples:py3.12:
  stage: check
  script:
    - poetry install --only main,dev
    - poe examples
  variables:
    PYTHON_INTERPRETER: python3.12

lint:py3.12:
  stage: check
  script:
    - poetry install --only main,dev,lint
    - poe check
  variables:
    PYTHON_INTERPRETER: python3.12

.unit: &unit
  stage: check
  script:
    - poetry install --only main,dev,test
    # create required directories that are in default config, otherwise unit tests fail
    - mkdir -p /var/cache/knot-resolver
    - poe test
    # the following command makes sure that the source root of the coverage file is at $gitroot
    - poetry run bash -c "cd ..; coverage combine manager/.coverage; coverage xml"
  artifacts:
    reports:
      coverage_report:
        coverage_format: cobertura
        path: coverage.xml
      junit: manager/unit.junit.xml
    paths:
      - manager/unit.junit.xml

unit:py3.8:
  <<: *unit
  variables:
    PYTHON_INTERPRETER: python3.8

unit:py3.9:
  <<: *unit
  variables:
    PYTHON_INTERPRETER: python3.9

unit:py3.10:
  <<: *unit
  variables:
    PYTHON_INTERPRETER: python3.10

unit:py3.11:
  <<: *unit
  variables:
    PYTHON_INTERPRETER: python3.11

unit:py3.12:
  <<: *unit
  variables:
    PYTHON_INTERPRETER: python3.12