diff --git a/.github/workflows/coding-style.yml b/.github/workflows/coding-style.yml index 37eacf2b..16459d6d 100644 --- a/.github/workflows/coding-style.yml +++ b/.github/workflows/coding-style.yml @@ -6,7 +6,22 @@ on: workflow_dispatch: jobs: - analyse: + pre_job: + runs-on: ubuntu-latest + outputs: + should_skip: ${{ steps.skip_check.outputs.should_skip }} + steps: + - id: skip_check + uses: fkirc/skip-duplicate-actions@v4 + with: + concurrent_skipping: same_content_newer + skip_after_successful_duplicate: true + paths: '["src/**", "tests/**"]' + do_not_skip: '["workflow_dispatch", "schedule"]' + + cs-fix: + needs: pre_job + if: ${{ needs.pre_job.outputs.should_skip != 'true' }} name: Code Style runs-on: ubuntu-latest steps: diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml index c9bd057d..5bd5689d 100644 --- a/.github/workflows/static-analysis.yml +++ b/.github/workflows/static-analysis.yml @@ -6,7 +6,22 @@ on: workflow_dispatch: jobs: + pre_job: + runs-on: ubuntu-latest + outputs: + should_skip: ${{ steps.skip_check.outputs.should_skip }} + steps: + - id: skip_check + uses: fkirc/skip-duplicate-actions@v4 + with: + concurrent_skipping: same_content_newer + skip_after_successful_duplicate: true + paths: '["src/**", "tests/**"]' + do_not_skip: '["workflow_dispatch", "schedule"]' + analyse: + needs: pre_job + if: ${{ needs.pre_job.outputs.should_skip != 'true' }} name: Static Analysis runs-on: ubuntu-latest steps: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 848a64df..35f077a5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,22 @@ on: workflow_dispatch: jobs: + pre_job: + runs-on: ubuntu-latest + outputs: + should_skip: ${{ steps.skip_check.outputs.should_skip }} + steps: + - id: skip_check + uses: fkirc/skip-duplicate-actions@v4 + with: + concurrent_skipping: same_content_newer + skip_after_successful_duplicate: true + paths: '["src/**", "tests/**", "bin/phpunit-zm"]' + do_not_skip: '["workflow_dispatch", "schedule"]' + test: + needs: pre_job + if: ${{ needs.pre_job.outputs.should_skip != 'true' }} strategy: matrix: operating-system: [ ubuntu-latest, windows-latest, macos-latest ]