summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChandan Singh <chandan@chandansingh.net>2019-09-03 01:07:24 +0100
committerChandan Singh <chandan@chandansingh.net>2019-09-03 01:07:24 +0100
commit4a86e5d9011b5f2b911cc77c3e905ab0d7a8969d (patch)
treec567901bdcfd13939fc7734bc4778a8e0a845dfe
parentcca1b6b9e8e8bade3f604e1f46bcaa3230b5fcda (diff)
downloadbuildstream-chandan/test.tar.gz
-rw-r--r--.gitlab-ci.yml390
1 files changed, 0 insertions, 390 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9b7db92cf..18c28d803 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,401 +1,11 @@
-include:
- - template: Code-Quality.gitlab-ci.yml
-
image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-debian:9-master-75925678
-
-cache:
- key: "$CI_JOB_NAME-"
- paths:
- - cache/
-
stages:
- test
- - post
- - publish
-
-variables:
- PYTEST_ADDOPTS: "--color=yes"
- INTEGRATION_CACHE: "${CI_PROJECT_DIR}/cache/integration-cache"
- PYTEST_ARGS: "--color=yes --integration -n 2"
- TEST_COMMAND: "tox -- ${PYTEST_ARGS}"
- EXTERNAL_TESTS_COMMAND: "tox -e py{35,36,37}-external -- ${PYTEST_ARGS}"
- COVERAGE_PREFIX: "${CI_JOB_NAME}."
-
-
-#####################################################
-# Test stage #
-#####################################################
-
-# Run premerge commits
-#
-.tests-template: &tests
- stage: test
-
- before_script:
- # Diagnostics
- - mount
- - df -h
- - tox --version
-
- script:
- - mkdir -p "${INTEGRATION_CACHE}"
- - useradd -Um buildstream
- - chown -R buildstream:buildstream .
-
- # Run the tests as a simple user to test for permission issues
- - su buildstream -c "${TEST_COMMAND}"
- - su buildstream -c "${EXTERNAL_TESTS_COMMAND}"
-
- after_script:
- except:
- - schedules
- artifacts:
- paths:
- - .coverage-reports
-
-tests-debian-9:
- image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-debian:9-master-75925678
- <<: *tests
-
-tests-fedora-29:
- image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:29-master-75925678
- <<: *tests
-
-tests-fedora-30:
- image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:30-master-75925678
- <<: *tests
-
-tests-ubuntu-18.04:
- image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-ubuntu:18.04-master-75925678
- <<: *tests
-
-tests-centos-7.6:
- <<: *tests
- image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-centos:7.6.1810-master-75925678
-
-overnight-fedora-30-aarch64:
- image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:aarch64-30-master-59168197
- tags:
- - aarch64
- <<: *tests
- # We need to override the exclusion from the template
- # in order to run on schedules
- except: []
- only:
- - schedules
-
-tests-unix:
- # Use fedora here, to a) run a test on fedora and b) ensure that we
- # can get rid of ostree - this is not possible with debian-8
- image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:29-master-75925678
- <<: *tests
- variables:
- BST_FORCE_SANDBOX: "chroot"
-
- script:
-
- # We remove the Bubblewrap and OSTree packages here so that we catch any
- # codepaths that try to use them. Removing OSTree causes fuse-libs to
- # disappear unless we mark it as user-installed.
- - dnf mark install fuse-libs systemd-udev
- - dnf erase -y bubblewrap ostree
-
- # Since the unix platform is required to run as root, no user change required
- - ${TEST_COMMAND}
-
-tests-buildbox:
- image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:29-master-75925678
- <<: *tests
- variables:
- BST_FORCE_SANDBOX: "buildbox"
-
- script:
-
- - dnf install -y fuse3
-
- # Before buildbox is a first class citizen we need a good install story for users and this test
- # should mirror that story, for now we build in the test as it is quick and easy.
-
- # Build and install buildbox
- - dnf install -y fuse3-devel glibc-static grpc-plugins grpc-devel protobuf-devel cmake gcc gcc-c++ libuuid-devel
- - git clone https://gitlab.com/BuildGrid/buildbox/buildbox-fuse.git
- - cd buildbox-fuse
- # Pin a specific commit so that any changes to buildbox do not result in unexpected/unannounced buildstream failures
- - git checkout cdd2b00842c39a8f7162c2ae55bf2cefb925e339
- - cmake -B build
- - cmake --build build
- - cmake --build build --target install
- - cd ..
-
- - useradd -Um buildstream
- - chown -R buildstream:buildstream .
-
- - su buildstream -c "${TEST_COMMAND}"
-
-tests-fedora-missing-deps:
- # Ensure that tests behave nicely while missing bwrap and ostree
- image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:29-master-75925678
- <<: *tests
-
- script:
- # We remove the Bubblewrap and OSTree packages here so that we catch any
- # codepaths that try to use them. Removing OSTree causes fuse-libs to
- # disappear unless we mark it as user-installed.
- - dnf mark install fuse-libs systemd-udev
- - dnf erase -y bubblewrap ostree
-
- - useradd -Um buildstream
- - chown -R buildstream:buildstream .
-
- - ${TEST_COMMAND}
-
-tests-fedora-update-deps:
- # Check if the tests pass after updating requirements to their latest
- # allowed version.
- allow_failure: true
- image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:29-master-75925678
- <<: *tests
-
- script:
- - useradd -Um buildstream
- - chown -R buildstream:buildstream .
-
- - make --always-make --directory requirements
- - cat requirements/*.txt
-
- - su buildstream -c "${TEST_COMMAND}"
-
-tests-remote-execution:
- allow_failure: true
- image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:29-master-75925678
- <<: *tests
- before_script:
- - dnf install -y docker docker-compose
- - docker-compose --file ${COMPOSE_MANIFEST} up --detach
- after_script:
- - docker-compose --file ${COMPOSE_MANIFEST} stop
- - docker-compose --file ${COMPOSE_MANIFEST} logs
- - docker-compose --file ${COMPOSE_MANIFEST} down
- services:
- - docker:stable-dind
- variables:
- DOCKER_HOST: tcp://docker:2375
- DOCKER_DRIVER: overlay2
- # Required to be able to connect to the docker daemon. See https://gitlab.com/gitlab-org/gitlab-runner/issues/4501
- DOCKER_TLS_CERTDIR: ""
- COMPOSE_MANIFEST: .gitlab-ci/buildgrid-compose.yml
- ARTIFACT_CACHE_SERVICE: http://docker:50052
- REMOTE_EXECUTION_SERVICE: http://docker:50051
- SOURCE_CACHE_SERVICE: http://docker:50052
- PYTEST_ARGS: "--color=yes --remote-execution"
-
-tests-spawn-multiprocessing-start-method:
- image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:29-master-75925678
- <<: *tests
- variables:
- BST_FORCE_START_METHOD: "spawn"
-
-
-# Lint separately from testing
-lint:
- stage: test
-
- before_script:
- # Diagnostics
- - python3 --version
-
- script:
- - tox -e lint
- except:
- - schedules
-
-tests-wsl-master:
- stage: test
- variables:
- LC_ALL: C.UTF-8
- LANG: C.UTF-8
- tags:
- - wsl
- before_script:
- - mount
- - df -h
- - PATH=/root/.local/bin:$PATH tox --version
- script:
- # Install static buildbox-casd binary
- - wget https://buildbox-casd-binaries.nyc3.cdn.digitaloceanspaces.com/buildbox-casd-x86_64-linux-20190813-20d41af4.tar.xz
- - tar -C /root/.local/bin -xf buildbox-casd-x86_64-linux-20190813-20d41af4.tar.xz
-
- - PATH=/root/.local/bin:$PATH ${TEST_COMMAND}
- only:
- - master
-
-tests-wsl-non-master:
- stage: test
- variables:
- LC_ALL: C.UTF-8
- LANG: C.UTF-8
- tags:
- - wsl
- before_script:
- - mount
- - df -h
- - PATH=/root/.local/bin:$PATH tox --version
- script:
- # Install static buildbox-casd binary
- - wget https://buildbox-casd-binaries.nyc3.cdn.digitaloceanspaces.com/buildbox-casd-x86_64-linux-20190813-20d41af4.tar.xz
- - tar -C /root/.local/bin -xf buildbox-casd-x86_64-linux-20190813-20d41af4.tar.xz
-
- - PATH=/root/.local/bin:$PATH ${TEST_COMMAND}
- when: manual
- except:
- - master
-
-# Automatically build documentation for every commit, we want to know
-# if building documentation fails even if we're not deploying it.
docs:
stage: test
- variables:
- BST_FORCE_SESSION_REBUILD: 1
script:
- env BST_SOURCE_CACHE="$(pwd)/cache/integration-cache/sources" tox -e docs
- mv doc/build/html public
- except:
- - schedules
- artifacts:
- paths:
- - public/
-
-.overnight-tests: &overnight-tests-template
- stage: test
- image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:30-master-75925678
- variables:
- BST_EXT_URL: git+https://gitlab.com/BuildStream/bst-plugins-experimental.git
- BST_EXT_REF: 0.12.0-40-g7aa1423377629281decc455d1090964417c38f2e
- FD_SDK_REF: freedesktop-sdk-18.08.34-0-g9282304d0d932032b8297fb049f44d6a079dc2ea
- before_script:
- - |
- mkdir -p "${HOME}/.config"
- cat <<EOF >"${HOME}/.config/buildstream.conf"
- scheduler:
- fetchers: 2
- EOF
- - dnf install -y ostree python3-gobject-base
- - pip3 install -r requirements/requirements.txt -r requirements/plugin-requirements.txt
- - pip3 wheel --wheel-dir wheels/ --no-deps .
- - pip3 install --no-index wheels/*
- - pip3 install --user -e ${BST_EXT_URL}@${BST_EXT_REF}#egg=bst_ext
- - git clone https://gitlab.com/freedesktop-sdk/freedesktop-sdk.git
- - git -C freedesktop-sdk checkout ${FD_SDK_REF}
- artifacts:
- paths:
- - "${HOME}/.cache/buildstream/logs"
- only:
- - schedules
-
-overnight-tests:
- <<: *overnight-tests-template
- script:
- - make -C freedesktop-sdk
- tags:
- - overnight-tests
-
-overnight-tests-no-cache:
- <<: *overnight-tests-template
- script:
- - sed -i '/artifacts:/,+1 d' freedesktop-sdk/project.conf
- - make -C freedesktop-sdk
- tags:
- - overnight-tests
-
-#####################################################
-# Post stage #
-#####################################################
-
-analysis:
- stage: post
- script:
- - |
- pip3 install radon
- mkdir analysis
-
- - |
- echo "Calculating Maintainability Index"
- radon mi -s -j src/buildstream > analysis/mi.json
- radon mi -s src/buildstream
-
- - |
- echo "Calculating Cyclomatic Complexity"
- radon cc -a -s -j src/buildstream > analysis/cc.json
- radon cc -a -s src/buildstream
-
- - |
- echo "Calculating Raw Metrics"
- radon raw -s -j src/buildstream > analysis/raw.json
- radon raw -s src/buildstream
-
- except:
- - schedules
- artifacts:
- paths:
- - analysis/
-
-# Collate coverage reports
-#
-coverage:
- stage: post
- coverage: '/TOTAL +\d+ +\d+ +(\d+\.\d+)%/'
- script:
- - cp -a .coverage-reports/ ./coverage-sources
- - tox -e coverage
- - cp -a .coverage-reports/ ./coverage-report
- dependencies:
- - tests-centos-7.6
- - tests-debian-9
- - tests-fedora-29
- - tests-fedora-30
- - tests-fedora-missing-deps
- - tests-fedora-update-deps
- - tests-remote-execution
- - tests-ubuntu-18.04
- - tests-unix
- except:
- - schedules
- artifacts:
- paths:
- - coverage-sources/
- - coverage-report/
-
-# Deploy, only for merges which land on master branch.
-#
-pages:
- stage: publish
- dependencies:
- - coverage
- - docs
- variables:
- ACME_DIR: public/.well-known/acme-challenge
- COVERAGE_DIR: public/coverage
- script:
- - mkdir -p ${ACME_DIR}
- # Required to finish the creation of the Let's Encrypt certificate,
- # which allows using https://docs.buildstream.build/ for accessing
- # the documentation.
- - echo ${ACME_CHALLENGE} > ${ACME_DIR}/$(echo ${ACME_CHALLENGE} | cut -c1-43)
- - mkdir -p ${COVERAGE_DIR}
- - cp -a ./coverage-report/ ${COVERAGE_DIR}
artifacts:
paths:
- public/
- only:
- #
- # FIXME:
- #
- # Ideally we want to publish to a different subdir of
- # pages depending on which stable branch we are building here,
- # not currently automatically supported but can be worked around.
- #
- # See https://gitlab.com/gitlab-org/gitlab-ce/issues/35141
- #
- - master
- except:
- - schedules