diff --git a/.gitea/workflows/build-iso-dev.yml b/.gitea/workflows/build-iso-dev.yml index f2c3c150..6cdf45b4 100644 --- a/.gitea/workflows/build-iso-dev.yml +++ b/.gitea/workflows/build-iso-dev.yml @@ -28,17 +28,28 @@ jobs: - name: Install ISO build dependencies run: | - sudo apt-get update -qq - sudo apt-get install -y -qq \ - debootstrap squashfs-tools xorriso \ - isolinux syslinux-common mtools \ - grub-efi-amd64-bin grub-pc-bin grub-common + # Skip apt if packages already installed (persistent runner) + if dpkg -s debootstrap squashfs-tools xorriso isolinux syslinux-common mtools \ + grub-efi-amd64-bin grub-pc-bin grub-common >/dev/null 2>&1; then + echo "ISO build deps already installed, skipping apt" + else + sudo apt-get update -qq + sudo apt-get install -y -qq \ + debootstrap squashfs-tools xorriso \ + isolinux syslinux-common mtools \ + grub-efi-amd64-bin grub-pc-bin grub-common + fi - - name: Build backend + - name: Build backend (incremental) run: | source $HOME/.cargo/env 2>/dev/null || true + # Build in persistent repo dir to reuse target/ cache + cd "$HOME/archy" export GIT_HASH=$(git rev-parse --short HEAD) cargo build --release --manifest-path core/Cargo.toml + # Copy binary to workspace for downstream steps + mkdir -p "$GITHUB_WORKSPACE/core/target/release" + cp core/target/release/archipelago "$GITHUB_WORKSPACE/core/target/release/" - name: Build frontend run: cd neode-ui && npm ci && npm run build @@ -52,6 +63,7 @@ jobs: - name: Run container orchestration unit tests run: | source $HOME/.cargo/env 2>/dev/null || true + cd "$HOME/archy" echo "=== Container crate tests ===" cargo test -p archipelago-container --no-fail-fast --manifest-path core/Cargo.toml echo ""