#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
ARG GO_VERSION
FROM golang:${GO_VERSION} AS get-go
FROM debian:buster

COPY --from=get-go /usr/local/go /usr/local/go
ENV PATH=/usr/local/go/bin:${PATH} \
    GOPATH=/go
ENV PATH=${GOPATH}/bin:${PATH}

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        ca-certificates \
        # gcc is a CGO dependency
        gcc \
        git \
        # libc6-dev is a CGO dependency
        libc6-dev \
        wget && \
    apt-get clean

ARG DIR=github.com/apache/trafficcontrol

ADD cache-config/t3cutil /go/src/$DIR/cache-config/t3cutil
ADD traffic_monitor /go/src/$DIR/traffic_monitor
ADD traffic_ops /go/src/$DIR/traffic_ops
ADD lib /go/src/$DIR/lib
ADD go.mod go.sum /go/src/$DIR/
ADD vendor /go/src/$DIR/vendor
VOLUME ["/junit"]

WORKDIR /go/src/$DIR/traffic_monitor

RUN go install github.com/jstemmer/go-junit-report@latest
RUN go mod vendor -v
CMD go test -v ./... ../lib/go-tc/... 2>&1 | \
		go-junit-report --package-name=golang.test.tm --set-exit-code > /junit/golang.test.tm.xml && \
	chmod 777 -R /junit && \
	cat /junit/golang.test.tm.xml
#
# vi:syntax=Dockerfile
