From 36603fa8ed8ffd8eae5b8a3e84b7446cac24b6ac Mon Sep 17 00:00:00 2001 From: Martin Blanchard Date: Fri, 15 Mar 2019 10:29:27 +0000 Subject: .gitlab-ci.yml: Add a CI test job for remote execution https://gitlab.com/BuildStream/buildstream/issues/629 --- .gitlab-ci.yml | 24 ++++++++++++++ .gitlab-ci/buildgrid-compose.yml | 72 ++++++++++++++++++++++++++++++++++++++++ tox.ini | 3 ++ 3 files changed, 99 insertions(+) create mode 100644 .gitlab-ci/buildgrid-compose.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 210de8df4..99bde6066 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -138,6 +138,29 @@ tests-fedora-update-deps: - su buildstream -c "${TEST_COMMAND}" +tests-remote-execution: + allow_failure: true + image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:29-master-47052095 + <<: *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 + 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" + + # Lint separately from testing lint: stage: test @@ -308,6 +331,7 @@ coverage: - tests-fedora-29 - tests-fedora-missing-deps - tests-fedora-update-deps + - tests-remote-execution - tests-ubuntu-18.04 - tests-unix except: diff --git a/.gitlab-ci/buildgrid-compose.yml b/.gitlab-ci/buildgrid-compose.yml new file mode 100644 index 000000000..09165818b --- /dev/null +++ b/.gitlab-ci/buildgrid-compose.yml @@ -0,0 +1,72 @@ +## +# BuildGrid Compose manifest for BuildStream. +# +# Spins-up a unnamed and unauthenticated grid: +# - Controller + CAS + AC at http://localhost:50051 +# - Ref. + CAS at: http://localhost:50052 +# +# BuildStream configuration snippet: +# +# artifacts: +# url: http://localhost:50052 +# push: true +# remote-execution: +# execution-service: +# url: http://localhost:50051 +# action-cache-service: +# url: http://localhost:50051 +# storage-service: +# url: http://localhost:50051 +# +# Basic usage: +# - docker-compose -f buildgrid-compose.yml up +# - docker-compose -f buildgrid-compose.yml down +# +version: "3.2" + +services: + controller: + image: registry.gitlab.com/buildgrid/buildgrid.hub.docker.com/buildgrid:nightly + command: [ + "bgd", "server", "start", "-vvv", + "/etc/buildgrid/default.conf"] + ports: + - 50051:50051 + networks: + - grid + + bot: + image: registry.gitlab.com/buildgrid/buildgrid.hub.docker.com/buildgrid:nightly + command: [ + "bgd", "bot", "--parent=", "-vvv", + "--remote=http://controller:50051", + "--remote-cas=http://controller:50051", + "buildbox", + "--local-cas", "/var/lib/buildgrid/cache", + "--fuse-dir", "/mnt"] + privileged: true + volumes: + - type: volume + source: cache + target: /var/lib/buildgrid/cache + depends_on: + - controller + networks: + - grid + + storage: + image: registry.gitlab.com/buildgrid/buildgrid.hub.docker.com/buildgrid:nightly + command: [ + "bgd", "server", "start", "-vvv", + "/etc/buildgrid/artifacts.conf"] + ports: + - 50052:50052 + networks: + - grid + +networks: + grid: + driver: bridge + +volumes: + cache: diff --git a/tox.ini b/tox.ini index 21c94e6fa..6cfe51818 100644 --- a/tox.ini +++ b/tox.ini @@ -28,6 +28,7 @@ deps = # Only require coverage and pytest-cov when using it !nocover: -rrequirements/cov-requirements.txt passenv = + ARTIFACT_CACHE_SERVICE BST_FORCE_BACKEND GI_TYPELIB_PATH INTEGRATION_CACHE @@ -37,6 +38,8 @@ passenv = HTTPS_PROXY no_proxy NO_PROXY + REMOTE_EXECUTION_SERVICE + SOURCE_CACHE_SERVICE SSL_CERT_FILE # -- cgit v1.2.1