on: pull_request: name: CI manager concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: check-changes: runs-on: ubuntu-22.04 outputs: full_tests: ${{ steps.filter.outputs.full_tests }} steps: - name: Checkout uses: actions/checkout@v3 - name: Check for only .md changes id: filter run: | if git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | grep -qvE '(\.md$)'; then echo "::set-output name=full_tests::true" else echo "::set-output name=full_tests::false" fi start-nix-linux-x86-64-tests: needs: check-changes if: needs.check-changes.full_tests == 'true' uses: ./.github/workflows/nix_linux_x86_64.yml start-nix-macos-apple-silicon-tests: needs: check-changes if: needs.check-changes.full_tests == 'true' uses: ./.github/workflows/nix_macos_apple_silicon.yml finish-full: runs-on: ubuntu-22.04 needs: [start-nix-linux-x86-64-tests, start-nix-macos-apple-silicon-tests] steps: - run: echo "all jobs succeeded!" finish-basic: runs-on: ubuntu-22.04 needs: [check-changes] if: needs.check-changes.full_tests == 'false' steps: - run: echo "all jobs succeeded!"