test
All checks were successful
Build, Upload RootFS, and Push Docker Images, update changelog, update build info. / build-rootfs-archives (push) Successful in 8m9s
Build, Upload RootFS, and Push Docker Images, update changelog, update build info. / push-archives-to-repo (push) Successful in 59s
Build, Upload RootFS, and Push Docker Images, update changelog, update build info. / build-and-push-docker-images (push) Has been skipped
Build, Upload RootFS, and Push Docker Images, update changelog, update build info. / generate-changelogs (push) Has been skipped
Build, Upload RootFS, and Push Docker Images, update changelog, update build info. / generate-build-info (push) Has been skipped

This commit is contained in:
2025-07-07 08:37:53 -07:00
parent 5f242ee8ef
commit a51ed09f3b
2 changed files with 15 additions and 130 deletions

View File

@@ -20,7 +20,6 @@ env:
jobs: jobs:
build-rootfs-archives: build-rootfs-archives:
runs-on: docker-build runs-on: docker-build
steps: steps:
- name: Checkout source - name: Checkout source
uses: actions/checkout@v3 uses: actions/checkout@v3
@@ -29,9 +28,6 @@ jobs:
run: | run: |
versions=(buster bullseye bookworm trixie docker-build) versions=(buster bullseye bookworm trixie docker-build)
# Clear previous checksum file if exists
rm -f sha256sums.txt
for version in "${versions[@]}"; do for version in "${versions[@]}"; do
echo "[INFO] Building Debian $version rootfs..." echo "[INFO] Building Debian $version rootfs..."
docker build --build-arg VERSION=$version -t fithwum/debian-$version-base . docker build --build-arg VERSION=$version -t fithwum/debian-$version-base .
@@ -40,20 +36,18 @@ jobs:
-v "$(pwd)":/output \ -v "$(pwd)":/output \
fithwum/debian-$version-base \ fithwum/debian-$version-base \
bash base-image-script/debian-${version}_pt1.sh bash base-image-script/debian-${version}_pt1.sh
done
ARCHIVE_PATH="./${version}/rootfs-${version}.tar.bz2" - name: Calculate SHA256 checksums
run: |
# Check if archive exists rm -f sha256sums.txt
if [[ -f "$ARCHIVE_PATH" ]]; then for tarball in */rootfs-*.tar.bz2; do
echo "[INFO] Archive found at $ARCHIVE_PATH" if [[ -f "$tarball" ]]; then
checksum=$(sha256sum "$tarball" | awk '{print $1}')
# Calculate and log SHA256 checksum echo "$checksum $tarball" >> sha256sums.txt
CHECKSUM=$(sha256sum "$ARCHIVE_PATH" | awk '{print $1}') echo "[INFO] SHA256 for $tarball: $checksum"
echo "[INFO] SHA256 for $ARCHIVE_PATH: $CHECKSUM"
echo "$CHECKSUM $ARCHIVE_PATH" >> sha256sums.txt
else else
echo "[ERROR] Archive not found at $ARCHIVE_PATH" echo "[WARN] File not found: $tarball"
exit 1
fi fi
done done
@@ -68,54 +62,11 @@ jobs:
name: sha256sums name: sha256sums
path: sha256sums.txt path: sha256sums.txt
# build-rootfs-archives:
# runs-on: docker-build
# steps:
# - name: Checkout source
# uses: actions/checkout@v3
# - name: Build all Debian rootfs versions sequentially
# run: |
# versions=(buster bullseye bookworm trixie docker-build)
# for version in "${versions[@]}"; do
# echo "[INFO] Building Debian $version rootfs..."
# docker build --build-arg VERSION=$version -t fithwum/debian-$version-base .
# docker run --rm --privileged \
# -v "$(pwd)":/output \
# fithwum/debian-$version-base \
# bash base-image-script/debian-${version}_pt1.sh
# done
# - name: List output archives
# run: |
# echo "[INFO] Looking for tarballs in workspace..."
# find . -name '*.tar.bz2' -ls
push-archives-to-repo: push-archives-to-repo:
needs: build-rootfs-archives needs: build-rootfs-archives
runs-on: docker-build runs-on: docker-build
outputs: outputs:
archives_changed: ${{ steps.commit_archives.outputs.archives_changed }} archives_changed: ${{ steps.commit_archives.outputs.archives_changed }}
steps: steps:
- name: Checkout source - name: Checkout source
uses: actions/checkout@v3 uses: actions/checkout@v3
@@ -161,7 +112,6 @@ jobs:
needs: push-archives-to-repo needs: push-archives-to-repo
if: needs.push-archives-to-repo.outputs.archives_changed == 'true' if: needs.push-archives-to-repo.outputs.archives_changed == 'true'
runs-on: docker-build runs-on: docker-build
steps: steps:
- name: Checkout source - name: Checkout source
uses: actions/checkout@v3 uses: actions/checkout@v3
@@ -187,7 +137,6 @@ jobs:
generate-changelogs: generate-changelogs:
needs: build-and-push-docker-images needs: build-and-push-docker-images
runs-on: docker-build runs-on: docker-build
steps: steps:
- name: Checkout source - name: Checkout source
uses: actions/checkout@v3 uses: actions/checkout@v3
@@ -236,7 +185,6 @@ jobs:
generate-build-info: generate-build-info:
needs: generate-changelogs needs: generate-changelogs
runs-on: docker-build runs-on: docker-build
steps: steps:
- name: Checkout source - name: Checkout source
uses: actions/checkout@v3 uses: actions/checkout@v3

View File

@@ -14,10 +14,7 @@ else
fi fi
fi fi
VERSION_NAME="${ROOTFS_DIR#debian-}" TARBALL="/output/${ROOTFS_DIR}.tar.bz2"
TARBALL_NAME="rootfs-${VERSION_NAME}.tar.bz2"
TARBALL_PATH="/output/${VERSION_NAME}/${TARBALL_NAME}"
CHECKSUM_PATH="/output/${VERSION_NAME}/sha256sums.txt"
echo "[INFO] Unmounting system directories (ignore errors)..." echo "[INFO] Unmounting system directories (ignore errors)..."
for dir in sys proc dev/pts dev; do for dir in sys proc dev/pts dev; do
@@ -25,75 +22,15 @@ for dir in sys proc dev/pts dev; do
done done
echo "[INFO] Removing chroot script..." echo "[INFO] Removing chroot script..."
rm -f "$ROOTFS_DIR/root/"*.sh 2>/dev/null || true rm -f "$ROOTFS_DIR/root/${ROOTFS_DIR}_pt2.sh" 2>/dev/null || true
echo "[INFO] Rootfs size:" echo "[INFO] Rootfs size:"
du -sh "$ROOTFS_DIR" du -sh "$ROOTFS_DIR"
echo "[INFO] Creating compressed base image..." echo "[INFO] Creating compressed base image..."
mkdir -p "$(dirname "$TARBALL_PATH")" tar -cjf "$TARBALL" -C "$ROOTFS_DIR" .
tar -cjf "$TARBALL_PATH" -C "$ROOTFS_DIR" .
echo "[INFO] Image archive size:" echo "[INFO] Image archive size:"
du -sh "$TARBALL_PATH" du -sh "$TARBALL"
echo "[INFO] Calculating SHA256 checksum..." echo "[INFO] Tarball ready for CI to upload: $TARBALL"
sha256sum "$TARBALL_PATH" > "$CHECKSUM_PATH"
echo "[INFO] Tarball ready at: $TARBALL_PATH"
echo "[INFO] Checksum written to: $CHECKSUM_PATH"
# #!/bin/bash
# # Copyright (c) 2025 fithwum
# # All rights reserved
# set -e
# # Auto-detect a single debian-* directory if not passed
# if [ -n "$1" ]; then
# ROOTFS_DIR="$1"
# else
# ROOTFS_DIR=$(find . -maxdepth 1 -type d -name "debian-*" | sed 's|^\./||' | head -n 1)
# if [ -z "$ROOTFS_DIR" ]; then
# echo "[ERROR] No debian-* rootfs directory found!"
# exit 1
# fi
# fi
# TARBALL="/output/${ROOTFS_DIR}.tar.bz2"
# echo "[INFO] Unmounting system directories (ignore errors)..."
# for dir in sys proc dev/pts dev; do
# umount -lf "$ROOTFS_DIR/$dir" 2>/dev/null || true
# done
# echo "[INFO] Removing chroot script..."
# rm -f "$ROOTFS_DIR/root/${ROOTFS_DIR}_pt2.sh" 2>/dev/null || true
# echo "[INFO] Rootfs size:"
# du -sh "$ROOTFS_DIR"
# echo "[INFO] Creating compressed base image..."
# tar -cjf "$TARBALL" -C "$ROOTFS_DIR" .
# echo "[INFO] Image archive size:"
# du -sh "$TARBALL"
# echo "[INFO] Tarball ready for CI to upload: $TARBALL"