#------------------------------------------------------------- # Stage 1: Build and Unit tests #------------------------------------------------------------- FROM golang:1.13 COPY . /go/src/github.com/minio/minio WORKDIR /go/src/github.com/minio/minio RUN apt-get update && apt-get install -y jq ENV GO111MODULE=on ENV SIMPLE_CI 1 RUN git config --global http.cookiefile /gitcookie/.gitcookie RUN apt-get update && \ apt-get -y install sudo RUN touch /etc/sudoers RUN echo "root ALL=(ALL) ALL" >> /etc/sudoers RUN echo "ci ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers RUN echo "Defaults env_reset" >> /etc/sudoers RUN echo 'Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go:/usr/local/go/bin"' >> /etc/sudoers RUN mkdir -p /home/ci/.cache RUN groupadd -g 999 ci && \ useradd -r -u 999 -g ci ci && \ chown -R ci:ci /go /home/ci && \ chmod -R a+rw /go USER ci # -- tests -- RUN make RUN bash -c 'diff -au <(gofmt -s -d cmd) <(printf "")' RUN bash -c 'diff -au <(gofmt -s -d pkg) <(printf "")' RUN for d in $(go list ./... | grep -v browser); do go test -v -race --timeout 20m "$d"; done RUN make verifiers RUN make crosscompile RUN make verify #------------------------------------------------------------- # Stage 2: Test Frontend #------------------------------------------------------------- FROM node:10.15-stretch-slim ENV SIMPLE_CI 1 COPY browser /minio/browser WORKDIR /minio/browser RUN yarn RUN yarn test #------------------------------------------------------------- # Stage 3: Run Gateway Tests #------------------------------------------------------------- FROM ubuntu:16.04 COPY --from=0 /go/src/github.com/minio/minio/minio /usr/bin/minio COPY buildscripts/gateway-tests.sh /usr/bin/gateway-tests.sh COPY mint /mint ENV DEBIAN_FRONTEND noninteractive ENV LANG C.UTF-8 ENV GOROOT /usr/local/go ENV GOPATH /usr/local ENV PATH $GOPATH/bin:$GOROOT/bin:$PATH ENV SIMPLE_CI 1 ENV MINT_ROOT_DIR /mint RUN apt-get --yes update && apt-get --yes upgrade && \ apt-get --yes --quiet install wget jq curl git dnsmasq && \ cd /mint && /mint/release.sh WORKDIR /mint RUN /usr/bin/gateway-tests.sh