Skip to content

Commit 16f73e7

Browse files
ci: centralize linux deps (runfinch#1625)
Signed-off-by: Swapnanil-Gupta <swpnlg@amazon.com>
1 parent 4b339e4 commit 16f73e7

File tree

6 files changed

+124
-300
lines changed

6 files changed

+124
-300
lines changed

.github/workflows/update-ubuntu-finch-dependencies.yaml

Lines changed: 0 additions & 64 deletions
This file was deleted.

contrib/packaging/deb/control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ Build-Depends: debhelper (>= 13)
66
Homepage: https://runfinch.com
77
Package: runfinch-finch
88
Architecture: ${ARCH}
9-
Depends: containerd (>= 1.7.24), runc (>=1.1.5)
9+
Depends: ${REQUIREMENTS}
1010
Description: https://github.com/runfinch/finch

contrib/packaging/deb/package.sh

Lines changed: 78 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -53,45 +53,37 @@ PKG_FILES="$(dirname "$SCRIPT_DIR")"
5353
ROOT_DIR="$(dirname "$(dirname "$PKG_FILES")")"
5454
PKG_CONFIG="$PKG_FILES/config"
5555
TEMP_BUILD_DIR="${SCRIPT_DIR}/TMP/build"
56+
UBUNTU_DEPS="$ROOT_DIR/deps/finch-core/deps/ubuntu-deps.conf"
57+
58+
# load the ubuntu deps file
59+
source $UBUNTU_DEPS
5660

5761
# finch daemon
5862
FINCHD_PACKAGE="github.com/runfinch/finch-daemon"
59-
FINCHD_RELEASE="0.20.0"
60-
FINCHD_COMMIT="ef5d71ddf0a98f39f6ebcf0401b8706543c9f04e"
6163
FINCHD_SRC=finch-daemon-"${FINCHD_COMMIT}"
6264

6365
# nerdctl
6466
NERDCTL_PACKAGE="github.com/containerd/nerdctl"
6567
NERDCTL_MODULE="github.com/containerd/nerdctl/v2"
66-
NERDCTL_RELEASE="2.1.6"
67-
NERDCTL_COMMIT="59253e9931873e79b92fe3400f14e69d6be34025"
6868
NERDCTL_SRC=nerdctl-"${NERDCTL_COMMIT}"
6969
NERDCTL_VERSION="v$(echo "$NERDCTL_RELEASE" | sed 's/-.*//')"
7070

7171
# buildkit
7272
BUILDKIT_PACKAGE="github.com/moby/buildkit"
73-
BUILDKIT_RELEASE="0.24.0"
74-
BUILDKIT_COMMIT="b772c318368090fb2ffc9c0fed92e0a35bf82389"
7573
BUILDKIT_SRC=buildkit-"${BUILDKIT_COMMIT}"
7674
BUILDKIT_VERSION=$(echo "$BUILDKIT_RELEASE" | sed 's/-.*//')
7775

7876
# soci
7977
SOCI_PACKAGE="github.com/awslabs/soci-snapshotter"
80-
SOCI_RELEASE="0.11.1"
81-
SOCI_COMMIT="28781de6731978b2e2f0f43573a345e9fa14dbd1"
8278
SOCI_SRC=soci-snapshotter-"${SOCI_COMMIT}"
8379
SOCI_GO_LDFLAGS="-ldflags '-s -w -X ${SOCI_PACKAGE}/version.Version=v${SOCI_RELEASE} -X ${SOCI_PACKAGE}/version.Revision=${SOCI_COMMIT}'"
8480

8581
# cni
8682
CNI_PACKAGE="github.com/containernetworking/plugins"
87-
CNI_RELEASE="1.8.0"
88-
CNI_COMMIT="0e648479e11c2c6d9109b14fc0c9ac64c677861b"
8983
CNI_SRC=plugins-"${CNI_COMMIT}"
9084

9185
# cosign
9286
COSIGN_PACKAGE="github.com/sigstore/cosign"
93-
COSIGN_RELEASE="2.2.3"
94-
COSIGN_COMMIT="493e6e29e2ac830aaf05ec210b36d0a5a60c3b32"
9587
COSIGN_SRC=cosign-"${COSIGN_COMMIT}"
9688

9789
# prep directories
@@ -152,71 +144,80 @@ popd
152144

153145
# build dependencies and setup folder structure for each architecture
154146
for arch in "${BUILD_ARCHITECTURES[@]}"; do
155-
ARCH_DIR="${SCRIPT_DIR}/runfinch-finch_${VERSION}_${arch}"
156-
mkdir -p $ARCH_DIR
157-
158-
# setup finch directories
159-
mkdir -p "$ARCH_DIR/bin"
160-
mkdir -p "$ARCH_DIR/usr/bin"
161-
mkdir -p "$ARCH_DIR/usr/local/bin"
162-
mkdir -p "$ARCH_DIR/usr/libexec/finch"
163-
mkdir -p "$ARCH_DIR/usr/libexec/finch/cni/bin"
164-
mkdir -p "$ARCH_DIR/var/lib/finch/buildkit"
165-
mkdir -p "$ARCH_DIR/var/lib/finch/soci"
166-
mkdir -p "$ARCH_DIR/etc/finch/cni/net.d"
167-
mkdir -p "$ARCH_DIR/etc/finch/nerdctl"
168-
mkdir -p "$ARCH_DIR/etc/finch/buildkit"
169-
mkdir -p "$ARCH_DIR/etc/finch/soci"
170-
mkdir -p "$ARCH_DIR/etc/containerd"
171-
mkdir -p "$ARCH_DIR/etc/systemd/system"
172-
173-
# setup DEBIAN directory, control file, and cleanup scripts
174-
mkdir -p "${ARCH_DIR}/DEBIAN"
175-
cp "$SCRIPT_DIR/control" "$ARCH_DIR/DEBIAN/control" && echo "Version: $VERSION" >> "$ARCH_DIR/DEBIAN/control"
176-
sed "s/\${ARCH}/$arch/g" "$ARCH_DIR/DEBIAN/control" | sudo tee "$ARCH_DIR/DEBIAN/control" > /dev/null
177-
cp "$SCRIPT_DIR/postrm" "$ARCH_DIR/DEBIAN/"
178-
cp "$SCRIPT_DIR/prerm" "$ARCH_DIR/DEBIAN/"
179-
chmod 755 "$ARCH_DIR/DEBIAN/prerm" "$ARCH_DIR/DEBIAN/postrm"
180-
181-
# install finchd
182-
sudo install -m 0755 "${TEMP_BUILD_DIR}/${FINCHD_SRC}/bin/finch-daemon" "${ARCH_DIR}/usr/libexec/finch/"
183-
sudo install -m 0755 "${TEMP_BUILD_DIR}/${FINCHD_SRC}/bin/docker-credential-finch" "${ARCH_DIR}/usr/libexec/finch/"
184-
sudo install -m 0644 "$PKG_CONFIG/finch.service" "$ARCH_DIR/etc/systemd/system/finch.service"
185-
sudo install -m 0644 "$PKG_CONFIG/finch.yaml" "$ARCH_DIR/etc/finch"
186-
sudo install -m 0644 "$PKG_CONFIG/finch.socket" "$ARCH_DIR/etc/systemd/system"
187-
188-
# install nerdctl
189-
sudo install -m 0755 -t "$ARCH_DIR/usr/libexec/finch" $TEMP_BUILD_DIR/$NERDCTL_SRC/_output/nerdctl*
190-
sudo install -m 0644 "$PKG_CONFIG/nerdctl_ubuntu.toml" "$ARCH_DIR/etc/finch/nerdctl/nerdctl.toml"
191-
sudo install -m 0644 "$PKG_CONFIG/nerdctl_ubuntu.toml" "$ARCH_DIR/etc/finch/finch.toml"
192-
193-
# install buildkit
194-
sudo install -m 0755 "$TEMP_BUILD_DIR/$BUILDKIT_SRC/_output/buildkitd" "$ARCH_DIR/usr/libexec/finch"
195-
sudo install "$TEMP_BUILD_DIR/$BUILDKIT_SRC/_output/buildctl" "$ARCH_DIR/usr/libexec/finch"
196-
197-
sudo install -m 0644 "$PKG_CONFIG/buildkitd.toml" "$ARCH_DIR/etc/finch/buildkit"
198-
sudo install -m 0644 "$PKG_CONFIG/finch-buildkit.service" "$ARCH_DIR/etc/systemd/system"
199-
sudo install -m 0644 "$PKG_CONFIG/finch-buildkit.socket" "$ARCH_DIR/etc/systemd/system"
200-
201-
# install soci
202-
sudo install "$TEMP_BUILD_DIR/$SOCI_SRC/out/soci" "$ARCH_DIR/usr/libexec/finch"
203-
sudo install "$TEMP_BUILD_DIR/$SOCI_SRC/out/soci-snapshotter-grpc" "$ARCH_DIR/usr/libexec/finch"
204-
205-
sudo install -m 0644 "$PKG_CONFIG/finch-soci.service" "$ARCH_DIR/etc/systemd/system"
206-
sudo install -m 0644 "$PKG_CONFIG/finch-soci.socket" "$ARCH_DIR/etc/systemd/system"
207-
sudo install -m 0644 "$PKG_CONFIG/soci-snapshotter-grpc.toml" "$ARCH_DIR/etc/finch/soci"
208-
209-
# install cni
210-
sudo install -t "$ARCH_DIR/usr/libexec/finch/cni/bin" $TEMP_BUILD_DIR/$CNI_SRC/bin/*
211-
212-
# install cosign
213-
sudo install -m 0755 "$TEMP_BUILD_DIR/$COSIGN_SRC/cosign" "$ARCH_DIR/usr/libexec/finch"
214-
215-
# install finch cli
216-
sudo install -m 0755 "$ROOT_DIR/_output/bin/finch" "$ARCH_DIR/usr/bin"
217-
218-
# build deb
219-
dpkg-deb --build --root-owner-group ${SCRIPT_DIR}/runfinch-finch_${VERSION}_${arch}
147+
ARCH_DIR="${SCRIPT_DIR}/runfinch-finch_${VERSION}_${arch}"
148+
mkdir -p $ARCH_DIR
149+
150+
# setup finch directories
151+
mkdir -p "$ARCH_DIR/bin"
152+
mkdir -p "$ARCH_DIR/usr/bin"
153+
mkdir -p "$ARCH_DIR/usr/local/bin"
154+
mkdir -p "$ARCH_DIR/usr/libexec/finch"
155+
mkdir -p "$ARCH_DIR/usr/libexec/finch/cni/bin"
156+
mkdir -p "$ARCH_DIR/var/lib/finch/buildkit"
157+
mkdir -p "$ARCH_DIR/var/lib/finch/soci"
158+
mkdir -p "$ARCH_DIR/etc/finch/cni/net.d"
159+
mkdir -p "$ARCH_DIR/etc/finch/nerdctl"
160+
mkdir -p "$ARCH_DIR/etc/finch/buildkit"
161+
mkdir -p "$ARCH_DIR/etc/finch/soci"
162+
mkdir -p "$ARCH_DIR/etc/containerd"
163+
mkdir -p "$ARCH_DIR/etc/systemd/system"
164+
165+
# setup DEBIAN directory, control file, and cleanup scripts
166+
mkdir -p "${ARCH_DIR}/DEBIAN"
167+
cp "$SCRIPT_DIR/control" "$ARCH_DIR/DEBIAN/control" && echo "Version: $VERSION" >> "$ARCH_DIR/DEBIAN/control"
168+
169+
# replace ${ARCH} with the actual architecture
170+
sed "s/\${ARCH}/$arch/g" "$ARCH_DIR/DEBIAN/control" | sudo tee "$ARCH_DIR/DEBIAN/control" > /dev/null
171+
echo "Replaced arch value in control file with $arch"
172+
173+
# replace ${REQUIREMENTS} wit the actual requirements
174+
requirements="containerd (>= $MIN_CONTAINERD_VERSION), runc (>= $MIN_RUNC_VERSION)"
175+
sed "s/\${REQUIREMENTS}/$requirements/g" "$ARCH_DIR/DEBIAN/control" | sudo tee "$ARCH_DIR/DEBIAN/control" > /dev/null
176+
echo "Replaced requirements value in control file with $requirements"
177+
178+
cp "$SCRIPT_DIR/postrm" "$ARCH_DIR/DEBIAN/"
179+
cp "$SCRIPT_DIR/prerm" "$ARCH_DIR/DEBIAN/"
180+
chmod 755 "$ARCH_DIR/DEBIAN/prerm" "$ARCH_DIR/DEBIAN/postrm"
181+
182+
# install finchd
183+
sudo install -m 0755 "${TEMP_BUILD_DIR}/${FINCHD_SRC}/bin/finch-daemon" "${ARCH_DIR}/usr/libexec/finch/"
184+
sudo install -m 0755 "${TEMP_BUILD_DIR}/${FINCHD_SRC}/bin/docker-credential-finch" "${ARCH_DIR}/usr/libexec/finch/"
185+
sudo install -m 0644 "$PKG_CONFIG/finch.service" "$ARCH_DIR/etc/systemd/system/finch.service"
186+
sudo install -m 0644 "$PKG_CONFIG/finch.yaml" "$ARCH_DIR/etc/finch"
187+
sudo install -m 0644 "$PKG_CONFIG/finch.socket" "$ARCH_DIR/etc/systemd/system"
188+
189+
# install nerdctl
190+
sudo install -m 0755 -t "$ARCH_DIR/usr/libexec/finch" $TEMP_BUILD_DIR/$NERDCTL_SRC/_output/nerdctl*
191+
sudo install -m 0644 "$PKG_CONFIG/nerdctl_ubuntu.toml" "$ARCH_DIR/etc/finch/nerdctl/nerdctl.toml"
192+
sudo install -m 0644 "$PKG_CONFIG/nerdctl_ubuntu.toml" "$ARCH_DIR/etc/finch/finch.toml"
193+
194+
# install buildkit
195+
sudo install -m 0755 "$TEMP_BUILD_DIR/$BUILDKIT_SRC/_output/buildkitd" "$ARCH_DIR/usr/libexec/finch"
196+
sudo install "$TEMP_BUILD_DIR/$BUILDKIT_SRC/_output/buildctl" "$ARCH_DIR/usr/libexec/finch"
197+
198+
sudo install -m 0644 "$PKG_CONFIG/buildkitd.toml" "$ARCH_DIR/etc/finch/buildkit"
199+
sudo install -m 0644 "$PKG_CONFIG/finch-buildkit.service" "$ARCH_DIR/etc/systemd/system"
200+
sudo install -m 0644 "$PKG_CONFIG/finch-buildkit.socket" "$ARCH_DIR/etc/systemd/system"
201+
202+
# install soci
203+
sudo install "$TEMP_BUILD_DIR/$SOCI_SRC/out/soci" "$ARCH_DIR/usr/libexec/finch"
204+
sudo install "$TEMP_BUILD_DIR/$SOCI_SRC/out/soci-snapshotter-grpc" "$ARCH_DIR/usr/libexec/finch"
205+
206+
sudo install -m 0644 "$PKG_CONFIG/finch-soci.service" "$ARCH_DIR/etc/systemd/system"
207+
sudo install -m 0644 "$PKG_CONFIG/finch-soci.socket" "$ARCH_DIR/etc/systemd/system"
208+
sudo install -m 0644 "$PKG_CONFIG/soci-snapshotter-grpc.toml" "$ARCH_DIR/etc/finch/soci"
209+
210+
# install cni
211+
sudo install -t "$ARCH_DIR/usr/libexec/finch/cni/bin" $TEMP_BUILD_DIR/$CNI_SRC/bin/*
212+
213+
# install cosign
214+
sudo install -m 0755 "$TEMP_BUILD_DIR/$COSIGN_SRC/cosign" "$ARCH_DIR/usr/libexec/finch"
215+
216+
# install finch cli
217+
sudo install -m 0755 "$ROOT_DIR/_output/bin/finch" "$ARCH_DIR/usr/bin"
218+
219+
# build deb
220+
dpkg-deb --build --root-owner-group ${SCRIPT_DIR}/runfinch-finch_${VERSION}_${arch}
220221
done
221222

222223
# clean up

0 commit comments

Comments
 (0)