Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'qa/Dockerfile')
-rw-r--r--qa/Dockerfile46
1 files changed, 25 insertions, 21 deletions
diff --git a/qa/Dockerfile b/qa/Dockerfile
index 81f207cbab9..ad4bffb3bf2 100644
--- a/qa/Dockerfile
+++ b/qa/Dockerfile
@@ -3,10 +3,6 @@ LABEL maintainer="GitLab Quality Department <quality@gitlab.com>"
ENV DEBIAN_FRONTEND="noninteractive"
ENV DOCKER_VERSION="17.09.0-ce"
-ENV CHROME_VERSION="87.0.4280.141-1"
-ENV CHROME_DRIVER_VERSION="87.0.4280.88"
-ENV CHROME_DEB="google-chrome-stable_${CHROME_VERSION}_amd64.deb"
-ENV CHROME_URL="https://s3.amazonaws.com/gitlab-google-chrome-stable/${CHROME_DEB}"
##
# Update APT sources and install dependencies
@@ -22,22 +18,6 @@ RUN wget -q "https://download.docker.com/linux/static/stable/x86_64/docker-${DOC
rm "docker-${DOCKER_VERSION}.tgz"
##
-# Install Google Chrome version with headless support
-# Download from our local S3 bucket, populated by https://gitlab.com/gitlab-org/gitlab-build-images/-/blob/master/scripts/cache-google-chrome
-#
-RUN curl --silent --show-error --fail -O "${CHROME_URL}" && \
- dpkg -i "./${CHROME_DEB}" || true && \
- apt-get install -f -y && \
- rm -f "./${CHROME_DEB}"
-
-##
-# Install chromedriver to make it work with Selenium
-#
-RUN wget -q "https://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/chromedriver_linux64.zip"
-RUN unzip chromedriver_linux64.zip -d /usr/local/bin
-RUN rm -f chromedriver_linux64.zip
-
-##
# Install client certificate - Bug in Chrome Headless: https://gitlab.com/gitlab-org/gitlab/-/issues/331492
#
# RUN apt install -y libnss3-tools
@@ -66,8 +46,32 @@ RUN export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \
apt-get update -y && apt-get install google-cloud-sdk kubectl -y
+##
+# Install Google Chrome version with headless support
+# Download from our local S3 bucket, populated by https://gitlab.com/gitlab-org/gitlab-build-images/-/blob/master/scripts/cache-google-chrome
+#
+# https://s3.amazonaws.com/gitlab-google-chrome-stable
+ENV CHROME_VERSION="91.0.4472.77-1"
+ENV CHROME_DEB="google-chrome-stable_${CHROME_VERSION}_amd64.deb"
+ENV CHROME_URL="https://s3.amazonaws.com/gitlab-google-chrome-stable/${CHROME_DEB}"
+RUN curl --silent --show-error --fail -O "${CHROME_URL}" && \
+ dpkg -i "./${CHROME_DEB}" || true && \
+ apt-get install -f -y && \
+ rm -f "./${CHROME_DEB}"
+
WORKDIR /home/gitlab/qa
+
+# Install qa dependencies or fetch from cache if unchanged
COPY ./qa/Gemfile* /home/gitlab/qa/
+RUN bundle install --jobs=$(nproc) --retry=3 --without=development --quiet
+
+##
+# Fetch chromedriver based on version of chrome
+# Copy rakefile first so that webdriver is not reinstalled on every code change
+# https://github.com/titusfortner/webdrivers
+COPY ./qa/tasks/webdrivers.rake /home/gitlab/qa/tasks/
+RUN bundle exec rake -f tasks/webdrivers.rake webdrivers:chromedriver:update
+
COPY ./config/initializers/0_inject_enterprise_edition_module.rb /home/gitlab/config/initializers/
# Copy VERSION to ensure the COPY succeeds to copy at least one file since ee/app/models/license.rb isn't present in FOSS
# The [b] part makes ./ee/app/models/license.r[b] a pattern that is allowed to return no files (which is the case in FOSS)
@@ -75,7 +79,7 @@ COPY VERSION ./ee/app/models/license.r[b] /home/gitlab/ee/app/models/
COPY ./lib/gitlab.rb /home/gitlab/lib/
COPY ./lib/gitlab/utils.rb /home/gitlab/lib/gitlab/
COPY ./INSTALLATION_TYPE ./VERSION /home/gitlab/
-RUN cd /home/gitlab/qa/ && bundle install --jobs=$(nproc) --retry=3 --without=development --quiet
+
COPY ./qa /home/gitlab/qa
ENTRYPOINT ["bin/test"]