FROM golang:1.9-alpine3.6 as build_and_test
MAINTAINER DS Team <ds@twitch.tv>
WORKDIR /go/src/code.justin.tv/extensions/smart/services/smart
COPY . .
RUN apk update && \
    apk --no-cache add git ca-certificates
RUN go get github.com/axw/gocov/gocov && \
    go get github.com/t-yuki/gocov-xml
RUN gocov test ./... --short > coverage.json && \
    gocov-xml < coverage.json > coverage.xml
WORKDIR /go/src/code.justin.tv/extensions/smart/services/smart/cmd
RUN CGO_ENABLED=0 GOOS=linux go build -a -v -installsuffix cgo -o smart . && \
    chmod 755 smart

FROM busybox:latest as run
MAINTAINER DS Team <ds@twitch.tv>
EXPOSE 8000
WORKDIR /root/
COPY --from=build_and_test /etc/ssl/certs /etc/ssl/certs
COPY --from=build_and_test /go/src/code.justin.tv/extensions/smart/services/smart/cmd/smart .
COPY --from=build_and_test /go/src/code.justin.tv/extensions/smart/services/smart/coverage.* ./
CMD ["./smart"]
