2019-05-06 06:35:35 -04:00
|
|
|
FROM ruby:2.6-stretch
|
2020-03-16 17:09:21 -04:00
|
|
|
LABEL maintainer="GitLab Quality Department <quality@gitlab.com>"
|
2017-06-27 06:13:05 -04:00
|
|
|
ENV DEBIAN_FRONTEND noninteractive
|
2017-06-19 12:21:36 -04:00
|
|
|
|
2018-10-15 02:10:26 -04:00
|
|
|
##
|
|
|
|
# Add support for stretch-backports
|
|
|
|
#
|
|
|
|
RUN echo "deb http://ftp.debian.org/debian stretch-backports main" >> /etc/apt/sources.list
|
|
|
|
|
2017-05-24 07:56:31 -04:00
|
|
|
##
|
|
|
|
# Update APT sources and install some dependencies
|
|
|
|
#
|
|
|
|
RUN sed -i "s/httpredir.debian.org/ftp.us.debian.org/" /etc/apt/sources.list
|
2019-12-10 19:08:25 -05:00
|
|
|
RUN apt-get update && apt-get install -y wget unzip xvfb lsb-release
|
2018-10-15 02:10:26 -04:00
|
|
|
|
|
|
|
##
|
|
|
|
# Install some packages from backports
|
|
|
|
#
|
2018-10-15 02:10:38 -04:00
|
|
|
RUN apt-get -y -t stretch-backports install git git-lfs
|
2017-05-24 07:56:31 -04:00
|
|
|
|
2017-11-20 10:21:52 -05:00
|
|
|
##
|
|
|
|
# Install Docker
|
|
|
|
#
|
|
|
|
RUN wget -q https://download.docker.com/linux/static/stable/x86_64/docker-17.09.0-ce.tgz && \
|
|
|
|
tar -zxf docker-17.09.0-ce.tgz && mv docker/docker /usr/local/bin/docker && \
|
|
|
|
rm docker-17.09.0-ce.tgz
|
|
|
|
|
2017-05-24 07:56:31 -04:00
|
|
|
##
|
2017-06-19 12:21:36 -04:00
|
|
|
# Install Google Chrome version with headless support
|
2017-05-24 07:56:31 -04:00
|
|
|
#
|
2017-06-19 12:21:36 -04:00
|
|
|
RUN curl -sS -L https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
|
|
|
|
RUN echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google.list
|
2019-04-12 14:03:19 -04:00
|
|
|
RUN apt-get update -q && apt-get install -y google-chrome-stable && apt-get clean
|
2017-05-24 07:56:31 -04:00
|
|
|
|
|
|
|
##
|
|
|
|
# Install chromedriver to make it work with Selenium
|
|
|
|
#
|
2017-06-27 06:13:05 -04:00
|
|
|
RUN wget -q https://chromedriver.storage.googleapis.com/$(wget -q -O - https://chromedriver.storage.googleapis.com/LATEST_RELEASE)/chromedriver_linux64.zip
|
2017-05-24 07:56:31 -04:00
|
|
|
RUN unzip chromedriver_linux64.zip -d /usr/local/bin
|
|
|
|
|
2019-12-20 04:24:38 -05:00
|
|
|
##
|
|
|
|
# Install K3d local cluster support
|
|
|
|
# https://github.com/rancher/k3d
|
|
|
|
#
|
|
|
|
RUN curl -s https://raw.githubusercontent.com/rancher/k3d/master/install.sh | TAG=v1.3.4 bash
|
|
|
|
|
2018-06-04 12:18:48 -04:00
|
|
|
##
|
|
|
|
# Install gcloud and kubectl CLI used in Auto DevOps test to create K8s
|
|
|
|
# clusters
|
|
|
|
#
|
|
|
|
RUN export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \
|
|
|
|
echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \
|
|
|
|
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
|
|
|
|
|
2019-08-06 08:50:52 -04:00
|
|
|
WORKDIR /home/gitlab/qa
|
|
|
|
COPY ./qa/Gemfile* /home/gitlab/qa/
|
|
|
|
COPY ./config/initializers/0_inject_enterprise_edition_module.rb /home/gitlab/config/initializers/
|
2019-10-03 20:06:03 -04:00
|
|
|
# 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)
|
2019-08-22 12:06:05 -04:00
|
|
|
COPY VERSION ./ee/app/models/license.r[b] /home/gitlab/ee/app/models/
|
2019-08-06 08:50:52 -04:00
|
|
|
COPY ./lib/gitlab.rb /home/gitlab/lib/
|
2019-10-10 14:06:00 -04:00
|
|
|
COPY ./lib/gitlab/utils.rb /home/gitlab/lib/gitlab/
|
2019-10-03 20:06:03 -04:00
|
|
|
COPY ./INSTALLATION_TYPE ./VERSION /home/gitlab/
|
|
|
|
RUN cd /home/gitlab/qa/ && bundle install --jobs=$(nproc) --retry=3 --quiet
|
2019-08-06 08:50:52 -04:00
|
|
|
COPY ./qa /home/gitlab/qa
|
2017-03-16 09:04:43 -04:00
|
|
|
|
2017-02-20 06:45:04 -05:00
|
|
|
ENTRYPOINT ["bin/test"]
|