diff --git a/.github_deploy_key.enc b/.github_deploy_key.enc new file mode 100644 index 00000000..7cd01940 Binary files /dev/null and b/.github_deploy_key.enc differ diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..025d8b57 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,41 @@ +language: go +addons: + apt: + packages: + - ruby-dev + - rpm + - build-essential + - git + - libgnome-keyring-dev + - fakeroot +go: +- 1.12.x +env: +- PATH=${PATH}:/home/travis/.gem/ruby/2.4.0/bin +before_install: + # This deploy is not used atm. +- openssl aes-256-cbc -K $encrypted_9f3147001275_key -iv $encrypted_9f3147001275_iv -in .github_deploy_key.enc -out github_deploy_key -d +- chmod 600 github_deploy_key +- eval $(ssh-agent -s) +- ssh-add github_deploy_key + # Download the `dep` binary to bin folder in $GOPATH +- curl -L -s https://github.com/golang/dep/releases/download/v0.5.3/dep-linux-amd64 -o $GOPATH/bin/dep +- chmod +x $GOPATH/bin/dep + # download super-linter: golangci-lint +- curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin latest +install: +- dep ensure +- gem install --no-document ronn fpm +script: +- make release +deploy: + provider: releases + api_key: + secure: GsvW0m+EnRELQMk8DjH63VXinqbwse4FJ4vNUslOE6CZ8PBXPrH0ZgaI7ic/uxRtm7CYj0sir4CZq62W5l6uhoXCCQfjOnmJspqnQcrFZ1xRdWktsNXaRwM6hlzaUThsJ/1PD9Psc66uKXBYTg0IlUz0yjZAZk7tCUE4libuj41z40ZKxUcbfcNvH4Njc9IpNB4QSA3ss+a9/6ZwBz4tHVamsGIrzaE0Zf99ItNBYvaOwhM2rC/NWIsFmwt8w4rIA2NIrkZgMDV+Z2Niqh4JRLAWCQNx/RjC5U52lG2yhqivUC3TromZ+q4O4alUltsyIzF2nVanLWgJmbeFo8uXT5A+gd3ovSkFLU9medXd9i4kap7kN/o5m9p5QZvrdEYHEmIU4ml5rjT2EQQVy5CtSmpiRAbhpEJIvA1wDtRq8rdz8IVfJXkHNjg2XdouNmMMWqa3OkEPw21+uxsqv4LscW/6ZjsavzL5SSdnBRU9n79EfGJE/tJLKiNumah/vLuJ5buNhgqmCdtX/Tg+DhQS1BOyYg4l4L8s9IIKZgFRwrOPsZnA/KsrWg4ZsjJ87cqKCaT/qs2EJx5odZcZWJYLBngeO8Tc6cQtLgJdieY2oEKo51Agq4rgikZDt21m6TY9/R5lPN0piwdpy3ZGKfv1ijXx74raMT03qskputzMCvc= + overwrite: true + skip_cleanup: true + file_glob: true + file: build_assets/* + on: + repo: davidnewhall/unifi-poller + tags: true diff --git a/Makefile b/Makefile index fcc97008..cb118357 100644 --- a/Makefile +++ b/Makefile @@ -1,35 +1,39 @@ -PACKAGES=`find ./cmd -mindepth 1 -maxdepth 1 -type d` +PACKAGE=./cmd/unifi-poller BINARY=unifi-poller VERSION=`git tag -l --merged | tail -n1` all: man unifi-poller +# Prepare a release. Called in Travis CI. +release: clean test man linux macos rpm deb + mkdir -p build_assets + gzip -9k unifi-poller.linux + gzip -9k unifi-poller.macos + mv unifi-poller.macos.gz unifi-poller.linux.gz build_assets/ + cp *.rpm *.deb build_assets/ + clean: - for p in $(PACKAGES); do rm -f `echo $${p}|cut -d/ -f3`{.macos,.linux,.1,}{,.gz}; done - for p in $(PACKAGES); do rm -f `echo $${p}|cut -d/ -f3`{_,-}*.{deb,rpm,pkg}; done - rm -rf package_build + rm -f `echo $(PACKAGE)|cut -d/ -f3`{.macos,.linux,.1,}{,.gz} + rm -f `echo $(PACKAGE)|cut -d/ -f3`{_,-}*.{deb,rpm,pkg} + rm -rf package_build build_assets build: unifi-poller unifi-poller: - for p in $(PACKAGES); do go build -ldflags "-w -s -X main.Version=$(VERSION)" $${p}; done + go build -ldflags "-w -s -X main.Version=$(VERSION)" $(PACKAGE) linux: unifi-poller.linux unifi-poller.linux: - for p in $(PACKAGES); do GOOS=linux go build -o unifi-poller.linux -ldflags "-w -s -X main.Version=$(VERSION)" $${p}; done + GOOS=linux go build -o unifi-poller.linux -ldflags "-w -s -X main.Version=$(VERSION)" $(PACKAGE) -darwin: unifi-poller.macos +macos: unifi-poller.macos unifi-poller.macos: - for p in $(PACKAGES); do GOOS=darwin go build -o unifi-poller.macos -ldflags "-w -s -X main.Version=$(VERSION)" $${p}; done + GOOS=darwin go build -o unifi-poller.macos -ldflags "-w -s -X main.Version=$(VERSION)" $(PACKAGE) test: lint - for p in $(PACKAGES) $(LIBRARYS); do go test -race -covermode=atomic $${p}; done + go test -race -covermode=atomic $(PACKAGE) lint: - goimports -l $(PACKAGES) - gofmt -l $(PACKAGES) - errcheck $(PACKAGES) - golint $(PACKAGES) - go vet $(PACKAGES) + golangci-lint run --enable-all -D gochecknoglobals man: unifi-poller.1.gz unifi-poller.1.gz: @@ -41,7 +45,7 @@ rpm: man linux deb: man linux scripts/build_linux_packages.sh deb -osxpkg: man darwin +osxpkg: man macos scripts/build_osx_package.sh install: man