---
name: Check library diffs

on:
  push:
    branches: [master]
  pull_request:
    paths:
      - ".github/actions/**"
      - ".github/tools/**"
      - ".github/workflows/**"
      - "libs/**"

# If another push to the same PR or branch happens while this workflow is still running,
# cancel the earlier run in favor of the next run.
#
# There's no point in testing an outdated version of the code. GitHub only allows
# a limited number of job runners to be active at the same time, so it's better to cancel
# pointless jobs early so that more useful jobs can run sooner.
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v4
        with:
          python-version: '3.10'
      - id: files
        uses: Ana06/get-changed-files@v2.2.0
      - id: set-matrix
        run: echo "dirs-to-run=$(python .github/scripts/check_diff.py ${{ steps.files.outputs.all }})" >> $GITHUB_OUTPUT
    outputs:
      dirs-to-run: ${{ steps.set-matrix.outputs.dirs-to-run }}
  ci:
    needs: [ build ]
    strategy:
      matrix:
        working-directory: ${{ fromJson(needs.build.outputs.dirs-to-run) }}
    uses: ./.github/workflows/_all_ci.yml
    with:
      working-directory: ${{ matrix.working-directory }}


