Fix Podman permission issues and improve package handling - Avoid changing ownership of host files in containers - Only change ownership of script files needed for execution - Copy built packages to builds/ directory instead of workspace root - Add builds/ and package files to .gitignore - This prevents permission issues and keeps built packages organized
Some checks failed
Build ostree Backports / Build ostree Backport for noble (push) Waiting to run
Build libostree Backport / Build libostree Backport (push) Has been cancelled

This commit is contained in:
robojerk 2025-08-05 11:07:10 -07:00
parent 95097ad46a
commit 6fe3939923
3 changed files with 32 additions and 6 deletions

4
.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
builds/
*.deb
*.dsc
*.tar.*

View file

@ -62,7 +62,6 @@ run_in_podman() {
--name "$CONTAINER_NAME" \
--privileged \
--security-opt label=disable \
-v /opt:/opt:shared \
-v "$(pwd):/workspace:Z" \
-w /workspace \
ubuntu:24.04 \
@ -78,9 +77,21 @@ run_in_podman() {
cd /workspace
# Create a non-root user for running the script
useradd -m -s /bin/bash backport-user
chown -R backport-user:backport-user /workspace
# Don't change ownership of host files - only workspace content
chown -R backport-user:backport-user /workspace/*.sh
chown -R backport-user:backport-user /workspace/ostree-backport.sh
echo 'backport-user ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
su - backport-user -c 'cd /workspace && ./ostree-backport.sh noble'
# Create build directory inside container
mkdir -p /home/backport-user/build
chown -R backport-user:backport-user /home/backport-user
su - backport-user -c 'cd /workspace && BACKPORT_DIR=/home/backport-user/build/ostree-backport-noble ./ostree-backport.sh noble'
# Copy built packages to host builds directory
echo '=== Copying built packages to host builds/ directory ==='
mkdir -p /workspace/builds
cp -r /home/backport-user/build/ostree-backport-noble/*.deb /workspace/builds/ 2>/dev/null || echo 'No .deb files found'
cp -r /home/backport-user/build/ostree-backport-noble/*.dsc /workspace/builds/ 2>/dev/null || echo 'No .dsc files found'
cp -r /home/backport-user/build/ostree-backport-noble/*.tar.* /workspace/builds/ 2>/dev/null || echo 'No source tarballs found'
echo '=== Build complete. Check builds/ directory for packages ==='
"
}

17
backport-trixie.sh Executable file → Normal file
View file

@ -62,7 +62,6 @@ run_in_podman() {
--name "$CONTAINER_NAME" \
--privileged \
--security-opt label=disable \
-v /opt:/opt:shared \
-v "$(pwd):/workspace:Z" \
-w /workspace \
debian:testing \
@ -78,9 +77,21 @@ run_in_podman() {
cd /workspace
# Create a non-root user for running the script
useradd -m -s /bin/bash backport-user
chown -R backport-user:backport-user /workspace
# Don't change ownership of host files - only workspace content
chown -R backport-user:backport-user /workspace/*.sh
chown -R backport-user:backport-user /workspace/ostree-backport.sh
echo 'backport-user ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
su - backport-user -c 'cd /workspace && ./ostree-backport.sh trixie'
# Create build directory inside container
mkdir -p /home/backport-user/build
chown -R backport-user:backport-user /home/backport-user
su - backport-user -c 'cd /workspace && BACKPORT_DIR=/home/backport-user/build/ostree-backport-trixie ./ostree-backport.sh trixie'
# Copy built packages to host builds directory
echo '=== Copying built packages to host builds/ directory ==='
mkdir -p /workspace/builds
cp -r /home/backport-user/build/ostree-backport-trixie/*.deb /workspace/builds/ 2>/dev/null || echo 'No .deb files found'
cp -r /home/backport-user/build/ostree-backport-trixie/*.dsc /workspace/builds/ 2>/dev/null || echo 'No .dsc files found'
cp -r /home/backport-user/build/ostree-backport-trixie/*.tar.* /workspace/builds/ 2>/dev/null || echo 'No source tarballs found'
echo '=== Build complete. Check builds/ directory for packages ==='
"
}