image: samthursfield/buildstream:0.1-20170621.1 cache: paths: - cache/buildstream/sources/ stages: - test - coverage - docs 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 patch - python3 setup.py test - mkdir -p coverage-pytest/ - cp .coverage.* coverage-pytest/coverage.pytest artifacts: paths: - coverage-pytest/ # Run integration tests # integration_linux: 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 - ./run-test.sh --arg --colors --cov ../.coveragerc test - cd .. - mkdir -p coverage-linux/ - cp buildstream-tests/.coverage coverage-linux/coverage.linux - cp -a cache/buildstream/logs logs-linux artifacts: paths: - coverage-linux/ - logs-linux/ pytest_unix: stage: test variables: BST_FORCE_BACKEND: "unix" script: # We remove the Bubblewrap and OSTree packages here so that we catch any # codepaths that try to use them - dnf erase -y bubblewrap ostree - dnf install -y bzr patch - python3 setup.py test - mkdir -p coverage-pytest-unix - cp .coverage.* coverage-pytest-unix/coverage.pytest-unix artifacts: paths: - coverage-pytest-unix/ integration_unix: stage: test variables: BST_FORCE_BACKEND: "unix" script: - dnf install -y findutils bzr which - pip3 install coverage - pip3 install . - git clone https://gitlab.com/BuildStream/buildstream-tests.git - cd buildstream-tests - ./run-test.sh --arg --colors --cov ../.coveragerc test - cd .. - mkdir -p coverage-unix/ - cp buildstream-tests/.coverage coverage-unix/coverage.unix - cp -a cache/buildstream/logs logs-unix artifacts: paths: - coverage-unix/ - logs-unix/ # Collate coverage reports # coverage: stage: coverage script: - pip3 install coverage - pip3 install . - mkdir report - cd report - cp ../coverage-linux/coverage.linux .coverage - cp ../coverage-unix/coverage.unix . - coverage combine --rcfile=../.coveragerc -a ../coverage-unix/coverage.unix - cp ../coverage-pytest/coverage.pytest . - coverage combine --rcfile=../.coveragerc -a coverage.pytest - cp ../coverage-pytest-unix/coverage.pytest-unix . - coverage combine --rcfile=../.coveragerc -a coverage.pytest-unix - coverage report --rcfile=../.coveragerc -m dependencies: - pytest - integration_linux - pytest_unix - integration_unix # Automatically build documentation, only for merges which land # on master branch. pages: stage: docs 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/ only: - master