Skip to content

Commit 01b7721

Browse files
committed
make: Add release targets for standalone binary builds
Many people might just want to download a single binary.
1 parent 46b2fe0 commit 01b7721

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

Makefile

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ SHELL = /usr/bin/env bash
3131
.PHONY: all art cleanart version program lang path deps run race generate build build-debug crossbuild clean test gofmt yamlfmt format docs
3232
.PHONY: rpmbuild mkdirs rpm srpm spec tar upload upload-sources upload-srpms upload-rpms upload-releases copr tag
3333
.PHONY: mkosi mkosi_fedora-30 mkosi_fedora-29 mkosi_centos-7 mkosi_debian-10 mkosi_ubuntu-bionic mkosi_archlinux
34-
.PHONY: release releases_path release_fedora-30 release_fedora-29 release_centos-7 release_debian-10 release_ubuntu-bionic release_archlinux
34+
.PHONY: release releases_path release_binary_amd64 release_binary_arm64 release_fedora-30 release_fedora-29 release_centos-7 release_debian-10 release_ubuntu-bionic release_archlinux
3535
.PHONY: funcgen
3636
.SILENT: clean
3737

@@ -72,20 +72,26 @@ GOOSARCHES ?= linux/amd64 linux/ppc64 linux/ppc64le linux/arm64 darwin/amd64
7272
GOHOSTOS = $(shell go env GOHOSTOS)
7373
GOHOSTARCH = $(shell go env GOHOSTARCH)
7474

75+
TOKEN_BINARY_AMD64 = binary-linux-amd64
76+
TOKEN_BINARY_ARM64 = binary-linux-arm64
7577
TOKEN_FEDORA-30 = fedora-30
7678
TOKEN_FEDORA-29 = fedora-29
7779
TOKEN_CENTOS-7 = centos-7
7880
TOKEN_DEBIAN-10 = debian-10
7981
TOKEN_UBUNTU-BIONIC = ubuntu-bionic
8082
TOKEN_ARCHLINUX = archlinux
8183

84+
FILE_BINARY_AMD64 = mgmt-linux-amd64-$(VERSION)
85+
FILE_BINARY_ARM64 = mgmt-linux-arm64-$(VERSION)
8286
FILE_FEDORA-30 = mgmt-$(TOKEN_FEDORA-30)-$(VERSION)-1.x86_64.rpm
8387
FILE_FEDORA-29 = mgmt-$(TOKEN_FEDORA-29)-$(VERSION)-1.x86_64.rpm
8488
FILE_CENTOS-7 = mgmt-$(TOKEN_CENTOS-7)-$(VERSION)-1.x86_64.rpm
8589
FILE_DEBIAN-10 = mgmt_$(TOKEN_DEBIAN-10)_$(VERSION)_amd64.deb
8690
FILE_UBUNTU-BIONIC = mgmt_$(TOKEN_UBUNTU-BIONIC)_$(VERSION)_amd64.deb
8791
FILE_ARCHLINUX = mgmt-$(TOKEN_ARCHLINUX)-$(VERSION)-1-x86_64.pkg.tar.xz
8892

93+
PKG_BINARY_AMD64 = releases/$(VERSION)/$(TOKEN_BINARY_AMD64)/$(FILE_BINARY_AMD64)
94+
PKG_BINARY_ARM64 = releases/$(VERSION)/$(TOKEN_BINARY_ARM64)/$(FILE_BINARY_ARM64)
8995
PKG_FEDORA-30 = releases/$(VERSION)/$(TOKEN_FEDORA-30)/$(FILE_FEDORA-30)
9096
PKG_FEDORA-29 = releases/$(VERSION)/$(TOKEN_FEDORA-29)/$(FILE_FEDORA-29)
9197
PKG_CENTOS-7 = releases/$(VERSION)/$(TOKEN_CENTOS-7)/$(FILE_CENTOS-7)
@@ -416,19 +422,23 @@ releases_path:
416422
@#Don't put any other output or dependencies in here or they'll show!
417423
@echo "releases/$(VERSION)/"
418424

425+
release_binary_amd64: $(PKG_BINARY_AMD64)
426+
release_binary_arm64: $(PKG_BINARY_ARM64)
419427
release_fedora-30: $(PKG_FEDORA-30)
420428
release_fedora-29: $(PKG_FEDORA-29)
421429
release_centos-7: $(PKG_CENTOS-7)
422430
release_debian-10: $(PKG_DEBIAN-10)
423431
release_ubuntu-bionic: $(PKG_UBUNTU-BIONIC)
424432
release_archlinux: $(PKG_ARCHLINUX)
425433

426-
releases/$(VERSION)/mgmt-release.url: $(PKG_FEDORA-30) $(PKG_FEDORA-29) $(PKG_CENTOS-7) $(PKG_DEBIAN-10) $(PKG_UBUNTU-BIONIC) $(PKG_ARCHLINUX) $(SHA256SUMS_ASC)
434+
releases/$(VERSION)/mgmt-release.url: $(PKG_BINARY_AMD64) $(PKG_BINARY_ARM64) $(PKG_FEDORA-30) $(PKG_FEDORA-29) $(PKG_CENTOS-7) $(PKG_DEBIAN-10) $(PKG_UBUNTU-BIONIC) $(PKG_ARCHLINUX) $(SHA256SUMS_ASC)
427435
@echo "Pushing git tag $(VERSION) to origin..."
428436
git push origin $(VERSION)
429437
@echo "Creating github release..."
430438
hub release create \
431439
-F <( echo -e "$(VERSION)\n";echo "Verify the signatures of all packages before you use them. The signing key can be downloaded from https://purpleidea.com/contact/#pgp-key to verify the release." ) \
440+
-a $(PKG_BINARY_AMD64) \
441+
-a $(PKG_BINARY_ARM64) \
432442
-a $(PKG_FEDORA-30) \
433443
-a $(PKG_FEDORA-29) \
434444
-a $(PKG_CENTOS-7) \
@@ -442,7 +452,15 @@ releases/$(VERSION)/mgmt-release.url: $(PKG_FEDORA-30) $(PKG_FEDORA-29) $(PKG_CE
442452
|| rm -f releases/$(VERSION)/mgmt-release.url
443453

444454
releases/$(VERSION)/.mkdir:
445-
mkdir -p releases/$(VERSION)/{$(TOKEN_FEDORA-30),$(TOKEN_FEDORA-29),$(TOKEN_CENTOS-7),$(TOKEN_DEBIAN-10),$(TOKEN_UBUNTU-BIONIC),$(TOKEN_ARCHLINUX)}/ && touch releases/$(VERSION)/.mkdir
455+
mkdir -p releases/$(VERSION)/{$(TOKEN_BINARY_AMD64),$(TOKEN_BINARY_ARM64),$(TOKEN_FEDORA-30),$(TOKEN_FEDORA-29),$(TOKEN_CENTOS-7),$(TOKEN_DEBIAN-10),$(TOKEN_UBUNTU-BIONIC),$(TOKEN_ARCHLINUX)}/ && touch releases/$(VERSION)/.mkdir
456+
457+
$(PKG_BINARY_AMD64): build/mgmt-linux-amd64 releases/$(VERSION)/.mkdir
458+
@title='$(@D)' ; distro=$${title#'releases/$(VERSION)/'} ; echo "Building: $${distro} package..."
459+
@title='$(@D)' ; distro=$${title#'releases/$(VERSION)/'} ; cp -a build/mgmt-linux-amd64 $(PKG_BINARY_AMD64)
460+
461+
$(PKG_BINARY_ARM64): build/mgmt-linux-arm64 releases/$(VERSION)/.mkdir
462+
@title='$(@D)' ; distro=$${title#'releases/$(VERSION)/'} ; echo "Building: $${distro} package..."
463+
@title='$(@D)' ; distro=$${title#'releases/$(VERSION)/'} ; cp -a build/mgmt-linux-arm64 $(PKG_BINARY_ARM64)
446464

447465
releases/$(VERSION)/$(TOKEN_FEDORA-30)/changelog: $(PROGRAM) releases/$(VERSION)/.mkdir
448466
@title='$(@D)' ; distro=$${title#'releases/$(VERSION)/'} ; echo "Generating: $${distro} changelog..."
@@ -488,10 +506,10 @@ $(PKG_ARCHLINUX): $(PROGRAM) releases/$(VERSION)/.mkdir
488506
@title='$(@D)' ; distro=$${title#'releases/$(VERSION)/'} ; echo "Building: $${distro} package..."
489507
@title='$(@D)' ; distro=$${title#'releases/$(VERSION)/'} ; ./misc/fpm-pack.sh $${distro} $(VERSION) "$(FILE_ARCHLINUX)" libvirt augeas
490508

491-
$(SHA256SUMS): $(PKG_FEDORA-30) $(PKG_FEDORA-29) $(PKG_CENTOS-7) $(PKG_DEBIAN-10) $(PKG_UBUNTU-BIONIC) $(PKG_ARCHLINUX)
509+
$(SHA256SUMS): $(PKG_BINARY_AMD64) $(PKG_BINARY_ARM64) $(PKG_FEDORA-30) $(PKG_FEDORA-29) $(PKG_CENTOS-7) $(PKG_DEBIAN-10) $(PKG_UBUNTU-BIONIC) $(PKG_ARCHLINUX)
492510
@# remove the directory separator in the SHA256SUMS file
493511
@echo "Generating: sha256 sum..."
494-
sha256sum $(PKG_FEDORA-30) $(PKG_FEDORA-29) $(PKG_CENTOS-7) $(PKG_DEBIAN-10) $(PKG_UBUNTU-BIONIC) $(PKG_ARCHLINUX) | awk -F '/| ' '{print $$1" "$$6}' > $(SHA256SUMS)
512+
sha256sum $(PKG_BINARY_AMD64) $(PKG_BINARY_ARM64) $(PKG_FEDORA-30) $(PKG_FEDORA-29) $(PKG_CENTOS-7) $(PKG_DEBIAN-10) $(PKG_UBUNTU-BIONIC) $(PKG_ARCHLINUX) | awk -F '/| ' '{print $$1" "$$6}' > $(SHA256SUMS)
495513

496514
$(SHA256SUMS_ASC): $(SHA256SUMS)
497515
@echo "Signing sha256 sum..."

0 commit comments

Comments
 (0)