diff --git a/Dockerfile b/Dockerfile index 7dfed40..d0a3117 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.10.6-alpine3.8 +FROM golang:1.14-alpine COPY goroot/ /go/ # this is used to lint and build tarball diff --git a/Dockerfile.git b/Dockerfile.git index 89cdcee..59c0471 100644 --- a/Dockerfile.git +++ b/Dockerfile.git @@ -1,2 +1,2 @@ -FROM golang:1.10.6-alpine3.8 +FROM golang:1.14-alpine RUN apk --update add git diff --git a/make.sh b/make.sh index 7d12f1f..4844ac0 100755 --- a/make.sh +++ b/make.sh @@ -6,15 +6,13 @@ set -ex find . -name "goroot" -type d | xargs rm -rf mkdir goroot - -docker build -f Dockerfile.git -t golang-git:1.10.6-alpine3.8 . -docker run --user $(id -u ${USER}):$(id -g ${USER}) -v ${PWD}/goroot:/go/ --rm golang-git:1.10.6-alpine3.8 /bin/sh -c 'go get github.com/signalsciences/tlstext && go get github.com/tinylib/msgp && go get github.com/alecthomas/gometalinter' +docker build -f Dockerfile.git -t golang-git:1.14-alpine . +docker run --user $(id -u ${USER}):$(id -g ${USER}) -v ${PWD}/goroot:/go/ --rm golang-git:1.14-alpine /bin/sh -c 'go get github.com/signalsciences/tlstext && go get github.com/tinylib/msgp && go get github.com/alecthomas/gometalinter' ./scripts/build-docker.sh # run module tests ./scripts/test.sh - BASE=$PWD ## setup our package properties by distro PKG_NAME="sigsci-module-golang" @@ -22,7 +20,6 @@ DEST_BUCKET="package-build-artifacts" DEST_KEY="${PKG_NAME}/${GITHUB_RUN_NUMBER}" VERSION=$(cat ./VERSION) - cd ${BASE} echo "DONE" @@ -51,9 +48,3 @@ aws s3api put-object \ --body "CHANGELOG.md" \ --key "${DEST_KEY}/CHANGELOG.md" \ --grant-full-control id="${PROD_ID}" - - - - - - diff --git a/scripts/test-golang114/Dockerfile b/scripts/test-golang114/Dockerfile new file mode 100644 index 0000000..17a6ba0 --- /dev/null +++ b/scripts/test-golang114/Dockerfile @@ -0,0 +1,7 @@ +FROM golang:1.14-alpine + +COPY goroot/ /go/ + +# we will mount the current directory here +VOLUME [ "/go/src/github.com/signalsciences/sigsci-module-golang" ] +WORKDIR /go/src/github.com/signalsciences/sigsci-module-golang diff --git a/scripts/test-golang114/docker-compose.override.yml b/scripts/test-golang114/docker-compose.override.yml new file mode 100644 index 0000000..7af37fd --- /dev/null +++ b/scripts/test-golang114/docker-compose.override.yml @@ -0,0 +1,15 @@ +version: "3" + +services: + # this defines our webserver uses our sigsci-module + # we only define it so it is attached to our fake network + # it will be run a few times with different options manually + # + # The volumes spec is a bit weird.. this script is run in scripts/test but + # needs stuff in ../../examples. Consider moving. + web: + volumes: + - ../..:/go/src/github.com/signalsciences/sigsci-module-golang + command: [ "go", "run", "/go/src/github.com/signalsciences/sigsci-module-golang/examples/mtest/main.go" ] + environment: + - DEBUG=0 diff --git a/scripts/test-golang114/docker-compose.yml b/scripts/test-golang114/docker-compose.yml new file mode 100644 index 0000000..8b8e9ae --- /dev/null +++ b/scripts/test-golang114/docker-compose.yml @@ -0,0 +1,59 @@ +version: "3" +networks: + mtest: + +services: + # this defines our webserver uses our sigsci-module + # we only define it so it is attached to our fake network + # it will be run a few times with different options manually + # + # + web: + build: + context: . + dockerfile: Dockerfile + expose: + - "8085" + networks: + - mtest + depends_on: + - agent + + # agent + agent: + image: 803688608479.dkr.ecr.us-west-2.amazonaws.com/local-dev/sigsci-agent:latest + command: [ "-debug-log-web-inputs", "2", "-rpc-address", "9090", "-debug-rpc-test-harness", "-debug-standalone", "3" ] + expose: + - "9090" + - "12345" + networks: + - mtest + + # punching bag + punchingbag: + image: 803688608479.dkr.ecr.us-west-2.amazonaws.com/local-dev/module-testing:latest + networks: + - mtest + expose: + - "8086" + command: [ "/bin/punchingbag", "-addr", ":8086" ] + + # mtest + # + mtest: + image: 803688608479.dkr.ecr.us-west-2.amazonaws.com/local-dev/module-testing:latest + networks: + - mtest + depends_on: + - web + - agent + - punchingbag + environment: + - DISABLE_HTTP_OPTIONS=1 + - DISABLE_NOCOOKIE=1 + - MTEST_BASEURL=web:8085 + - MTEST_AGENT=agent:12345 + - "ALT_RESPONSE_CODES=300 301 302 403 404 500" + - "MTEST_RUN_TEST_BLOCK_VIA_REDIRECT=true" + command: [ "/bin/wait-for", "web:8085", "--", "/bin/mtest", "-test.v" ] + diff --git a/scripts/test-golang114/test.sh b/scripts/test-golang114/test.sh new file mode 100755 index 0000000..c2140da --- /dev/null +++ b/scripts/test-golang114/test.sh @@ -0,0 +1,45 @@ +#!/bin/bash +set -e + +DOCKERCOMPOSE="docker-compose" + +# run at end no matter what +cleanup() { + echo "shutting down" + # capture log output + $DOCKERCOMPOSE logs --no-color agent >& agent.log + $DOCKERCOMPOSE logs --no-color web >& web.log + $DOCKERCOMPOSE logs --no-color mtest >& mtest.log + $DOCKERCOMPOSE logs --no-color punchingbag >& punchingbag.log + + # delete everything + $DOCKERCOMPOSE down + + # show output of module testing + cat mtest.log +} +trap cleanup 0 1 2 3 6 + +set -x + +# attempt to clean up any leftover junk +$DOCKERCOMPOSE down + +$DOCKERCOMPOSE pull --ignore-pull-failures + +# start everything, run tests +# +# --no-color --> safe for ci +# --build --> alway build test server/module container +# --abort-on-container-exit --> without this, the other servers keep the process running +# --exit-code-from mtest --> make exit code be the result of module test +# +# > /dev/null --> output of all servers is mixed together and ugly +# we get the individual logs at end +# +if [ -d "goroot" ]; then + rm -rf goroot +fi +docker run -v ${PWD}/goroot:/go/ --rm golang:1.14-alpine /bin/sh -c 'apk --update add git && go get github.com/signalsciences/tlstext && go get github.com/tinylib/msgp && go get github.com/alecthomas/gometalinter' +$DOCKERCOMPOSE up --no-color --build --abort-on-container-exit --exit-code-from mtest > /dev/null + diff --git a/scripts/test.sh b/scripts/test.sh index aae4501..7b1d740 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -2,5 +2,6 @@ set -ex -(cd ./scripts/test-golang110 && ./test.sh) -(cd ./scripts/test-golang111 && ./test.sh) +#(cd ./scripts/test-golang110 && ./test.sh) +#(cd ./scripts/test-golang111 && ./test.sh) +(cd ./scripts/test-golang114 && ./test.sh) diff --git a/version.go b/version.go index e0ebbf2..bc799a0 100644 --- a/version.go +++ b/version.go @@ -1,3 +1,3 @@ package sigsci -const version = "1.7.1" +const version = "1.8.0"