diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d05e462e3cd2..41bedc989765 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,9 +13,30 @@ on: name: CI jobs: + changes: + runs-on: ubuntu-latest + outputs: + docs-only: ${{ steps.filter.outputs.docs-only }} + code: ${{ steps.filter.outputs.code }} + steps: + - name: Checkout Code + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # pin@v4 + + - name: Check for file changes + uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # pin@v3 + id: filter + with: + filters: | + docs-only: + - 'documentation/**' + code: + - '!documentation/**' + rust-format: name: Check Rust Code Format runs-on: ubuntu-latest + needs: changes + if: needs.changes.outputs.code == 'true' || github.event_name != 'pull_request' steps: - name: Checkout Code uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # pin@v4 @@ -26,6 +47,8 @@ jobs: rust-build-and-test: name: Build and Test Rust Project runs-on: goose + needs: changes + if: needs.changes.outputs.code == 'true' || github.event_name != 'pull_request' steps: # Add disk space cleanup before linting - name: Check disk space before build @@ -144,6 +167,8 @@ jobs: desktop-lint: name: Lint Electron Desktop App runs-on: macos-latest + needs: changes + if: needs.changes.outputs.code == 'true' || github.event_name != 'pull_request' steps: - name: Checkout Code uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # pin@v4 @@ -160,6 +185,7 @@ jobs: # Faster Desktop App build for PRs only bundle-desktop-unsigned: uses: ./.github/workflows/bundle-desktop.yml - if: github.event_name == 'pull_request' || github.event_name == 'merge_group' + needs: changes + if: (github.event_name == 'pull_request' || github.event_name == 'merge_group') && (needs.changes.outputs.code == 'true' || github.event_name != 'pull_request') with: signing: false