diff --git a/.gitignore b/.gitignore index aa59511f..118e4d74 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,5 @@ README.html /.metadata.make bitly_token github_deploy_key +gpg.signing.key .secret-files.tar diff --git a/.secret-files.tar.enc b/.secret-files.tar.enc index 1e9d5b5a..1248256d 100644 Binary files a/.secret-files.tar.enc and b/.secret-files.tar.enc differ diff --git a/.travis.yml b/.travis.yml index e85bf513..219a73c0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,9 @@ addons: - libgnome-keyring-dev - fakeroot - zip + - debsigs + - gnupg + - expect go: - 1.12.x services: @@ -27,9 +30,12 @@ install: - rvm 2.0.0 do gem install --no-document package_cloud - rvm 2.0.0 do gem install --no-document fpm before_script: + - gpg --import gpg.public.key # 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_e3d3b4b2abab_key -iv $encrypted_e3d3b4b2abab_iv -in .secret-files.tar.enc -out .secret-files.tar -d + - openssl aes-256-cbc -K $encrypted_9f3147001275_key -iv $encrypted_9f3147001275_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 .metadata.sh - make vendor script: diff --git a/Gopkg.lock b/Gopkg.lock index fbab23c4..08130d43 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -103,7 +103,7 @@ name = "golang.org/x/sys" packages = ["windows"] pruneopts = "UT" - revision = "6d18c012aee9febd81bbf9806760c8c4480e870d" + revision = "ce4227a45e2eb77e5c847278dcc6a626742e2945" [[projects]] digest = "1:87738e338f505d3e3be1f80d36b53f3c4e73be9b7ad4ccae46abbe9ef04f3f71" diff --git a/Makefile b/Makefile index cfcba88b..2de78045 100644 --- a/Makefile +++ b/Makefile @@ -57,6 +57,7 @@ release: clean macos windows linux_packages # Generating File Hashes openssl dgst -r -sha256 $@/* | sed 's#release/##' | tee $@/checksums.sha256.txt + # Delete all build assets. clean: # Cleaning up. @@ -131,41 +132,49 @@ rpm: $(BINARY)-$(RPMVERSION)-$(ITERATION).x86_64.rpm $(BINARY)-$(RPMVERSION)-$(ITERATION).x86_64.rpm: package_build_linux check_fpm @echo "Building 'rpm' package for $(BINARY) version '$(RPMVERSION)-$(ITERATION)'." fpm -s dir -t rpm $(PACKAGE_ARGS) -a x86_64 -v $(RPMVERSION) -C $< + [ "$(SIGNING_KEY)" == "" ] || expect -c "spawn rpmsign --key-id=$(SIGNING_KEY) --addsign $(BINARY)-$(RPMVERSION)-$(ITERATION).x86_64.rpm; expect -exact \"Enter pass phrase: \"; send \"$(PRIVATE_KEY)\r\"; expect eof" deb: $(BINARY)_$(VERSION)-$(ITERATION)_amd64.deb $(BINARY)_$(VERSION)-$(ITERATION)_amd64.deb: package_build_linux check_fpm @echo "Building 'deb' package for $(BINARY) version '$(VERSION)-$(ITERATION)'." fpm -s dir -t deb $(PACKAGE_ARGS) -a amd64 -v $(VERSION) -C $< + [ "$(SIGNING_KEY)" == "" ] || expect -c "spawn debsigs --default-key="$(SIGNING_KEY)" --sign=origin $(BINARY)_$(VERSION)-$(ITERATION)_amd64.deb; expect -exact \"Enter passphrase: \"; send \"$(PRIVATE_KEY)\r\"; expect eof" rpm386: $(BINARY)-$(RPMVERSION)-$(ITERATION).i386.rpm $(BINARY)-$(RPMVERSION)-$(ITERATION).i386.rpm: package_build_linux_386 check_fpm @echo "Building 32-bit 'rpm' package for $(BINARY) version '$(RPMVERSION)-$(ITERATION)'." fpm -s dir -t rpm $(PACKAGE_ARGS) -a i386 -v $(RPMVERSION) -C $< + [ "$(SIGNING_KEY)" == "" ] || expect -c "spawn rpmsign --key-id=$(SIGNING_KEY) --addsign $(BINARY)-$(RPMVERSION)-$(ITERATION).i386.rpm; expect -exact \"Enter pass phrase: \"; send \"$(PRIVATE_KEY)\r\"; expect eof" deb386: $(BINARY)_$(VERSION)-$(ITERATION)_i386.deb $(BINARY)_$(VERSION)-$(ITERATION)_i386.deb: package_build_linux_386 check_fpm @echo "Building 32-bit 'deb' package for $(BINARY) version '$(VERSION)-$(ITERATION)'." fpm -s dir -t deb $(PACKAGE_ARGS) -a i386 -v $(VERSION) -C $< + [ "$(SIGNING_KEY)" == "" ] || expect -c "spawn debsigs --default-key="$(SIGNING_KEY)" --sign=origin $(BINARY)_$(VERSION)-$(ITERATION)_i386.deb; expect -exact \"Enter passphrase: \"; send \"$(PRIVATE_KEY)\r\"; expect eof" rpmarm: $(BINARY)-$(RPMVERSION)-$(ITERATION).arm64.rpm $(BINARY)-$(RPMVERSION)-$(ITERATION).arm64.rpm: package_build_linux_arm64 check_fpm @echo "Building 64-bit ARM8 'rpm' package for $(BINARY) version '$(RPMVERSION)-$(ITERATION)'." fpm -s dir -t rpm $(PACKAGE_ARGS) -a arm64 -v $(RPMVERSION) -C $< + [ "$(SIGNING_KEY)" == "" ] || expect -c "spawn rpmsign --key-id=$(SIGNING_KEY) --addsign $(BINARY)-$(RPMVERSION)-$(ITERATION).arm64.rpm; expect -exact \"Enter pass phrase: \"; send \"$(PRIVATE_KEY)\r\"; expect eof" debarm: $(BINARY)_$(VERSION)-$(ITERATION)_arm64.deb $(BINARY)_$(VERSION)-$(ITERATION)_arm64.deb: package_build_linux_arm64 check_fpm @echo "Building 64-bit ARM8 'deb' package for $(BINARY) version '$(VERSION)-$(ITERATION)'." fpm -s dir -t deb $(PACKAGE_ARGS) -a arm64 -v $(VERSION) -C $< + [ "$(SIGNING_KEY)" == "" ] || expect -c "spawn debsigs --default-key="$(SIGNING_KEY)" --sign=origin $(BINARY)_$(VERSION)-$(ITERATION)_arm64.deb; expect -exact \"Enter passphrase: \"; send \"$(PRIVATE_KEY)\r\"; expect eof" rpmarmhf: $(BINARY)-$(RPMVERSION)-$(ITERATION).armhf.rpm $(BINARY)-$(RPMVERSION)-$(ITERATION).armhf.rpm: package_build_linux_armhf check_fpm @echo "Building 32-bit ARM6/7 HF 'rpm' package for $(BINARY) version '$(RPMVERSION)-$(ITERATION)'." fpm -s dir -t rpm $(PACKAGE_ARGS) -a armhf -v $(RPMVERSION) -C $< + [ "$(SIGNING_KEY)" == "" ] || expect -c "spawn rpmsign --key-id=$(SIGNING_KEY) --addsign $(BINARY)-$(RPMVERSION)-$(ITERATION).armhf.rpm; expect -exact \"Enter pass phrase: \"; send \"$(PRIVATE_KEY)\r\"; expect eof" debarmhf: $(BINARY)_$(VERSION)-$(ITERATION)_armhf.deb $(BINARY)_$(VERSION)-$(ITERATION)_armhf.deb: package_build_linux_armhf check_fpm @echo "Building 32-bit ARM6/7 HF 'deb' package for $(BINARY) version '$(VERSION)-$(ITERATION)'." fpm -s dir -t deb $(PACKAGE_ARGS) -a armhf -v $(VERSION) -C $< + [ "$(SIGNING_KEY)" == "" ] || expect -c "spawn debsigs --default-key="$(SIGNING_KEY)" --sign=origin $(BINARY)_$(VERSION)-$(ITERATION)_armhf.deb; expect -exact \"Enter passphrase: \"; send \"$(PRIVATE_KEY)\r\"; expect eof" # Build an environment that can be packaged for linux. package_build_linux: readme man linux diff --git a/README.md b/README.md index bc92c1ba..deae98bc 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,21 @@ You can drill down into specific sites, switches, and ports. Compare ports in di sites side-by-side. So easy! This screenshot barely does it justice. ![USW Dashboard Image](https://grafana.com/api/dashboards/10417/images/6664/image) +## Integrations + +The following fine folks are providing their services, completely free! These service +integrations are used for things like storage, building, compiling, distribution and +documentation support. This project succeeds because of them. Thank you! +

+ + + + + + + +

+ ## Copyright & License diff --git a/gpg.public.key b/gpg.public.key new file mode 100644 index 00000000..3fce86e6 --- /dev/null +++ b/gpg.public.key @@ -0,0 +1,98 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=qJFS +-----END PGP PUBLIC KEY BLOCK----- diff --git a/scripts/package-deploy.sh b/scripts/package-deploy.sh index e3a82e39..784820a6 100755 --- a/scripts/package-deploy.sh +++ b/scripts/package-deploy.sh @@ -8,13 +8,13 @@ echo "deploying packages from branch: $TRAVIS_BRANCH, tag: $TRAVIS_TAG to repo: source .metadata.sh # deb -cmd="package_cloud push golift/${REPO}/debian/stretch" +cmd="package_cloud push golift/${REPO}/debian/all" $cmd release/unifi-poller_${VERSION}-${ITERATION}_arm64.deb $cmd release/unifi-poller_${VERSION}-${ITERATION}_amd64.deb $cmd release/unifi-poller_${VERSION}-${ITERATION}_armhf.deb $cmd release/unifi-poller_${VERSION}-${ITERATION}_i386.deb # rpm -cmd="package_cloud push golift/${REPO}/el/5" +cmd="package_cloud push golift/${REPO}/el/6" $cmd release/unifi-poller-${VERSION}-${ITERATION}.arm64.rpm $cmd release/unifi-poller-${VERSION}-${ITERATION}.x86_64.rpm $cmd release/unifi-poller-${VERSION}-${ITERATION}.armhf.rpm