From c58ead0a35f4a0fe00e6e3529ac2c3c82c11cfbb Mon Sep 17 00:00:00 2001 From: Florian Date: Tue, 10 Mar 2026 07:37:28 -0500 Subject: [PATCH] [CI] Skip nightly dev build when no changes in the last 24 hours (#2290) The prepare job now checks for commits in the last 24 hours before proceeding. If there are no changes, the firmware build and docs deploy are skipped, saving CI minutes. Manual triggers always run. Co-authored-by: Florian <1technophile@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 --- .github/workflows/build_and_docs_to_dev.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.github/workflows/build_and_docs_to_dev.yml b/.github/workflows/build_and_docs_to_dev.yml index 02cc07c..db90870 100644 --- a/.github/workflows/build_and_docs_to_dev.yml +++ b/.github/workflows/build_and_docs_to_dev.yml @@ -11,15 +11,33 @@ jobs: if: github.repository_owner == '1technophile' outputs: short-sha: ${{ steps.short-sha.outputs.sha }} + has-changes: ${{ steps.check-changes.outputs.has-changes }} steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Check for recent changes + id: check-changes + run: | + if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then + echo "has-changes=true" >> $GITHUB_OUTPUT + echo "Manual trigger, skipping change check" + elif git log --since='24 hours ago' --oneline | grep -q .; then + echo "has-changes=true" >> $GITHUB_OUTPUT + echo "Changes found in the last 24 hours" + else + echo "has-changes=false" >> $GITHUB_OUTPUT + echo "No changes in the last 24 hours, skipping build" + fi - uses: benjlevesque/short-sha@v2.1 + if: steps.check-changes.outputs.has-changes == 'true' id: short-sha with: length: 6 handle-firmwares: needs: prepare + if: needs.prepare.outputs.has-changes == 'true' name: Build and deploy development firmwares artefacts uses: ./.github/workflows/task-build.yml with: @@ -29,6 +47,7 @@ jobs: handle-documentation: needs: [prepare, handle-firmwares] + if: needs.prepare.outputs.has-changes == 'true' name: Build and deploy development documentation uses: ./.github/workflows/task-docs.yml with: