From 54580f496c31efde288df25d76a6e587d65e44a1 Mon Sep 17 00:00:00 2001 From: Matthew McPherrin Date: Wed, 14 Aug 2019 14:13:14 -0700 Subject: [PATCH] Add a docker container & run tests there This is a bit of a weird idea: We run tests as part of the docker build. --- .travis.yml | 17 ++++++----------- Dockerfile | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+), 11 deletions(-) create mode 100644 Dockerfile diff --git a/.travis.yml b/.travis.yml index 90dbeeb..e0dd8a1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,19 +5,14 @@ language: go go: - '1.12.x' -install: - - pip install cram --user - -before_script: - - go vet -v ./... +services: + - docker script: - - GOOS=linux GOARCH=amd64 go build -o certigo-linux-amd64 - - GOOS=darwin GOARCH=amd64 go build -o certigo-darwin-amd64 - - GOOS=windows GOARCH=amd64 go build -o certigo-windows-amd64.exe - - go test -v ./... - - ln -s certigo-linux-amd64 certigo - - PATH=$PWD:$PATH cram -v tests/*.t + - docker build -f Dockerfile . + - GOOS=linux GOARCH=amd64 go build -o certigo-$GOOS-$GOARCH + - GOOS=darwin GOARCH=amd64 go build -o certigo-$GOOS-$GOARCH + - GOOS=windows GOARCH=amd64 go build -o certigo-$GOOS-$GOARCH deploy: provider: releases diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d6432d2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +FROM golang:alpine AS builder + +COPY . /src +WORKDIR /src +ENV CGO_ENABLED=0 +RUN go build -mod=vendor -o /bin/certigo +RUN go vet -mod=vendor ./... +RUN go test -mod=vendor ./... + +FROM python +RUN pip install cram + +COPY --from=builder /bin/certigo /bin/certigo + +COPY tests /tests +RUN cram -v /tests/*.t + +FROM alpine +RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/* +COPY --from=builder /bin/certigo /bin/certigo +ENTRYPOINT ["/bin/certigo"]