From 9ffa6e3af9e273e1c6c713934c6bef769b43b5e9 Mon Sep 17 00:00:00 2001 From: Cody Lee Date: Sat, 17 Dec 2022 08:45:25 -0600 Subject: [PATCH] The elves did a little winter cleaning! They are making room for all the features and bug fixes coming soon, I can almost hear the jolly old ho ho ho! --- .secret_files.tar.enc | Bin 15888 -> 0 bytes .travis.yml-bak | 143 --------------------------------- CONTRIBUTING.md | 49 ++++------- Makefile | 156 +----------------------------------- init/docker/Dockerfile | 62 -------------- init/docker/README.md | 10 +-- init/docker/hooks/build | 34 -------- init/docker/hooks/pre_build | 12 --- init/docker/hooks/push | 53 ------------ plugins/README.md | 3 - settings.sh | 4 - 11 files changed, 22 insertions(+), 504 deletions(-) delete mode 100644 .secret_files.tar.enc delete mode 100644 .travis.yml-bak delete mode 100644 init/docker/Dockerfile delete mode 100755 init/docker/hooks/build delete mode 100755 init/docker/hooks/pre_build delete mode 100755 init/docker/hooks/push delete mode 100644 plugins/README.md diff --git a/.secret_files.tar.enc b/.secret_files.tar.enc deleted file mode 100644 index af3b5b61cc9f4c5a8a1dbd65a09346e330082b3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15888 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 diff --git a/.travis.yml-bak b/.travis.yml-bak deleted file mode 100644 index a4db20fa..00000000 --- a/.travis.yml-bak +++ /dev/null @@ -1,143 +0,0 @@ -# Powered by Application Builder: https://github.com/golift/application-builder -jobs: - include: - - os: osx - osx_image: xcode12 - language: go - go: 1.19.x - - os: linux - dist: focal - services: docker - language: go - go: 1.19.x -git: - depth: false -addons: - homebrew: - packages: - - upx - apt: - packages: - - ruby-dev - - rpm - - build-essential - - git - - libgnome-keyring-dev - - fakeroot - - zip - - debsigs - - gnupg - - upx -install: - - mkdir -p $(go env GOPATH)/bin - - curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin latest - - if [ "$TRAVIS_OS_NAME" == "linux" ]; then rvm install 2.6.0; fi - - if [ "$TRAVIS_OS_NAME" == "linux" ]; then rvm 2.6.0 do gem install --no-document fpm -v 1.11.0; fi -before_script: - # Create your own deploy key, tar it, and encrypt the file to make this work. Optionally add a bitly_token file to the archive. - - openssl aes-256-cbc -K $encrypted_772fc4772f04_key -iv $encrypted_772fc4772f04_iv -in .secret_files.tar.enc -out .secret_files.tar -d - - tar -xf .secret_files.tar - - gpg --import gpg.signing.key - - rm -f gpg.signing.key .secret_files.tar - - source settings.sh -script: - # Test Go. - - make test - # Test Docker. - - if [ "$TRAVIS_OS_NAME" == "linux" ]; then make docker; fi - # Test built docker image. - - if [ "$TRAVIS_OS_NAME" == "linux" ]; then docker run $BINARY -v 2>&1 | grep -Eq "^$BINARY,? v.*$VERSION"; fi - # Build everything - - if [ "$TRAVIS_OS_NAME" == "linux" ]; then rvm 2.6.0 do make release; fi - # Build mac binary or image. - - if [ "$TRAVIS_OS_NAME" == "osx" ]; then make dmg; fi - # Test homebrew (with make install). - - if [ "$TRAVIS_OS_NAME" == "osx" ]; then make install VERSION=$VERSION ITERATION=$ITERATION PREFIX=/tmp/ab-$VERSION ETC=/tmp/ab-$VERSION/etc; fi -after_success: - # Display Release Folder - - ls -l release/ - # Setup the ssh client so we can clone and push to the homebrew formula repo. - # You must put github_deploy_file into .secret_files.tar.enc - # This is an ssh key added to your homebrew forumla repo. - - | - mkdir -p $HOME/.ssh - declare -r SSH_FILE="$(mktemp -u $HOME/.ssh/XXXXX)" - echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> $HOME/.ssh/config - [ ! -f github_deploy_key ] || (mv github_deploy_key $SSH_FILE \ - && chmod 600 "$SSH_FILE" \ - && printf "%s\n" \ - "Host github.com" \ - " IdentityFile $SSH_FILE" \ - " StrictHostKeyChecking no" \ - " LogLevel ERROR" >> $HOME/.ssh/config) -deploy: - # Unstable (master pushes). - - provider: packagecloud - repository: unstable - username: golift - token: - secure: 1vzsIxgcDkMkkmxpvaw3vEMt4cbDNpk3UMeiv5qnHJ9/k0D6+VhNVS0I3QLgP5+WQgH11Y0YX00NvcY13M+hSj6vLhPCBroFisXJyDpg/f/bxyHxILFeO6AY/CSFbdLzyLcjJo5SC7JedEhqd4xeqjEo14FxGrzKB7guOBCdOQPtaFxfimm02vNt34LoLGYOfZMek2vt50qAR8ChvX2fG/gGxfAlQ4AYvppJLwfPs4jwMN1rrndDI1EUgy3ZMafM40KguXD2wGkctLmyoelTEX2TEDa8TBZKot3lRmK1vyI3wCzNY/Jb5chGq9J5zWFpPlSvn+NPeqj+8UGCZ+bCb0unFH5OdOEKTmQ46cYgL6d3RRbpwoxbG/twg/bAfJ0iiSNTJfXjXDLKT9j+YyeCerbnh7rT/qCuwO+W/HIsnu0waCXvXGAKXGAAE+xvnBygp/YS6I4Y26V2CBIF8KJEWIF/CuooHzraa5c1hg50h5YZnZ9EwVXxFRdsFSNxle9uNe2iJ08FEV6VyHPybYsOnA37yM7E8wCLbcKRKavAyVT7OykLU2GAAOCdcN8tpSDA/kwKx3imZhyjGGUrYQxVN/bCb4hhBX+OymcVIw2gQFkJ/sc09ck+Vo77FVR6JVi0tCjan7x4oCTQfbEa5lkioMjKgY6JDfRVZdX6HUjlJTw= - dist: ubuntu/focal - local-dir: release - package_glob: "*.deb" - skip_cleanup: true - cleanup: false - on: - branch: unstable - condition: "$TRAVIS_OS_NAME = linux" - - provider: packagecloud - repository: unstable - username: golift - token: - secure: 1vzsIxgcDkMkkmxpvaw3vEMt4cbDNpk3UMeiv5qnHJ9/k0D6+VhNVS0I3QLgP5+WQgH11Y0YX00NvcY13M+hSj6vLhPCBroFisXJyDpg/f/bxyHxILFeO6AY/CSFbdLzyLcjJo5SC7JedEhqd4xeqjEo14FxGrzKB7guOBCdOQPtaFxfimm02vNt34LoLGYOfZMek2vt50qAR8ChvX2fG/gGxfAlQ4AYvppJLwfPs4jwMN1rrndDI1EUgy3ZMafM40KguXD2wGkctLmyoelTEX2TEDa8TBZKot3lRmK1vyI3wCzNY/Jb5chGq9J5zWFpPlSvn+NPeqj+8UGCZ+bCb0unFH5OdOEKTmQ46cYgL6d3RRbpwoxbG/twg/bAfJ0iiSNTJfXjXDLKT9j+YyeCerbnh7rT/qCuwO+W/HIsnu0waCXvXGAKXGAAE+xvnBygp/YS6I4Y26V2CBIF8KJEWIF/CuooHzraa5c1hg50h5YZnZ9EwVXxFRdsFSNxle9uNe2iJ08FEV6VyHPybYsOnA37yM7E8wCLbcKRKavAyVT7OykLU2GAAOCdcN8tpSDA/kwKx3imZhyjGGUrYQxVN/bCb4hhBX+OymcVIw2gQFkJ/sc09ck+Vo77FVR6JVi0tCjan7x4oCTQfbEa5lkioMjKgY6JDfRVZdX6HUjlJTw= - dist: el/6 - local-dir: release - package_glob: "*.rpm" - skip_cleanup: true - cleanup: false - on: - branch: unstable - condition: "$TRAVIS_OS_NAME = linux" - # Stable packages (releases). - - provider: packagecloud - repository: pkgs - username: golift - token: - secure: 1vzsIxgcDkMkkmxpvaw3vEMt4cbDNpk3UMeiv5qnHJ9/k0D6+VhNVS0I3QLgP5+WQgH11Y0YX00NvcY13M+hSj6vLhPCBroFisXJyDpg/f/bxyHxILFeO6AY/CSFbdLzyLcjJo5SC7JedEhqd4xeqjEo14FxGrzKB7guOBCdOQPtaFxfimm02vNt34LoLGYOfZMek2vt50qAR8ChvX2fG/gGxfAlQ4AYvppJLwfPs4jwMN1rrndDI1EUgy3ZMafM40KguXD2wGkctLmyoelTEX2TEDa8TBZKot3lRmK1vyI3wCzNY/Jb5chGq9J5zWFpPlSvn+NPeqj+8UGCZ+bCb0unFH5OdOEKTmQ46cYgL6d3RRbpwoxbG/twg/bAfJ0iiSNTJfXjXDLKT9j+YyeCerbnh7rT/qCuwO+W/HIsnu0waCXvXGAKXGAAE+xvnBygp/YS6I4Y26V2CBIF8KJEWIF/CuooHzraa5c1hg50h5YZnZ9EwVXxFRdsFSNxle9uNe2iJ08FEV6VyHPybYsOnA37yM7E8wCLbcKRKavAyVT7OykLU2GAAOCdcN8tpSDA/kwKx3imZhyjGGUrYQxVN/bCb4hhBX+OymcVIw2gQFkJ/sc09ck+Vo77FVR6JVi0tCjan7x4oCTQfbEa5lkioMjKgY6JDfRVZdX6HUjlJTw= - dist: ubuntu/focal - local-dir: release - package_glob: "*.deb" - skip_cleanup: true - cleanup: false - on: - tags: true - condition: "$TRAVIS_OS_NAME = linux" - - provider: packagecloud - repository: pkgs - username: golift - token: - secure: 1vzsIxgcDkMkkmxpvaw3vEMt4cbDNpk3UMeiv5qnHJ9/k0D6+VhNVS0I3QLgP5+WQgH11Y0YX00NvcY13M+hSj6vLhPCBroFisXJyDpg/f/bxyHxILFeO6AY/CSFbdLzyLcjJo5SC7JedEhqd4xeqjEo14FxGrzKB7guOBCdOQPtaFxfimm02vNt34LoLGYOfZMek2vt50qAR8ChvX2fG/gGxfAlQ4AYvppJLwfPs4jwMN1rrndDI1EUgy3ZMafM40KguXD2wGkctLmyoelTEX2TEDa8TBZKot3lRmK1vyI3wCzNY/Jb5chGq9J5zWFpPlSvn+NPeqj+8UGCZ+bCb0unFH5OdOEKTmQ46cYgL6d3RRbpwoxbG/twg/bAfJ0iiSNTJfXjXDLKT9j+YyeCerbnh7rT/qCuwO+W/HIsnu0waCXvXGAKXGAAE+xvnBygp/YS6I4Y26V2CBIF8KJEWIF/CuooHzraa5c1hg50h5YZnZ9EwVXxFRdsFSNxle9uNe2iJ08FEV6VyHPybYsOnA37yM7E8wCLbcKRKavAyVT7OykLU2GAAOCdcN8tpSDA/kwKx3imZhyjGGUrYQxVN/bCb4hhBX+OymcVIw2gQFkJ/sc09ck+Vo77FVR6JVi0tCjan7x4oCTQfbEa5lkioMjKgY6JDfRVZdX6HUjlJTw= - dist: el/6 - local-dir: release - package_glob: "*.rpm" - skip_cleanup: true - cleanup: false - on: - tags: true - condition: "$TRAVIS_OS_NAME = linux" - # Upload built files to github too. - - 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 - cleanup: false - file_glob: true - file: release/* - on: - tags: true - # Upload homebrew formula file to a special repo. - - provider: script - script: scripts/formula-deploy.sh - on: - tags: true diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3c29a605..f93fa590 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,50 +6,33 @@ Lets talk about how the software gets built for our users before we talk about making changes to it. -## TravisCI +## Github Actions -This repo is tested, built and deployed by [Travis-CI](https://travis-ci.org/unifi-poller/unifi-poller). +This repo is tested, built and deployed by [Github Actions](https://github.com/unpoller/unpoller/actions). -The [.travis.yml](.travis.yml) file in this repo coordinates the entire process. -As long as this document is kept up to date, this is what the travis file does: +The [.github/](.github/) directory in this repo coordinates the entire process. +As long as this document is kept up to date, this is what github does: -- Creates a go-capable build environment on a Linux host, some debian variant. -- Install ruby-devel to get rubygems. -- Installs other build tools including rpm and fpm from rubygems. -- Starts docker, builds the docker container and runs it. -- Tests that the Docker container ran and produced expected output. -- Makes a release. `make release`: This does a lot of things, controlled by the [Makefile](Makefile). - - Runs go tests and go linters. - - Compiles the application binaries for Windows, Linux and macOS. - - Compiles a man page that goes into the packages. - - Creates rpm and deb packages using fpm. - - Puts the packages, gzipped binaries and files containing the SHA256s of each asset into a release folder. +- Builds and Tests code changes +- Lints code changes +- On Release (through git tags) it uses goreleaser-pro to build and release: +- Linux, Mac and Windows Binaries +- Provides a packaged source copy +- Builds Debian, RedHat packages +- Builds Mac universal binary +- Builds Windows executable +- Builds numerous platform docker images and uploads them After the release is built and Docker image tested: -- Deploys the release assets to the tagged release on GitHub using an encrypted GitHub Token (api key). -- Runs [another script](scripts/formula-deploy.sh) to create and upload a Homebrew formula to [golift/homebrew-mugs](https://github.com/golift/homebrew-mugs). - - Uses an encrypted SSH key to upload the updated formula to the repo. -- Travis does nothing else with Docker; it just makes sure the thing compiles and runs. +- Deploys the release assets to the tagged release on [GitHub releases](https://github.com/unpoller/unpoller/releases) ### Homebrew -it's a mac thing. - -[Homebrew](https://brew.sh) is all I use at home. Please don't break the homebrew -formula stuff; it took a lot of pain to get it just right. I am very interested -in how it works for you. +it's a mac thing. [Homebrew](https://brew.sh) ### Docker -Docker is built automatically by Docker Cloud using the Dockerfile in the path -[init/docker/Dockerfile](init/docker/Dockerfile). Some of the configuration is -done in the Cloud service under my personal account `golift`, but the majority -happens in the build files in the [init/docker/hooks/](init/docker/hooks/) directory. - -If you have need to change the Dockerfile, please clearly explain what problem your -changes are solving, and how it has been tested and validated. As far as I'm -concerned this file should never need to change again, but I'm not a Docker expert; -you're welcome to prove me wrong. +Docker is built automatically and uploaded to ghcr.io by the release github action. # Contributing diff --git a/Makefile b/Makefile index 231870cc..ff62aaf9 100644 --- a/Makefile +++ b/Makefile @@ -11,15 +11,7 @@ MD2ROFF_BIN=github.com/davidnewhall/md2roff@v0.0.1 # rsrc adds an ico file to a Windows exe file. RSRC_BIN=github.com/akavel/rsrc -# If upx is available, use it to compress the binaries. -UPXPATH=$(shell which upx) - -# Skip upx in Mac ARM environments: https://github.com/upx/upx/issues/446 -ifeq ($(shell uname -ps),Darwin arm) - UPXPATH= -endif - -# Travis CI passes the version in. Local builds get it from the current git tag. +# CI passes the version in. Local builds get it from the current git tag. ifeq ($(VERSION),) include .metadata.make else @@ -31,73 +23,9 @@ else ITERATION:=$(_ITERATION) endif -# rpm is wierd and changes - to _ in versions. -RPMVERSION:=$(shell echo $(VERSION) | tr -- - _) -# used for freebsd packages. -BINARYU:=$(shell echo $(BINARY) | tr -- - _) - -PACKAGE_SCRIPTS= -ifeq ($(FORMULA),service) - PACKAGE_SCRIPTS=--after-install after-install-rendered.sh --before-remove before-remove-rendered.sh -endif - -define PACKAGE_ARGS -$(PACKAGE_SCRIPTS) \ ---name $(BINARY) \ ---deb-no-default-config-files \ ---rpm-os linux \ ---iteration $(ITERATION) \ ---license $(LICENSE) \ ---url $(SOURCE_URL) \ ---maintainer "$(MAINT)" \ ---vendor "$(VENDOR)" \ ---description "$(DESC)" \ ---config-files "/etc/$(BINARY)/$(CONFIG_FILE)" \ ---freebsd-origin "$(SOURCE_URL)" -endef - -PLUGINS:=$(patsubst plugins/%/main.go,%,$(wildcard plugins/*/main.go)) - -VERSION_LDFLAGS:= -X \"$(VERSION_PATH).Branch=$(BRANCH) ($(COMMIT))\" \ - -X \"$(VERSION_PATH).BuildDate=$(DATE)\" \ - -X \"$(VERSION_PATH).BuildUser=$(shell whoami)\" \ - -X \"$(VERSION_PATH).Revision=$(ITERATION)\" \ - -X \"$(VERSION_PATH).Version=$(VERSION)\" - # Makefile targets follow. -all: clean generate build - -#################### -##### Releases ##### -#################### - -# Prepare a release. Called in Travis CI. -release: clean windows - # Prepareing a release! - mkdir -p $@ - mv $(BINARY).*.linux $(BINARY).*.freebsd $@/ - gzip -9r $@/ - for i in $(BINARY)*.exe ; do zip -9qj $@/$$i.zip $$i examples/*.example *.html; rm -f $$i;done - mv *.rpm *.deb *.txz $@/ - # Generating File Hashes - openssl dgst -r -sha256 $@/* | sed 's#release/##' | tee $@/checksums.sha256.txt - -# DMG only makes a DMG file is MACAPP is set. Otherwise, it makes a gzipped binary for macOS. -dmg: clean macapp - mkdir -p release - [ "$(MACAPP)" = "" ] || hdiutil create release/$(MACAPP).dmg -srcfolder $(MACAPP).app -ov - [ "$(MACAPP)" != "" ] || mv $(BINARY).*.macos release/ - [ "$(MACAPP)" != "" ] || gzip -9r release/ - openssl dgst -r -sha256 release/* | sed 's#release/##' | tee release/macos_checksum.sha256.txt - -# Delete all build assets. -clean: - rm -rf dist - rm -f $(BINARY) $(BINARY).*.{macos,freebsd,linux,exe,upx}{,.gz,.zip} $(BINARY).1{,.gz} $(BINARY).rb - rm -f $(BINARY){_,-}*.{deb,rpm,txz} v*.tar.gz.sha256 examples/MANUAL .metadata.make rsrc_*.syso - rm -f cmd/$(BINARY)/README{,.html} README{,.html} ./$(BINARY)_manual.html rsrc.syso $(MACAPP).app.zip - rm -rf package_build_* release after-install-rendered.sh before-remove-rendered.sh $(MACAPP).app +all: build #################### ##### Sidecars ##### @@ -129,85 +57,9 @@ rsrc.syso: init/windows/application.ico init/windows/manifest.xml $(shell go env $(shell go env GOPATH)/bin/rsrc: cd /tmp ; go get $(RSRC_BIN) ; go install $(RSRC_BIN)@latest -#################### -##### Binaries ##### -#################### -build: $(BINARY) -$(BINARY): main.go - go build -o $(BINARY) -ldflags "-w -s $(VERSION_LDFLAGS) $(EXTRA_LDFLAGS) " - [ -z "$(UPXPATH)" ] || $(UPXPATH) -q9 $@ - -macos: $(BINARY).amd64.macos -$(BINARY).amd64.macos: main.go - # Building darwin 64-bit x86 binary. - GOOS=darwin GOARCH=amd64 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS) $(EXTRA_LDFLAGS) " - [ -z "$(UPXPATH)" ] || $(UPXPATH) -q9 $@ - -exe: $(BINARY).amd64.exe -windows: $(BINARY).amd64.exe -$(BINARY).amd64.exe: rsrc.syso main.go - # Building windows 64-bit x86 binary. - GOOS=windows GOARCH=amd64 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS) $(EXTRA_LDFLAGS) $(WINDOWS_LDFLAGS)" - [ -z "$(UPXPATH)" ] || $(UPXPATH) -q9 $@ - -#################### -##### Packages ##### -#################### - -macapp: $(MACAPP).app -$(MACAPP).app: macos - [ -z "$(MACAPP)" ] || mkdir -p init/macos/$(MACAPP).app/Contents/MacOS - [ -z "$(MACAPP)" ] || cp $(BINARY).amd64.macos init/macos/$(MACAPP).app/Contents/MacOS/$(MACAPP) - [ -z "$(MACAPP)" ] || cp -rp init/macos/$(MACAPP).app $(MACAPP).app - -#################### -##### Homebrew ##### -#################### - -# This builds a Homebrew formula file that can be used to install this app from source. -# The source used comes from the released version on GitHub. This will not work with local source. -# This target is used by Travis CI to update the released Forumla when a new tag is created. -formula: $(BINARY).rb -v$(VERSION).tar.gz.sha256: - # Calculate the SHA from the Github source file. - curl -sL $(SOURCE_URL)/archive/v$(VERSION).tar.gz | openssl dgst -r -sha256 | tee $@ -$(BINARY).rb: v$(VERSION).tar.gz.sha256 init/homebrew/$(FORMULA).rb.tmpl - # Creating formula from template using sed. - sed -e "s/{{Version}}/$(VERSION)/g" \ - -e "s/{{Iter}}/$(ITERATION)/g" \ - -e "s/{{SHA256}}/$(shell head -c64 $<)/g" \ - -e "s/{{Desc}}/$(DESC)/g" \ - -e "s%{{SOURCE_URL}}%$(SOURCE_URL)%g" \ - -e "s%{{SOURCE_PATH}}%$(SOURCE_PATH)%g" \ - -e "s%{{CONFIG_FILE}}%$(CONFIG_FILE)%g" \ - -e "s%{{Class}}%$(shell echo $(BINARY) | perl -pe 's/(?:\b|-)(\p{Ll})/\u$$1/g')%g" \ - init/homebrew/$(FORMULA).rb.tmpl | tee $(BINARY).rb - # That perl line turns hello-world into HelloWorld, etc. - -# Used for Homebrew only. Other distros can create packages. -install: man readme $(BINARY) plugins_darwin - @echo - Done Building - - @echo - Local installation with the Makefile is only supported on macOS. - @echo - Otherwise, build and install a package: make rpm -or- make deb - @[ "$(shell uname)" = "Darwin" ] || (echo "Unable to continue, not a Mac." && false) - @[ "$(PREFIX)" != "" ] || (echo "Unable to continue, PREFIX not set. Use: make install PREFIX=/usr/local ETC=/usr/local/etc" && false) - @[ "$(ETC)" != "" ] || (echo "Unable to continue, ETC not set. Use: make install PREFIX=/usr/local ETC=/usr/local/etc" && false) - # Copying the binary, config file, unit file, and man page into the env. - /usr/bin/install -m 0755 -d $(PREFIX)/bin $(PREFIX)/share/man/man1 $(ETC)/$(BINARY) $(PREFIX)/share/doc/$(BINARY) $(PREFIX)/lib/$(BINARY) - /usr/bin/install -m 0755 -cp $(BINARY) $(PREFIX)/bin/$(BINARY) - /usr/bin/install -m 0644 -cp $(BINARY).1.gz $(PREFIX)/share/man/man1 - /usr/bin/install -m 0644 -cp examples/$(CONFIG_FILE).example $(ETC)/$(BINARY)/ - /usr/bin/install -m 0755 -d $(PREFIX)/lib/$(BINARY)/web/static/{css,js,images} - /usr/bin/install -m 0644 -cp init/webserver/index.html $(PREFIX)/lib/$(BINARY)/web/index.html - /usr/bin/install -m 0644 -cp init/webserver/static/css/* $(PREFIX)/lib/$(BINARY)/web/static/css/ - /usr/bin/install -m 0644 -cp init/webserver/static/js/* $(PREFIX)/lib/$(BINARY)/web/static/js/ - /usr/bin/install -m 0644 -cp init/webserver/static/images/* $(PREFIX)/lib/$(BINARY)/web/static/images/ - [ -f $(ETC)/$(BINARY)/$(CONFIG_FILE) ] || /usr/bin/install -m 0644 -cp examples/$(CONFIG_FILE).example $(ETC)/$(BINARY)/$(CONFIG_FILE) - /usr/bin/install -m 0644 -cp LICENSE *.html examples/* $(PREFIX)/share/doc/$(BINARY)/ - -goreleaser: +bulid-and-release: goreleaser release --rm-dist -goreleaser-test: +build: goreleaser release --rm-dist --skip-validate --skip-publish --skip-sign --debug diff --git a/init/docker/Dockerfile b/init/docker/Dockerfile deleted file mode 100644 index 999ebf08..00000000 --- a/init/docker/Dockerfile +++ /dev/null @@ -1,62 +0,0 @@ -# -# This is part of Application Builder. -# https://github.com/golift/application-builder -# - -ARG ARCH=amd64 -ARG OS=linux -ARG BUILD_DATE=0 -ARG COMMIT=0 -ARG VERSION=unknown -ARG BINARY=application-builder - -FROM golang:latest as builder -ARG ARCH -ARG OS -ARG BINARY - -RUN mkdir -p $GOPATH/pkg/mod $GOPATH/bin $GOPATH/src /${BINARY} -COPY . /${BINARY} -WORKDIR /${BINARY} - -RUN apt update && \ - apt install -y upx && \ - CGO_ENABLED=0 make ${BINARY}.${ARCH}.${OS} - -FROM scratch -ARG ARCH -ARG OS -ARG BUILD_DATE -ARG COMMIT -ARG VERSION -ARG LICENSE=MIT -ARG BINARY -ARG SOURCE_URL=http://github.com/golift/application-builder -ARG DESC=application-builder -ARG VENDOR=golift -ARG AUTHOR=golift -ARG CONFIG_FILE=config.conf - -# Build-time metadata as defined at https://github.com/opencontainers/image-spec/blob/master/annotations.md -LABEL org.opencontainers.image.created="${BUILD_DATE}" \ - org.opencontainers.image.title="${BINARY}" \ - org.opencontainers.image.documentation="${SOURCE_URL}/wiki/Docker" \ - org.opencontainers.image.description="${DESC}" \ - org.opencontainers.image.url="${SOURCE_URL}" \ - org.opencontainers.image.revision="${COMMIT}" \ - org.opencontainers.image.source="${SOURCE_URL}" \ - org.opencontainers.image.vendor="${VENDOR}" \ - org.opencontainers.image.authors="${AUTHOR}" \ - org.opencontainers.image.architecture="${OS} ${ARCH}" \ - org.opencontainers.image.licenses="${LICENSE}" \ - org.opencontainers.image.version="${VERSION}" - -COPY --from=builder /${BINARY}/${BINARY}.${ARCH}.${OS} /image -COPY --from=builder /${BINARY}/examples/${CONFIG_FILE}.example /etc/${BINARY}/${CONFIG_FILE} -COPY --from=builder /${BINARY}/init/webserver /usr/lib/unifi-poller/web -COPY --from=builder /etc/ssl /etc/ssl -COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo - -ENV TZ=UTC - -ENTRYPOINT [ "/image" ] diff --git a/init/docker/README.md b/init/docker/README.md index 80460d1d..50ad54f0 100644 --- a/init/docker/README.md +++ b/init/docker/README.md @@ -1,12 +1,6 @@ -## Docker Cloud Builds - -This folder contains the files that build our Docker image. The image -is built by Docker Hub "automatically" using the [Dockerfile](Dockerfile) -and [hooks/](hooks/) in this folder. - ## Docker Compose -The other files in this folder can be used locally to spin up +The files in this folder can be used locally to spin up a full set of applications (minus the UniFi controller) to get UniFi Poller up and running. Including InfluxDB, Grafana, and Chronograph. This last app is useful to inspect the data stored @@ -14,4 +8,4 @@ in InfluxDB by UniFi Poller. ##### HOWTO **Learn more about how and when to use these *Docker Compose* files in the -[Docker Wiki](https://github.com/unifi-poller/unifi-poller/wiki/Docker).** +[Docker Wiki](https://unpoller.com/docs/install/dockercompose).** diff --git a/init/docker/hooks/build b/init/docker/hooks/build deleted file mode 100755 index 0c3d7763..00000000 --- a/init/docker/hooks/build +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# The Docker Cloud config must pass in the BUILDS env variable. -# See README.md (in this dir) and the screenshot for more info. -# This is part of Application Builder. -# https://github.com/golift/application-builder - -# This always run local to the Dockerfile folder, so the path is ../.. -pushd ../.. - -source settings.sh - -# Build each configured image from Docker Cloud. -for build in $BUILDS; do - # os:name:arch - os=$(echo $build | cut -d: -f1) - name=$(echo $build | cut -d: -f2) - echo "Building Image ${IMAGE_NAME}_${os}_${name}" - docker build \ - --build-arg "ARCH=${name}" \ - --build-arg "BUILD_DATE=${DATE}" \ - --build-arg "COMMIT=${COMMIT}" \ - --build-arg "VERSION=${VERSION}-${ITERATION}" \ - --build-arg "LICENSE=${LICENSE}" \ - --build-arg "DESC=${DESC}" \ - --build-arg "VENDOR=${VENDOR}" \ - --build-arg "AUTHOR=${MAINT}" \ - --build-arg "BINARY=${BINARY}" \ - --build-arg "SOURCE_URL=${SOURCE_URL}" \ - --build-arg "CONFIG_FILE=${CONFIG_FILE}" \ - --tag "${IMAGE_NAME}_${os}_${name}" \ - --file ${DOCKERFILE_PATH} . -done - -popd diff --git a/init/docker/hooks/pre_build b/init/docker/hooks/pre_build deleted file mode 100755 index 9be7c600..00000000 --- a/init/docker/hooks/pre_build +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -# This is part of Application Builder. -# https://github.com/golift/application-builder - -# https://www.smockle.com/blog/2019/04/22/migrating-from-travis-ci-to-docker-hub-automated-builds/ - -# This upgrades the docker client on the Docker Cloud server to a version -# that contains the `docker manifest` command. To use `docker manifest` -# set `DOCKER_CLI_EXPERIMENTAL=enabled` in your build environment. -# See README.md (in this dir) and the screenshot for more info. - -docker run --rm --privileged multiarch/qemu-user-static:register --reset diff --git a/init/docker/hooks/push b/init/docker/hooks/push deleted file mode 100755 index 26f7c907..00000000 --- a/init/docker/hooks/push +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash -# This post build hook creates multi-architecture docker manifests. -# It's all a bit complicated for some reason. -# This is part of Application Builder. -# https://github.com/golift/application-builder - -pushd ../.. -source settings.sh -popd - -if [ "$BUILDS" != "" ]; then - TAGS=$DOCKER_TAG -fi - -export DOCKER_CLI_EXPERIMENTAL=enabled - -# Push the extra custom images that were created. -for build in $BUILDS; do - os=$(echo $build | cut -d: -f1) - name=$(echo $build | cut -d: -f2) - echo "Pushing Image ${IMAGE_NAME}_${os}_${name}" - docker push ${IMAGE_NAME}_${os}_${name} - IMAGES="${IMAGES} ${IMAGE_NAME}_${os}_${name}" -done -echo "Annotating Images: ${IMAGES}" - -# Build all the Docker tags if the source branch is a release and not a branch or pre-release. -if [ "v$VERSION" = "$SOURCE_BRANCH" ]; then - TAGS="$VERSION" - - echo $SOURCE_BRANCH | grep -q -- - - if [ "$?" = "1" ]; then - # tag does not contain a dash, so assume it's a prod tag. - TAGS="$TAGS latest stable $(echo $VERSION | cut -d. -f1,2) $(echo $VERSION | cut -d. -f1)" - fi -fi - -echo "Version: $VERSION, Source: $SOURCE_BRANCH, Building tags: ${TAGS}" - -# Create multi-architecture manifests for each tag with all the built images. -for tag in $TAGS; do - docker manifest create --amend ${DOCKER_REPO}:${tag} $IMAGES - for build in $BUILDS; do - # os:name:arch, ie linux:amd64:amd64 - os=$(echo $build | cut -d: -f1) - name=$(echo $build | cut -d: -f2) - arch=$(echo $build | cut -d: -f3) - # Annotating updates the manifest to describe each images' capabilities. - docker manifest annotate ${DOCKER_REPO}:${tag} ${IMAGE_NAME}_${os}_${name} --os ${os} --arch ${arch} - done - echo "Pushing Manifest ${DOCKER_REPO}:${tag}" - docker manifest push ${DOCKER_REPO}:${tag} -done diff --git a/plugins/README.md b/plugins/README.md deleted file mode 100644 index 1efd89bf..00000000 --- a/plugins/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Copy your plugins into this folder and run `make plugins` to build them. -There is an example plugin available: -[https://github.com/unifi-poller/mysqlunifi](https://github.com/unifi-poller/mysqlunifi) diff --git a/settings.sh b/settings.sh index 86545243..501165a2 100755 --- a/settings.sh +++ b/settings.sh @@ -36,7 +36,3 @@ export LICENSE FORMULA SOURCE_URL VERSION_PATH SOURCE_PATH # Import this signing key only if it's in the keyring. gpg --list-keys 2>/dev/null | grep -q B93DD66EF98E54E2EAE025BA0166AD34ABC5A57C [ "$?" != "0" ] || export SIGNING_KEY=B93DD66EF98E54E2EAE025BA0166AD34ABC5A57C - -export WINDOWS_LDFLAGS="" -export MACAPP="" -export EXTRA_FPM_FLAGS=""