From 501ec6687477077fdfaedb5d2f2234c23c7a89fe Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Fri, 5 Nov 2021 01:10:00 -0400 Subject: [PATCH 01/11] feat: update the release name and body after creation --- Makefile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4ea6a50..ea6fbfc 100644 --- a/Makefile +++ b/Makefile @@ -158,7 +158,12 @@ bin/gh-release: tar xf bin/gh-release.tgz -C bin chmod +x bin/gh-release -release: build bin/gh-release +bin/gh-release-body: + mkdir -p bin + curl -o bin/gh-release-body "https://raw.githubusercontent.com/dokku/gh-release-body/master/gh-release-body" + chmod +x bin/gh-release-body + +release: build bin/gh-release bin/gh-release-body rm -rf release && mkdir release tar -zcf release/$(NAME)_$(VERSION)_linux_amd64.tgz -C build/linux $(NAME)-amd64 tar -zcf release/$(NAME)_$(VERSION)_linux_armhf.tgz -C build/linux $(NAME)-armhf @@ -167,6 +172,7 @@ release: build bin/gh-release cp build/deb/$(NAME)_$(VERSION)_armhf.deb release/$(NAME)_$(VERSION)_armhf.deb cp build/rpm/$(NAME)-$(VERSION)-1.x86_64.rpm release/$(NAME)-$(VERSION)-1.x86_64.rpm bin/gh-release create $(MAINTAINER)/$(REPOSITORY) $(VERSION) $(shell git rev-parse --abbrev-ref HEAD) + bin/gh-release-body $(MAINTAINER)/$(REPOSITORY) v$(VERSION) release-packagecloud: @$(MAKE) release-packagecloud-deb From f3f9f2953dcecefe82b8be2fa267ca8e49d9b0c8 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Fri, 5 Nov 2021 01:21:33 -0400 Subject: [PATCH 02/11] feat: upgrade ci builder to ubuntu 20.04 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 30df324..3a7560c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ on: jobs: build: name: build - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 strategy: fail-fast: true env: From 25b0280fc756700fd9125014e3d9af58bf9ca042 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jan 2022 19:10:52 +0000 Subject: [PATCH 03/11] chore(deps): bump github.com/BurntSushi/toml from 0.4.1 to 1.0.0 Bumps [github.com/BurntSushi/toml](https://github.com/BurntSushi/toml) from 0.4.1 to 1.0.0. - [Release notes](https://github.com/BurntSushi/toml/releases) - [Commits](https://github.com/BurntSushi/toml/compare/v0.4.1...v1.0.0) --- updated-dependencies: - dependency-name: github.com/BurntSushi/toml dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 8b6d711..c57edfc 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module plugn go 1.12 require ( - github.com/BurntSushi/toml v0.4.1 + github.com/BurntSushi/toml v1.0.0 github.com/dokku/duplex v0.0.0-20160916172127-5bc6cb8042f7 github.com/google/uuid v1.1.4 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect diff --git a/go.sum b/go.sum index 7058208..3e4b15d 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -github.com/BurntSushi/toml v0.4.1 h1:GaI7EiDXDRfa8VshkTj7Fym7ha+y8/XxIgD2okUIjLw= -github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.0.0 h1:dtDWrepsVPfW9H/4y7dDgFc2MBUSeJhlaDtK13CxFlU= +github.com/BurntSushi/toml v1.0.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/dokku/duplex v0.0.0-20160916172127-5bc6cb8042f7 h1:BBMM8QczgTcNTM6axgZA2pdR5SG0eePSh2GeOLpkgRw= github.com/dokku/duplex v0.0.0-20160916172127-5bc6cb8042f7/go.mod h1:FagtW/LftfcKQuBjdmKHdhxCbTU7Gdv87BIOQ6dgAk4= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -13,10 +13,6 @@ github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw= github.com/pborman/uuid v1.2.1/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/progrium/crypto v0.0.0-20141231035031-e04455474e32 h1:TazRiCelU8NoJMn2z0/RIzv4lUUkp5YwAunbjUsODHQ= github.com/progrium/crypto v0.0.0-20141231035031-e04455474e32/go.mod h1:spjB7wUvxDfIjoK9jtlCu07B/QaZwjtKlQeM3njS9QA= -github.com/progrium/go-basher v0.0.0-20210110090515-9ffba79a02ab h1:cE4bmuvTh1ZwxeKKXx0eEVi0IrMvnZAoyLkKv3DkT9I= -github.com/progrium/go-basher v0.0.0-20210110090515-9ffba79a02ab/go.mod h1:Oiy7jZEU1mm+gI1dt5MKYwxptmD37q8/UupxnwhMHtI= -github.com/progrium/go-basher v5.1.2+incompatible h1:l2pBdNutpPyINLq2ZyMRcksTYbwh5AnZ5SfhuvOPY8I= -github.com/progrium/go-basher v5.1.2+incompatible/go.mod h1:Oiy7jZEU1mm+gI1dt5MKYwxptmD37q8/UupxnwhMHtI= github.com/progrium/go-basher v5.1.4+incompatible h1:23t6SIRLGNmrb3NfVX5t8jpxXywRnvgI7If38mKiFso= github.com/progrium/go-basher v5.1.4+incompatible/go.mod h1:Oiy7jZEU1mm+gI1dt5MKYwxptmD37q8/UupxnwhMHtI= github.com/progrium/plugin-demo v0.0.0-20160206152045-d94df2206a64 h1:FHNCTel7Yt0+4I1uvKfu2X+g8U8tHBBJb7zl+ohfmqM= From 1824526bc4a85540a01d33682c5aea83ef4c1a56 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Fri, 28 Jan 2022 12:23:32 -0500 Subject: [PATCH 04/11] feat: add arm64 support Refs dokku/dokku#4975 --- Makefile | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index ea6fbfc..0003ca6 100644 --- a/Makefile +++ b/Makefile @@ -44,8 +44,10 @@ targets = $(addsuffix -in-docker, $(LIST)) build: prebuild @$(MAKE) build/darwin/$(NAME) @$(MAKE) build/linux/$(NAME)-amd64 + @$(MAKE) build/linux/$(NAME)-arm64 @$(MAKE) build/linux/$(NAME)-armhf @$(MAKE) build/deb/$(NAME)_$(VERSION)_amd64.deb + @$(MAKE) build/deb/$(NAME)_$(VERSION)_arm64.deb @$(MAKE) build/deb/$(NAME)_$(VERSION)_armhf.deb @$(MAKE) build/rpm/$(NAME)-$(VERSION)-1.x86_64.rpm @@ -74,6 +76,12 @@ build/linux/$(NAME)-amd64: -ldflags "-s -w -X main.Version=$(VERSION)" \ -o build/linux/$(NAME)-amd64 +build/linux/$(NAME)-armh64: + mkdir -p build/linux + CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -a -asmflags=-trimpath=/src -gcflags=-trimpath=/src \ + -ldflags "-s -w -X main.Version=$(VERSION)" \ + -o build/linux/$(NAME)-arm64 + build/linux/$(NAME)-armhf: mkdir -p build/linux CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 go build -a -asmflags=-trimpath=/src -gcflags=-trimpath=/src \ @@ -100,6 +108,26 @@ build/deb/$(NAME)_$(VERSION)_amd64.deb: build/linux/$(NAME)-amd64 build/linux/$(NAME)-amd64=/usr/bin/$(NAME) \ LICENSE=/usr/share/doc/$(NAME)/copyright +build/deb/$(NAME)_$(VERSION)_arm64.deb: build/linux/$(NAME)-arm64 + export SOURCE_DATE_EPOCH=$(shell git log -1 --format=%ct) \ + && mkdir -p build/deb \ + && fpm \ + --architecture arm64 \ + --category utils \ + --description "$$PACKAGE_DESCRIPTION" \ + --input-type dir \ + --license 'MIT License' \ + --maintainer "$(MAINTAINER_NAME) <$(EMAIL)>" \ + --name $(NAME) \ + --output-type deb \ + --package build/deb/$(NAME)_$(VERSION)_arm64.deb \ + --url "https://github.com/$(MAINTAINER)/$(REPOSITORY)" \ + --vendor "" \ + --version $(VERSION) \ + --verbose \ + build/linux/$(NAME)-arm64=/usr/bin/$(NAME) \ + LICENSE=/usr/share/doc/$(NAME)/copyright + build/deb/$(NAME)_$(VERSION)_armhf.deb: build/linux/$(NAME)-armhf export SOURCE_DATE_EPOCH=$(shell git log -1 --format=%ct) \ && mkdir -p build/deb \ @@ -166,9 +194,11 @@ bin/gh-release-body: release: build bin/gh-release bin/gh-release-body rm -rf release && mkdir release tar -zcf release/$(NAME)_$(VERSION)_linux_amd64.tgz -C build/linux $(NAME)-amd64 + tar -zcf release/$(NAME)_$(VERSION)_linux_arm64.tgz -C build/linux $(NAME)-arm64 tar -zcf release/$(NAME)_$(VERSION)_linux_armhf.tgz -C build/linux $(NAME)-armhf tar -zcf release/$(NAME)_$(VERSION)_darwin_$(HARDWARE).tgz -C build/darwin $(NAME) cp build/deb/$(NAME)_$(VERSION)_amd64.deb release/$(NAME)_$(VERSION)_amd64.deb + cp build/deb/$(NAME)_$(VERSION)_arm64.deb release/$(NAME)_$(VERSION)_arm64.deb cp build/deb/$(NAME)_$(VERSION)_armhf.deb release/$(NAME)_$(VERSION)_armhf.deb cp build/rpm/$(NAME)-$(VERSION)-1.x86_64.rpm release/$(NAME)-$(VERSION)-1.x86_64.rpm bin/gh-release create $(MAINTAINER)/$(REPOSITORY) $(VERSION) $(shell git rev-parse --abbrev-ref HEAD) @@ -178,13 +208,14 @@ release-packagecloud: @$(MAKE) release-packagecloud-deb @$(MAKE) release-packagecloud-rpm -release-packagecloud-deb: build/deb/$(NAME)_$(VERSION)_amd64.deb build/deb/$(NAME)_$(VERSION)_armhf.deb +release-packagecloud-deb: build/deb/$(NAME)_$(VERSION)_amd64.deb build/deb/$(NAME)_$(VERSION)_arm64.deb build/deb/$(NAME)_$(VERSION)_armhf.deb package_cloud push $(PACKAGECLOUD_REPOSITORY)/ubuntu/bionic build/deb/$(NAME)_$(VERSION)_amd64.deb package_cloud push $(PACKAGECLOUD_REPOSITORY)/ubuntu/focal build/deb/$(NAME)_$(VERSION)_amd64.deb package_cloud push $(PACKAGECLOUD_REPOSITORY)/debian/stretch build/deb/$(NAME)_$(VERSION)_amd64.deb package_cloud push $(PACKAGECLOUD_REPOSITORY)/debian/buster build/deb/$(NAME)_$(VERSION)_amd64.deb package_cloud push $(PACKAGECLOUD_REPOSITORY)/debian/bullseye build/deb/$(NAME)_$(VERSION)_amd64.deb - package_cloud push $(PACKAGECLOUD_REPOSITORY)/raspbian/buster build/deb/$(NAME)_$(VERSION)_armhf.deb + package_cloud push $(PACKAGECLOUD_REPOSITORY)/ubuntu/focal build/deb/$(NAME)_$(VERSION)_arm64.deb + package_cloud push $(PACKAGECLOUD_REPOSITORY)/raspbian/buster build/deb/$(NAME)_$(VERSION)_armhf.deb release-packagecloud-rpm: build/rpm/$(NAME)-$(VERSION)-1.x86_64.rpm package_cloud push $(PACKAGECLOUD_REPOSITORY)/el/7 build/rpm/$(NAME)-$(VERSION)-1.x86_64.rpm @@ -192,16 +223,21 @@ release-packagecloud-rpm: build/rpm/$(NAME)-$(VERSION)-1.x86_64.rpm validate: test mkdir -p validation lintian build/deb/$(NAME)_$(VERSION)_amd64.deb || true + lintian build/deb/$(NAME)_$(VERSION)_arm64.deb || true lintian build/deb/$(NAME)_$(VERSION)_armhf.deb || true dpkg-deb --info build/deb/$(NAME)_$(VERSION)_amd64.deb + dpkg-deb --info build/deb/$(NAME)_$(VERSION)_arm64.deb dpkg-deb --info build/deb/$(NAME)_$(VERSION)_armhf.deb dpkg -c build/deb/$(NAME)_$(VERSION)_amd64.deb + dpkg -c build/deb/$(NAME)_$(VERSION)_arm64.deb dpkg -c build/deb/$(NAME)_$(VERSION)_armhf.deb cd validation && ar -x ../build/deb/$(NAME)_$(VERSION)_amd64.deb + cd validation && ar -x ../build/deb/$(NAME)_$(VERSION)_arm64.deb cd validation && ar -x ../build/deb/$(NAME)_$(VERSION)_armhf.deb cd validation && rpm2cpio ../build/rpm/$(NAME)-$(VERSION)-1.x86_64.rpm > $(NAME)-$(VERSION)-1.x86_64.cpio ls -lah build/deb build/rpm validation sha1sum build/deb/$(NAME)_$(VERSION)_amd64.deb + sha1sum build/deb/$(NAME)_$(VERSION)_arm64.deb sha1sum build/deb/$(NAME)_$(VERSION)_armhf.deb sha1sum build/rpm/$(NAME)-$(VERSION)-1.x86_64.rpm From 91008a2d5295347e5cb8ee349ae08d6aa04bc2d3 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Fri, 28 Jan 2022 12:40:53 -0500 Subject: [PATCH 05/11] fix: correct build target --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 0003ca6..a700eb3 100644 --- a/Makefile +++ b/Makefile @@ -76,7 +76,7 @@ build/linux/$(NAME)-amd64: -ldflags "-s -w -X main.Version=$(VERSION)" \ -o build/linux/$(NAME)-amd64 -build/linux/$(NAME)-armh64: +build/linux/$(NAME)-arm64: mkdir -p build/linux CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -a -asmflags=-trimpath=/src -gcflags=-trimpath=/src \ -ldflags "-s -w -X main.Version=$(VERSION)" \ From cb677f80c8516902e3232b00cd62e0fd1b1b6da9 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Fri, 28 Jan 2022 15:38:11 -0500 Subject: [PATCH 06/11] feat: add dependabot --- .github/dependabot.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index d921d0f..a0a2867 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,7 +1,11 @@ +--- version: 2 updates: -- package-ecosystem: gomod - directory: "/" - schedule: - interval: daily - open-pull-requests-limit: 10 + - package-ecosystem: "docker" + directory: "/" + schedule: + interval: "daily" + - package-ecosystem: "gomod" + directory: "/" + schedule: + interval: "daily" From 1041bbdba9368ff3f4b74c6f05c6d7e3121b7331 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jan 2022 20:38:53 +0000 Subject: [PATCH 07/11] chore(deps): bump golang from 1.12.0-stretch to 1.17.6-stretch Bumps golang from 1.12.0-stretch to 1.17.6-stretch. --- updated-dependencies: - dependency-name: golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Dockerfile.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.build b/Dockerfile.build index f4fd562..72efd79 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -1,4 +1,4 @@ -FROM golang:1.12.0-stretch +FROM golang:1.17.6-stretch RUN apt-get update \ && apt install apt-transport-https build-essential curl gnupg2 lintian rpm rsync rubygems-integration ruby-dev ruby -qy \ From 37a1d752d88c900003d652bde1258c4b6b78beeb Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Fri, 28 Jan 2022 15:39:16 -0500 Subject: [PATCH 08/11] chore: update dockerfile --- Dockerfile.build | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Dockerfile.build b/Dockerfile.build index f4fd562..f8b8d3d 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -1,10 +1,12 @@ -FROM golang:1.12.0-stretch +FROM golang:1.17.6-buster +# hadolint ignore=DL3027 RUN apt-get update \ - && apt install apt-transport-https build-essential curl gnupg2 lintian rpm rsync rubygems-integration ruby-dev ruby -qy \ + && apt install apt-transport-https bats build-essential curl gnupg2 lintian rpm rsync rubygems-integration ruby-dev ruby -qy \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* +# hadolint ignore=DL3028 RUN gem install --no-ri --no-rdoc --quiet rake fpm package_cloud WORKDIR /src From a2d0694f3345f533a27b6dd3b6137a7b93b73f98 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Fri, 28 Jan 2022 15:43:18 -0500 Subject: [PATCH 09/11] fix: add jq to build environment --- Dockerfile.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.build b/Dockerfile.build index f4fd562..637f171 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -1,7 +1,7 @@ FROM golang:1.12.0-stretch RUN apt-get update \ - && apt install apt-transport-https build-essential curl gnupg2 lintian rpm rsync rubygems-integration ruby-dev ruby -qy \ + && apt install apt-transport-https build-essential curl gnupg2 jq lintian rpm rsync rubygems-integration ruby-dev ruby -qy \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* From 3b3db673ae5264002a36d13739737ceae30f98a9 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 31 Jan 2022 12:12:29 -0500 Subject: [PATCH 10/11] chore: use buster for now to fix builds --- Dockerfile.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.build b/Dockerfile.build index a85d8a8..4153a23 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -1,4 +1,4 @@ -FROM golang:1.17.6-stretch +FROM golang:1.17.6-buster # hadolint ignore=DL3027 RUN apt-get update \ From 44dde22e8d991d7b9f34127490bd3a99eb0ae055 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 31 Jan 2022 12:40:23 -0500 Subject: [PATCH 11/11] Release 0.8.0 --- CHANGELOG.md | 19 +++++++++++++++++++ Makefile | 2 +- README.md | 2 +- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a743f8..1bd4834 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,25 @@ # Change Log All notable changes to this project will be documented in this file. +## [0.8.0](https://github.com/dokku/plugn/compare/v0.7.1...v0.8.0) - 2022-01-31 + +### Added + +- @josegonzalez Update the release name and body after creation #60 +- @josegonzalez Add arm64 support #63 +- @josegonzalez Add dependabot for docker #64 + +### Fixed + +- @josegonzalez Add jq to build environment #67 + +### Changed + +- @josegonzalez Upgrade ci builder to ubuntu 20.04 #61 +- @josegonzalez Update dockerfile to newer base image #66 +- @dependabot chore(deps): bump github.com/BurntSushi/toml from 0.4.1 to 1.0.0 #62 +- @dependabot chore(deps): bump golang from 1.12.0-stretch to 1.17.6-stretch #65 + ## [0.7.1](https://github.com/dokku/plugn/compare/v0.7.0...v0.7.1) - 2021-10-28 ### Fixed diff --git a/Makefile b/Makefile index a700eb3..3f12da8 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ MAINTAINER_NAME = Jose Diaz-Gonzalez REPOSITORY = plugn HARDWARE = $(shell uname -m) SYSTEM_NAME = $(shell uname -s | tr '[:upper:]' '[:lower:]') -BASE_VERSION ?= 0.7.1 +BASE_VERSION ?= 0.8.0 IMAGE_NAME ?= $(MAINTAINER)/$(REPOSITORY) PACKAGECLOUD_REPOSITORY ?= dokku/dokku-betafish diff --git a/README.md b/README.md index 50e0da0..a1e570d 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Hook system that lets users extend your application with plugins ## Installation ``` -$ wget -qO /tmp/plugn_latest.tgz https://github.com/dokku/plugn/releases/download/v0.7.1/plugn_0.7.1_linux_amd64.tgz +$ wget -qO /tmp/plugn_latest.tgz https://github.com/dokku/plugn/releases/download/v0.8.0/plugn_0.8.0_linux_amd64.tgz $ tar xzf /tmp/plugn_latest.tgz -C /usr/local/bin ```