From 2711bd78d31c380956578bdb533ab68ad6f68c6d Mon Sep 17 00:00:00 2001 From: Will Rouesnel Date: Sat, 28 May 2016 14:19:55 +1000 Subject: [PATCH] Modifications to setup .travis.yml and builds. --- .travis.yml | 24 ++++++++++++++++++++++++ Makefile | 31 +++++++++++++++++++++++++------ docker-build.bsh | 4 ---- postgres_exporter.go | 2 ++ 4 files changed, 51 insertions(+), 10 deletions(-) create mode 100644 .travis.yml delete mode 100755 docker-build.bsh diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..da83c1e5 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,24 @@ +sudo: required + +services: +- docker + +language: go +go: +- '1.6' + +script: +- make all +- make docker + +after_success: +- if [ "$TRAVIS_BRANCH" == "master" ]; then + docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS + docker push wrouesnel/postgres_exporter + fi + +env: + global: + - secure: RfoWQj5tEB/t3XL2tqJW7u7Qscpz1QBOfF9lMFpB4kAUMTtZU0zBbXfMo1JheGoJQQxD/7NLRHhbUWPT2489o3KKpRTQ7RHn3k8n5U7opH01bWX0+l/EPVmhlsKjSDSLGgmxz80j3I6C8ZV3qDUijSx7r90QUNHGbZtV7g+KtoUTpRV0zir/heK6qq9LHWNHbNsJyHK8qHmd6g1UzWIBaZPJ6a/n/rO2jq4uS1JR0VlIJPRF11HOLH8IjFQvVYpN7YbEslxyNsfQJUSP/7CghSLLVWPSATEjMm8a5GJVLc564+nYghm484psEtiMXkZ3n6ie7AT8aJrKfexWrwh2aCc+cK4PiyXrf4euZehZNYogmFCqWzd1LJKcN2uIkpBSuZQDm3e6c4qkkWGpx+RdFWtAMG8IgZLDbcuryxFNzMwHc2CJ009s9Zsa+g7D57csyR5LCZ8YtNGI3g8FmhwpCKvYkfKa9aijUEWyJMyT4Vhd/w7btMTuwYHgUQ85k4ov4Xjz5SNpAGgemig5G5w7PJj4NhGvIBz9weL154x/BFVjHOZZ6Y/bWgJIPoW1KM15x5K8QylWYEBUHtwiyVyXOxHqt6MOX1vYo1L37jMK88IErrfh/VmlxEhtN9wOghk8IudMfFwQtjIwiWlJf218wxMIzUjoyb5/25tU9f2OJrg= + - secure: WP96T7yshE03XsPVc9ICbwZXZ6nVsQDCQ9NGKnIEQa4T1Swu5uLVzxjGeowHPykKbKphQmT8inMniBxB48OLc3VVqNxVI+00ppLPEf7n79w2wVbwFOEa6TiOdws+0wOphkeSYc0L+o2aSfoMKJHF+rVW9tmM2tszVjofYHhdWjqloc2pqsfOnqbR7icfpmzMWKyezIE20YOIBsiKZJTKXiZ1SaG9ExkNwuZ7L+HRF1yeI0OdAM4VfEzBK1Gwicy2BtrbyHnl4zgcSoIBmuzo+pNuvqyGmBn3C221M6ki7NoDJDfW5brcvDmiMODWGnka7iW0nt5aUbVtURM8BhWZR0uINo30aYjr4j39UBq8y+mqYV0dp/dMEmy2fa1mogr+DuHUNVSg59Au45AZeom8N6FT03nlg+RcG/tV1skvP/mn9n9CKsyfvC4Rf3jp4+LTiJ9JIch74MecRYVwlpKM+i8s6uDftt3mvxeIYdK+NEMcfwKMv8KTwuxRo/3KRhif7z2cOE+oMbT5POWO19bfboRPCs4xiMTcqpx8dJVs41SacY52PPgjFSnyVrKvzAyjn6mePjLhpoPZueHZuJYPNa9QC8JcASMlCI7lf2Eq+2Dmp2JxmndkRs/cIfHgmO4gtiNM7Vb/rlML1D/8LYPWU/Rdp82/yDffC0ugMNovXt0= + - secure: RRQH4Tr94OblZoqls50BIoyK1OvK9fALs4pAq1Uk5dksY1NWnomheQzOaHzbVfMfXc4zXAzppZIqxUDGn8GiSLbtJL6pnxsxYNGoCGdS8lMjjKWXbCAs8TBJobi3krOOjqgbhOWTpyluTEShnBcg7CjrRQUa/ChS3uE5kl21/4eIl9Be6Q08Eqm3p1yvMAyAgIL6Y6oPAAtBa6zIsi2MSNlryz3RKHJO7AheilppYx3E8B03A+a/oqvTTcw6w/RwBYxB8MYfSLC0jSssZz5pUSX/byUaklGFhQLnKAzJyhrMOvRyMVcO4PHaLgVi1eAKQz6eLQh7uEiIqKh19cuvTbZHDgu8zMpLDTxOW9U95e4kbjOZ5pWZ7E5QTrb24RZIt42JGbmme7PWOvy3zNbWHwfwiOF1qwYwISUcj2KFCpes8mDGt6iv46LfdlU0uoZdZu3MAiTiW0u2SD5hIeFq4XYesPtkS/TKFoAbB5Tu1qbxdmYu5NqmfvmxsmeNEm4inFJ5ap3fRRCVo668Z6qRMuQ1URcEfOz8iEftP9CnwSOXRuiuMo+W9GgckRuDZcPyQMCftq8+PhB+SjK57zrAd4Kxqf6kVHV16tcWqmFjfJJUFqmL+gpjT/VMEVDY2FOnbOARjkeLTjVC4dADBjxfJ6wmlLrfHdUm4GinbaHq0iA= diff --git a/Makefile b/Makefile index 62a9e4bb..4266de96 100644 --- a/Makefile +++ b/Makefile @@ -1,16 +1,35 @@ +GO_SRC := $(shell find -type f -name "*.go") + +CONTAINER_NAME ?= wrouesnel/postgres_exporter:latest + +all: vet test postgres_exporter + # Simple go build -postgres_exporter: postgres_exporter.go - go build -o postgres_exporter . +postgres_exporter: $(GO_SRC) + CGO_ENABLED=0 GOOS=linux go build -a -ldflags "-extldflags '-static' -X main.Version=git:$(shell git rev-parse HEAD)" -o postgres_exporter . + +# Take a go build and turn it into a minimal container +docker: postgres_exporter + tar -cf - postgres_exporter | docker import --change "EXPOSE 9113" \ + --change 'ENTRYPOINT [ "/postgres_exporter" ]' \ + - $(CONTAINER_NAME) + +vet: + go vet . + +test: + go test -v . # Do a self-contained docker build - we pull the official upstream container, # then template out a dockerfile which builds the real image. -docker: +docker-build: postgres_exporter docker run -v $(shell pwd):/go/src/github.com/wrouesnel/postgres_exporter \ + -w /go/src/github.com/wrouesnel/postgres_exporter \ golang:1.6-wheezy \ - /go/src/github.com/wrouesnel/postgres_exporter/docker-build.bsh /postgres_exporter /go/src/github.com/wrouesnel/postgres_exporter | \ + /bin/bash -c "make >&2 && tar -cf - ./postgres_exporter" | \ docker import --change "EXPOSE 9113" \ --change 'ENTRYPOINT [ "/postgres_exporter" ]' \ - - wrouesnel/postgres_exporter + - $(CONTAINER_NAME) -.PHONY: docker +.PHONY: docker-build docker test vet diff --git a/docker-build.bsh b/docker-build.bsh deleted file mode 100755 index 53f9314a..00000000 --- a/docker-build.bsh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -cd $2 -CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -o $1 . 1>&2 -tar -cf - $1 diff --git a/postgres_exporter.go b/postgres_exporter.go index 8d2db15c..12ba8192 100644 --- a/postgres_exporter.go +++ b/postgres_exporter.go @@ -19,6 +19,8 @@ import ( "strconv" ) +var Version string = "0.0.0-dev" + var ( listenAddress = flag.String( "web.listen-address", ":9113",