Skip to content

Commit c6b0ce8

Browse files
committed
ci(sbuild): switch to directory chroot; install uv in setup_sbuild.sh with /usr/bin symlink; workflow no longer installs uv; preserve master behavior
1 parent ef0a66b commit c6b0ce8

File tree

2 files changed

+19
-16
lines changed

2 files changed

+19
-16
lines changed

.github/workflows/apt.yml

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,16 @@ on:
99
- unstable
1010
workflow_call:
1111

12+
1213
jobs:
1314
build-source-package:
1415
runs-on: ubuntu-22.04
1516
strategy:
1617
fail-fast: false
1718
matrix:
18-
dist: ${{ fromJSON(vars.BUILD_DISTS) }}
19-
arch: ${{ fromJSON(vars.BUILD_ARCHS) }}
20-
exclude: ${{ fromJSON(vars.BUILD_EXCLUDE) }}
19+
dist: ${{ fromJSON(vars.BUILD_DISTS || '["bookworm"]') }}
20+
arch: ${{ fromJSON(vars.BUILD_ARCHS || '["amd64"]') }}
21+
exclude: ${{ fromJSON(vars.BUILD_EXCLUDE || '[]') }}
2122
steps:
2223
- uses: actions/checkout@v4
2324
with:
@@ -39,22 +40,22 @@ jobs:
3940
mkdir -p redis-${VERSION}
4041
tar --extract --gunzip --file redis_${VERSION}.orig.tar.gz --strip-components=1 -C redis-${VERSION}
4142
sed -i 's/INSTALL_BIN=\$(PREFIX)\/bin/INSTALL_BIN=\$(DESTDIR)\$(PREFIX)\/bin/' redis-${VERSION}/src/Makefile
42-
43+
4344
echo "===== Updating all Redis module versions to 'master' ====="
4445
find redis-${VERSION}/modules -name "Makefile" -type f | while read -r makefile; do
4546
echo "Processing $makefile"
4647
echo " Before change:"
4748
grep "MODULE_VERSION" "$makefile" || echo " No MODULE_VERSION found"
48-
49+
4950
# Update the MODULE_VERSION to 'master'
5051
sed -i 's/MODULE_VERSION = .*/MODULE_VERSION = master/g' "$makefile"
51-
52+
5253
echo " After change:"
5354
grep "MODULE_VERSION" "$makefile" || echo " No MODULE_VERSION found after update"
5455
echo "-----------------------------------"
5556
done
5657
echo "===== Module version updates completed ====="
57-
58+
5859
cp -pr debian redis-${VERSION}
5960
sed -i "s/@RELEASE@/${{ matrix.dist }}/g" redis-${VERSION}/debian/changelog
6061
( cd redis-${VERSION} && dpkg-buildpackage -S )
@@ -72,9 +73,9 @@ jobs:
7273
strategy:
7374
fail-fast: false
7475
matrix:
75-
dist: ${{ fromJSON(vars.BUILD_DISTS) }}
76-
arch: ${{ fromJSON(vars.BUILD_ARCHS) }}
77-
exclude: ${{ fromJSON(vars.BUILD_EXCLUDE) }}
76+
dist: ${{ fromJSON(vars.BUILD_DISTS || '["bookworm"]') }}
77+
arch: ${{ fromJSON(vars.BUILD_ARCHS || '["amd64"]') }}
78+
exclude: ${{ fromJSON(vars.BUILD_EXCLUDE || '[]') }}
7879
needs: build-source-package
7980
steps:
8081
- uses: actions/checkout@v4
@@ -121,6 +122,8 @@ jobs:
121122
--dist ${{ matrix.dist }} \
122123
--build-dep-resolver=apt \
123124
--chroot-setup-commands="apt-get update && apt-get install -y build-essential" \
125+
126+
124127
*.dsc
125128
- name: Upload binary package artifact
126129
uses: actions/upload-artifact@v4
@@ -135,8 +138,8 @@ jobs:
135138
strategy:
136139
fail-fast: false
137140
matrix:
138-
image: ${{ fromJSON(vars.SMOKE_TEST_IMAGES) }}
139-
arch: [amd64, arm64]
141+
image: ${{ fromJSON(vars.SMOKE_TEST_IMAGES || '["debian:bookworm"]') }}
142+
arch: ${{ fromJSON(vars.BUILD_ARCHS || '["amd64","arm64"]') }}
140143
container: ${{ matrix.image }}
141144
steps:
142145
- name: Extract distribution from image

setup_sbuild.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ cat > "$SBUILD_CONF" << EOF
3939
$host_arch $arch $dist $url
4040
EOF
4141

42-
# Create the sbuild chroot with the configuration
43-
sbuild-createchroot --arch=${arch} --make-sbuild-tarball=/var/lib/sbuild/${dist}-${arch}.tar.gz ${dist} $(mktemp -d) ${url}
42+
# Create the sbuild chroot with the configuration (use directory chroot so installed tools persist into build clones)
43+
sbuild-createchroot --arch=${arch} ${dist} /var/lib/sbuild/chroots/${dist}-${arch} ${url}
4444

4545
# For cross-compilation, install the necessary packages
4646
if [ "$arch" != "$host_arch" ]; then
@@ -91,8 +91,8 @@ schroot -c source:${dist}-${arch}-sbuild -d / -- apt-get install -y build-essent
9191
schroot -c source:${dist}-${arch}-sbuild -d / -- bash -lc "set -e; curl --proto '=https' --tlsv1.2 -LsSf https://astral.sh/uv/install.sh | sh"
9292
# Make uv available system-wide in chroot PATH
9393
schroot -c source:${dist}-${arch}-sbuild -d / -- bash -lc "install -m 0755 \"$HOME/.local/bin/uv\" /usr/local/bin/uv || cp -f \"$HOME/.local/bin/uv\" /usr/local/bin/uv"
94-
# Verify uv installed
95-
schroot -c source:${dist}-${arch}-sbuild -d / -- uv -V
94+
# Verify uv installed and ensure it's in PATH via /usr/bin
95+
schroot -c source:${dist}-${arch}-sbuild -d / -- bash -lc "ln -sf /usr/local/bin/uv /usr/bin/uv && /usr/bin/uv -V"
9696

9797
# Install latest CMake version for Jammy and Bullseye
9898
if [ "$dist" = "jammy" ] || [ "$dist" = "bullseye" ]; then

0 commit comments

Comments
 (0)