summaryrefslogtreecommitdiff
path: root/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab/ci/test-on-gdk/main.gitlab-ci.yml')
-rw-r--r--.gitlab/ci/test-on-gdk/main.gitlab-ci.yml81
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