diff --git a/.github/workflows/dispatch.yml b/.github/workflows/dispatch.yml deleted file mode 100644 index 7caa4dd..0000000 --- a/.github/workflows/dispatch.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Dispatch to CI - -on: - push: - branches: - - main - -jobs: - dispatch: - runs-on: ubuntu-latest - steps: - - name: Send repository_dispatch - uses: peter-evans/repository-dispatch@v3 - with: - token: ${{ secrets.DISPATCH_TOKEN }} - repository: ps5-linux/ps5-linux-updates - event-type: image-builder-updated - client-payload: '{"sha": "${{ github.sha }}"}' diff --git a/.github/workflows/trigger-builds.yml b/.github/workflows/trigger-builds.yml new file mode 100644 index 0000000..6026bca --- /dev/null +++ b/.github/workflows/trigger-builds.yml @@ -0,0 +1,33 @@ +name: deploy + +on: + push: + branches: [main] + +jobs: + kernel: + permissions: + contents: write + uses: ps5-linux/ps5-linux-updates/.github/workflows/build-kernel.yml@main + secrets: + DISPATCH_TOKEN: ${{ secrets.DISPATCH_TOKEN }} + REMOTE_SSH_KEY: ${{ secrets.REMOTE_SSH_KEY }} + REMOTE_SSH_CONFIG: ${{ secrets.REMOTE_SSH_CONFIG }} + REMOTE_SSH_KNOWN_HOSTS: ${{ secrets.REMOTE_SSH_KNOWN_HOSTS }} + + image: + permissions: + contents: write + uses: ps5-linux/ps5-linux-updates/.github/workflows/build-image.yml@main + with: + distro: all + secrets: + DISPATCH_TOKEN: ${{ secrets.DISPATCH_TOKEN }} + REMOTE_SSH_KEY: ${{ secrets.REMOTE_SSH_KEY }} + REMOTE_SSH_CONFIG: ${{ secrets.REMOTE_SSH_CONFIG }} + REMOTE_SSH_KNOWN_HOSTS: ${{ secrets.REMOTE_SSH_KNOWN_HOSTS }} + R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} + R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }} + R2_ENDPOINT: ${{ secrets.R2_ENDPOINT }} + R2_BUCKET: ${{ secrets.R2_BUCKET }} + diff --git a/build_image.sh b/build_image.sh index 92b37cf..8364b01 100755 --- a/build_image.sh +++ b/build_image.sh @@ -21,6 +21,7 @@ usage() { echo " --kernel Path to kernel source directory (default: auto-clone to work/linux/)" echo " --img-size Disk image size in MB (default: 12000, 32000 for --distro all)" echo " --clean Remove all cached build artifacts and start from scratch" + echo " --clean-only Remove all cached build artifacts and exit" echo " --kernel-only Build and package the kernel only, then exit" echo " --patches-ref Branch, tag, or commit SHA for patches (default: v1.0)" exit 1 @@ -32,6 +33,7 @@ while [[ $# -gt 0 ]]; do --kernel) KERNEL_SRC="$2"; shift 2 ;; --img-size) IMG_SIZE="$2"; shift 2 ;; --clean) CLEAN=true; shift ;; + --clean-only) CLEAN=true; CLEAN_EXIT=true; shift ;; --kernel-only) KERNEL_ONLY=true; shift ;; --patches-ref) [ -n "$2" ] && PATCHES_REF="$2"; shift 2 ;; -h|--help) usage ;; @@ -76,14 +78,14 @@ esac BUILD_PID="" cleanup() { + trap - INT TERM EXIT echo "" - echo "Interrupted. Cleaning up..." + echo "Cleaning up..." docker kill "$DOCKER_NAME" 2>/dev/null || true [ -n "$BUILD_PID" ] && kill "$BUILD_PID" 2>/dev/null || true wait "$BUILD_PID" 2>/dev/null || true - exit 130 } -trap cleanup INT TERM +trap cleanup INT TERM EXIT # --- Clean --- if [ "$CLEAN" = true ]; then @@ -94,6 +96,7 @@ if [ "$CLEAN" = true ]; then alpine rm -rf "/parent/$(basename "$dir")" done echo "Done." + [ "$CLEAN_EXIT" = true ] && exit 0 echo "" fi