diff options
author | Chandan Singh <chandan@chandansingh.net> | 2019-09-03 01:07:24 +0100 |
---|---|---|
committer | Chandan Singh <chandan@chandansingh.net> | 2019-09-03 01:07:24 +0100 |
commit | 4a86e5d9011b5f2b911cc77c3e905ab0d7a8969d (patch) | |
tree | c567901bdcfd13939fc7734bc4778a8e0a845dfe | |
parent | cca1b6b9e8e8bade3f604e1f46bcaa3230b5fcda (diff) | |
download | buildstream-chandan/test.tar.gz |
TESTchandan/test
-rw-r--r-- | .gitlab-ci.yml | 390 |
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 |