summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
blob: 37cd82540a622ee56238e406cb581251a6c12fc1 (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
image: samthursfield/buildstream:0.1-20170621.1

cache:
  paths:
    - cache/buildstream/sources/

stages:
  - test
  - coverage

before_script:
  # Diagnostics
  - mount
  - df -h

  # Work around https://github.com/fedora-cloud/docker-brew-fedora/issues/14
  - export LANG="C.UTF-8"
  - export LC_ALL="C.UTF-8"

  # Store cache in the project directory
  - mkdir -p "$(pwd)/cache"
  - export XDG_CACHE_HOME="$(pwd)/cache"

# Run premerge commits
#
pytest:
  stage: test
  script:
  - dnf install -y bzr
  - python3 setup.py test
  - mkdir -p coverage-pytest/
  - cp .coverage.* coverage-pytest/coverage.pytest
  artifacts:
    paths:
    - coverage-pytest/

# Run integration tests
#
integration:
  stage: test
  script:
    - dnf install -y findutils bzr which
    - pip3 install coverage
    - pip3 install .
    - git clone https://gitlab.com/BuildStream/buildstream-tests.git
    - cd buildstream-tests
    - git checkout test-coverage-reports
    - ./run-test.sh --arg --colors --cov ../.coveragerc test
    - cd ..
    - mkdir -p coverage-integration/
    - cp buildstream-tests/.coverage coverage-integration/coverage.integration
  artifacts:
    paths:
    - coverage-integration/

# Collate coverage reports
#
coverage:
  stage: coverage
  script:
    - pip3 install coverage
    - pip3 install .
    - mkdir report
    - cp coverage-integration/coverage.integration report/.coverage
    - cp coverage-pytest/coverage.pytest report
    - cd report
    - coverage combine --rcfile=../.coveragerc -a coverage.pytest
    - coverage report -m
  dependencies:
  - pytest
  - integration

# Automatically build documentation, only for merges which land
# on master branch.
pages:
  script:
  - dnf install -y findutils python2
  - pip3 install sphinx
  - pip3 install sphinx-click
  - pip3 install --user -e .
  - make -C doc
  - mv doc/build/html public
  artifacts:
    paths:
    - public/