diff options
Diffstat (limited to '.gitlab/ci/test-on-gdk/main.gitlab-ci.yml')
-rw-r--r-- | .gitlab/ci/test-on-gdk/main.gitlab-ci.yml | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml b/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml new file mode 100644 index 00000000000..a04d81fb342 --- /dev/null +++ b/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml @@ -0,0 +1,81 @@ +default: + interruptible: true + +include: + - local: .gitlab/ci/package-and-test/rules.gitlab-ci.yml + +dont-interrupt-me: + extends: .rules:dont-interrupt + stage: test + interruptible: false + script: + - echo "This jobs makes sure this pipeline won't be interrupted! See https://docs.gitlab.com/ee/ci/yaml/#interruptible." + +.run-tests: + stage: test + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-ruby-${RUBY_VERSION}:bundler-2.3-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION} + services: + - docker:${DOCKER_VERSION}-dind + tags: + - e2e + before_script: + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - sysctl -n -w fs.inotify.max_user_watches=524288 + variables: + DOCKER_DRIVER: overlay2 + DOCKER_HOST: tcp://docker:2375 + QA_GDK_IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-qa-gdk:master" + QA_GENERATE_ALLURE_REPORT: "false" + QA_CAN_TEST_PRAEFECT: "false" + QA_INTERCEPT_REQUESTS: "false" + QA_RUN_TYPE: e2e-test-on-gdk + TEST_LICENSE_MODE: $QA_TEST_LICENSE_MODE + EE_LICENSE: $QA_EE_LICENSE + GITHUB_ACCESS_TOKEN: $QA_GITHUB_ACCESS_TOKEN + GITLAB_QA_ADMIN_ACCESS_TOKEN: $QA_ADMIN_ACCESS_TOKEN + QA_KNAPSACK_REPORTS: qa-smoke,ee-instance-parallel + timeout: 2 hours + artifacts: + when: always + paths: + - test_output + - logs + expire_in: 7 days + script: + - echo -e "\e[0Ksection_start:`date +%s`:pull_image\r\e[0KPull GDK QA image" + - docker pull ${QA_GDK_IMAGE} + - echo -e "\e[0Ksection_end:`date +%s`:pull_image\r\e[0K" + - echo -e "\e[0Ksection_start:`date +%s`:launch_gdk_and_tests\r\e[0KLaunch GDK and run QA tests" + - cd qa && bundle install --jobs=$(nproc) --retry=3 --quiet + - mkdir -p $CI_PROJECT_DIR/test_output $CI_PROJECT_DIR/logs/gdk $CI_PROJECT_DIR/logs/gitlab + # This command matches the permissions of the user that runs GDK inside the container. + - chown -R 1000:1000 $CI_PROJECT_DIR/test_output $CI_PROJECT_DIR/logs + - | + docker run --rm --name gdk --add-host gdk.test:127.0.0.1 --shm-size=2gb \ + --env-file <(bundle exec rake ci:env_var_name_list) \ + --volume /var/run/docker.sock:/var/run/docker.sock:z \ + --volume $CI_PROJECT_DIR/test_output:/home/gdk/gdk/gitlab/qa/tmp:z \ + --volume $CI_PROJECT_DIR/logs/gdk:/home/gdk/gdk/log \ + --volume $CI_PROJECT_DIR/logs/gitlab:/home/gdk/gdk/gitlab/log \ + ${QA_GDK_IMAGE} "${CI_COMMIT_REF_SLUG}" "$TEST_GDK_TAGS --tag ~requires_praefect" || true + - echo -e "\e[0Ksection_end:`date +%s`:launch_gdk_and_tests\r\e[0K" + allow_failure: true + +test-on-gdk-smoke: + extends: + - .run-tests + parallel: 2 + variables: + TEST_GDK_TAGS: "--tag smoke" + QA_KNAPSACK_REPORT_NAME: qa-smoke + rules: + - when: always + +test-on-gdk-full: + extends: + - .run-tests + parallel: 5 + variables: + QA_KNAPSACK_REPORT_NAME: ee-instance-parallel + rules: + - when: manual |