diff --git a/.gitea/workflows/base-build.yml b/.gitea/workflows/base-build.yml index f0054d4..9af82bb 100644 --- a/.gitea/workflows/base-build.yml +++ b/.gitea/workflows/base-build.yml @@ -18,6 +18,7 @@ env: DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} VERSIONS: "buster bullseye bookworm" + OUTPUT_DIR: /mnt/user/git/act_runner_output jobs: build-rootfs-archives: @@ -29,36 +30,34 @@ jobs: - name: Debug container /output contents run: | docker run --rm --privileged \ - -v "$(pwd)/output":/output \ + -v "${{ env.OUTPUT_DIR }}:/output" \ -e VERSION=bullseye \ fithwum/debian-bullseye-base \ bash -c "ls -lah /output" - name: Check host output run: | - OUTPUT_DIR="/mnt/user/git/act_runner_output" - mkdir -p "$OUTPUT_DIR" + mkdir -p "${{ env.OUTPUT_DIR }}" ls -lah /mnt/user/git/act_runner_output - name: Clean workspace tarballs before build run: | echo "[INFO] Cleaning old tarballs..." - rm -fv ./mnt/user/git/act_runner_output/*/debian-*.tar.bz2 - rm -fv ./mnt/user/git/act_runner_output/*/rootfs-*.tar.bz2 - rm -fv ./mnt/user/git/act_runner_output/sha256sums.txt + rm -f ./debian-*.tar.bz2 + rm -f ./rootfs-*.tar.bz2 + rm -f ./sha256sums.txt - name: Build all Debian rootfs versions sequentially run: | versions=($VERSIONS) - OUTPUT_DIR="/mnt/user/git/act_runner_output" - mkdir -p "$OUTPUT_DIR" + mkdir -p "${{ env.OUTPUT_DIR }}" for version in "${versions[@]}"; do echo "[INFO] Building $version..." docker build --build-arg VERSION=$version -t fithwum/debian-$version-base . docker run --rm --privileged \ - -v "$OUTPUT_DIR:/output" \ + -v "${{ env.OUTPUT_DIR }}:/output" \ -e VERSION="$version" \ fithwum/debian-$version-base \ bash -c "ls -lh /output; ls -lh /; ls -lh /builder; /scripts/bootstrap-rootfs.sh \"$version\"" @@ -67,33 +66,33 @@ jobs: - name: Verify tarball exists on host run: | - find /mnt/user/git/act_runner_output -type f -name '*.tar.bz2' -ls - du -sh /mnt/user/git/act_runner_output/* + find "${{ env.OUTPUT_DIR }}" -type f -name '*.tar.bz2' -ls + du -sh "${{ env.OUTPUT_DIR }}"/* - name: Check output folder permissions run: | - ls -ld /mnt/user/git/act_runner_output - ls -l /mnt/user/git/act_runner_output/* + ls -ld "${{ env.OUTPUT_DIR }}" + ls -l "${{ env.OUTPUT_DIR }}"/* - name: Check output folder on host run: | echo "Host output folder contents:" - ls -R /mnt/user/git/act_runner_output + ls -R "${{ env.OUTPUT_DIR }}" - name: Debug output folder run: | echo "Archives present in output:" - find ./mnt/user/git/act_runner_output -name '*.tar.bz2' -exec ls -lh {} \; + find "${{ env.OUTPUT_DIR }}" -name '*.tar.bz2' -exec ls -lh {} \; - name: List output archives run: | echo "[INFO] Final archive list:" - find ./mnt/user/git/act_runner_output -type f -name 'debian-*.tar.bz2' + find "${{ env.OUTPUT_DIR }}" -type f -name 'debian-*.tar.bz2' - name: Validate that archives exist for each version run: | for version in $VERSIONS; do - path="/mnt/user/git/act_runner_output/$version/debian-$version.tar.bz2" + path="${{ env.OUTPUT_DIR }}/$version/debian-$version.tar.bz2" if [[ ! -f "$path" ]]; then echo "[ERROR] Missing archive: $path" exit 1 @@ -102,6 +101,10 @@ jobs: fi done + - name: Clean up Docker cache (optional) + if: always() + run: docker system prune -af || true + push-archives-to-repo: needs: build-rootfs-archives runs-on: docker-build @@ -120,7 +123,7 @@ jobs: - name: Copy new archives to upload-repo run: | - found=$(find ./mnt/user/git/act_runner_output -type f -name 'debian-*.tar.bz2') + found=$(find "${{ env.OUTPUT_DIR }}" -type f -name 'debian-*.tar.bz2') if [ -z "$found" ]; then echo "[WARNING] No .tar.bz2 archive found in output/!" exit 1