Skip to content

Commit 8991856

Browse files
Improve build debian package workflow (#527)
* Improve deb builder workflow * Use buildx instead * Fix * Update * Fix permission * update changelog * update build params
1 parent c8cacd7 commit 8991856

File tree

6 files changed

+19
-27
lines changed

6 files changed

+19
-27
lines changed

Makefile

+10-11
Original file line numberDiff line numberDiff line change
@@ -171,23 +171,22 @@ rpm: ## Build RPM package
171171

172172
debian: ## Build Debian packages
173173
@echo "-> Building deb package..."
174-
@$(DOCKER) build \
175-
--build-arg IMAGE_ARCH=$(DEB_IMG_ARCH) \
174+
@$(DOCKER) buildx build --load \
175+
--platform linux/$(DOCKER_PLATFORM) \
176176
--build-arg PKG_VERSION=$(VERSION) \
177-
--build-arg PKG_ARCH=$(PKG_ARCH) \
178177
--build-arg WAYBACK_IPFS_APIKEY=$(shell echo ${WAYBACK_IPFS_APIKEY}) \
179-
-t $(DEB_IMG_ARCH)/wayback-deb-builder \
180-
-f build/debian/Dockerfile .
181-
@$(DOCKER) run --rm \
182-
-v ${PWD}/build/package:/pkg \
183-
$(DEB_IMG_ARCH)/wayback-deb-builder
178+
-t wayback-deb-builder \
179+
-f build/debian/Dockerfile \
180+
.
181+
@$(DOCKER) run --rm --platform linux/$(DOCKER_PLATFORM) \
182+
-v ${PWD}/build/package:/pkg wayback-deb-builder
184183
@echo "-> DEB package below:"
185184
@ls -h ${PWD}/build/package/*.deb
186185

187186
debian-packages: ## Build Debian packages, including amd64, arm32v7, arm64v8
188-
$(MAKE) debian DEB_IMG_ARCH=amd64
189-
$(MAKE) debian DEB_IMG_ARCH=arm32v7 PKG_ARCH=armv7
190-
$(MAKE) debian DEB_IMG_ARCH=arm64v8 PKG_ARCH=arm64
187+
$(MAKE) debian DOCKER_PLATFORM=amd64
188+
$(MAKE) debian DOCKER_PLATFORM=arm64
189+
$(MAKE) debian DOCKER_PLATFORM=arm/v7
191190

192191
submodule: ## Update Git submodule
193192
@echo "-> Updating Git submodule..."

build/debian/Dockerfile

+4-12
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,16 @@
1-
ARG IMAGE_ARCH="amd64"
2-
ARG PKG_VERSION="0.0.1"
3-
ARG PKG_ARCH="amd64"
1+
FROM docker.io/golang:1.22-bookworm AS build
42

5-
FROM ${IMAGE_ARCH}/golang:buster AS build
6-
7-
ARG PKG_ARCH
8-
ARG PKG_VERSION
93
ARG WAYBACK_IPFS_APIKEY
4+
105
ENV DEBIAN_FRONTEND noninteractive
116

127
RUN apt-get update -q && \
13-
apt-get install -y -qq --no-install-recommends build-essential devscripts dh-make dh-systemd && \
8+
apt-get install -y -qq build-essential devscripts dh-make debhelper && \
9+
mkdir -p /build/debian /pkg && \
1410
rm -rf /var/lib/apt/lists/*
1511

16-
RUN mkdir -p /build/debian /pkg
1712
COPY . /src
18-
WORKDIR /src/build/debian
1913

2014
ENV WAYBACK_IPFS_APIKEY ${WAYBACK_IPFS_APIKEY}
21-
ENV PKG_VERSION ${PKG_VERSION}
22-
ENV PKG_ARCH ${PKG_ARCH}
2315

2416
CMD ["/src/build/debian/builder"]

build/debian/builder

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@ set -eu pipefail
55
WORKSPACE="/src"
66
PKG_ARCH="${PKG_ARCH:-$(dpkg --print-architecture)}"
77
PKG_DATE=$(date -R)
8-
PKG_VERSION="${PKG_VERSION:-0.0.1}"
8+
PKG_VERSION="${PKG_VERSION:-$(cd /src && git describe --tags --abbrev=0 | sed 's/^v//')}"
99

1010
echo "WORKSPACE=${WORKSPACE}"
1111
echo "PKG_VERSION=${PKG_VERSION}"
1212
echo "PKG_ARCH=${PKG_ARCH}"
1313
echo "PKG_DATE=${PKG_DATE}"
1414

1515
cd "${WORKSPACE}" && \
16-
sh "${WORKSPACE}/build/binary.sh" "${PKG_ARCH}" && \
16+
make build && \
1717
mkdir -p /build/debian /pkg && \
1818
cd /build && \
19-
cp "${WORKSPACE}/build/binary/wayback-linux-${PKG_ARCH}" /build/wayback && \
19+
cp "${WORKSPACE}/build/binary/wayback" /build/wayback && \
2020
cp "${WORKSPACE}/wayback.1" /build/ && \
2121
cp "${WORKSPACE}/LICENSE" /build/ && \
2222
cp "${WORKSPACE}/build/systemd/wayback.service" /build/debian/ && \

build/debian/control

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Source: wayback
22
Maintainer: Wayback Archiver <[email protected]>
3-
Build-Depends: debhelper (>= 9), dh-systemd
3+
Build-Depends: debhelper (>= 9.20160709) | dh-systemd
44

55
Package: wayback
66
Architecture: __PKG_ARCH__

build/debian/rules

100644100755
File mode changed.

docs/changelog.md

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3131
- Add support for place IRC name
3232
- Fallback to non-TLS server
3333
- Styling IRC message
34+
- Improve build debian package workflow ([#527](https://github.com/wabarc/wayback/pull/527))
3435

3536
### Fixed
3637
- Load the config file always ([#498](https://github.com/wabarc/wayback/pull/498))

0 commit comments

Comments
 (0)