summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChandan Singh <csingh43@bloomberg.net>2019-01-25 18:33:33 +0000
committerChandan Singh <csingh43@bloomberg.net>2019-01-25 18:33:33 +0000
commitea0e16c7b0d9e368533d51b635c51755ca7b4882 (patch)
tree2e2f85d7f5c1c54a71a0f4a2101a5fee65876de8
parent137d31cd1dc46706cddac5ecc6abcb80f5091564 (diff)
downloadbuildstream-channdan/test.tar.gz
DO NOT MERGE: list cache contentschanndan/test
-rw-r--r--.gitlab-ci.yml274
1 files changed, 1 insertions, 273 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9a3de5154..5bd568250 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -35,8 +35,7 @@ variables:
- useradd -Um buildstream
- chown -R buildstream:buildstream .
- # Run the tests as a simple user to test for permission issues
- - su buildstream -c "${TEST_COMMAND}"
+ - find "${CI_PROJECT_DIR}/cache"
after_script:
except:
@@ -48,274 +47,3 @@ variables:
tests-debian-9:
image: buildstream/testsuite-debian:9-5da27168-32c47d1c
<<: *tests
-
-tests-fedora-27:
- image: buildstream/testsuite-fedora:27-5da27168-32c47d1c
- <<: *tests
-
-tests-fedora-28:
- image: buildstream/testsuite-fedora:28-5da27168-32c47d1c
- <<: *tests
-
-tests-ubuntu-18.04:
- image: buildstream/testsuite-ubuntu:18.04-5da27168-32c47d1c
- <<: *tests
-
-tests-python-3.7-stretch:
- image: buildstream/testsuite-python:3.7-stretch-a60f0c39
- <<: *tests
-
- variables:
- # Note that we explicitly specify TOXENV in this case because this
- # image has both 3.6 and 3.7 versions. python3.6 cannot be removed because
- # some of our base dependencies declare it as their runtime dependency.
- TOXENV: py37
-
-tests-centos-7.6:
- <<: *tests
- image: buildstream/testsuite-centos:7.6-5da27168-32c47d1c
-
-overnight-fedora-28-aarch64:
- image: buildstream/testsuite-fedora:aarch64-28-5da27168-32c47d1c
- tags:
- - aarch64
- <<: *tests
- # We need to override the exclusion from the template
- # in order to run on schedules
- except: []
- only:
- - schedules
- before_script:
- # grpcio needs to be compiled from source on aarch64 so we additionally
- # need a C++ compiler here.
- # FIXME: Ideally this would be provided by the base image. This will be
- # unblocked by https://gitlab.com/BuildStream/buildstream-docker-images/issues/34
- - dnf install -y gcc-c++
-
-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: buildstream/testsuite-fedora:27-5da27168-32c47d1c
- <<: *tests
- 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. Removing OSTree causes fuse-libs to
- # disappear unless we mark it as user-installed.
- - dnf mark install fuse-libs
- - dnf erase -y bubblewrap ostree
-
- # Since the unix platform is required to run as root, no user change required
- - ${TEST_COMMAND}
-
-tests-fedora-missing-deps:
- # Ensure that tests behave nicely while missing bwrap and ostree
- image: buildstream/testsuite-fedora:28-5da27168-32c47d1c
- <<: *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
- - 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: buildstream/testsuite-fedora:28-5da27168-32c47d1c
- <<: *tests
-
- script:
- - useradd -Um buildstream
- - chown -R buildstream:buildstream .
-
- - make --always-make --directory requirements
- - cat requirements/*.txt
-
- - su buildstream -c "${TEST_COMMAND}"
-
-# Lint separately from testing
-lint:
- stage: test
-
- before_script:
- # Diagnostics
- - python3 --version
-
- script:
- - tox -e lint
- except:
- - schedules
-
-# 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
- variables:
- BST_EXT_URL: git+https://gitlab.com/BuildStream/bst-external.git
- BST_EXT_REF: 0.9.0-0-g63a19e8068bd777bd9cd59b1a9442f9749ea5a85
- FD_SDK_REF: freedesktop-sdk-18.08.25-0-g250939d465d6dd7768a215f1fa59c4a3412fc337
- before_script:
- - |
- mkdir -p "${HOME}/.config"
- cat <<EOF >"${HOME}/.config/buildstream.conf"
- scheduler:
- fetchers: 2
- EOF
- - pip3 install -r requirements/requirements.txt -r requirements/plugin-requirements.txt
- - pip3 install --no-index .
- - 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/bootstrap/project.conf
- - sed -i '/artifacts:/,+1 d' freedesktop-sdk/project.conf
- - make -C freedesktop-sdk
- tags:
- - overnight-tests
-
-# Check code quality with gitlab's built-in feature.
-#
-code_quality:
- image: docker:stable
- stage: test
- variables:
- DOCKER_DRIVER: overlay2
- allow_failure: true
- services:
- - docker:stable-dind
- script:
- - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- - docker run
- --env SOURCE_CODE="$PWD"
- --volume "$PWD":/code
- --volume /var/run/docker.sock:/var/run/docker.sock
- "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
- except:
- - schedules
- artifacts:
- paths: [gl-code-quality-report.json]
-
-#####################################################
-# Post stage #
-#####################################################
-
-analysis:
- stage: post
- script:
- - |
- pip3 install radon
- mkdir analysis
-
- - |
- echo "Calculating Maintainability Index"
- radon mi -s -j buildstream > analysis/mi.json
- radon mi -s buildstream
-
- - |
- echo "Calculating Cyclomatic Complexity"
- radon cc -a -s -j buildstream > analysis/cc.json
- radon cc -a -s buildstream
-
- - |
- echo "Calculating Raw Metrics"
- radon raw -s -j buildstream > analysis/raw.json
- radon raw -s 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-debian-9
- - tests-fedora-27
- - tests-fedora-28
- - tests-fedora-missing-deps
- - 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: post
- dependencies:
- - docs
- variables:
- ACME_DIR: public/.well-known/acme-challenge
- 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)
- 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