name: ci
run-name: "ci: ${{ github.event.pull_request.title }}"

on:
  pull_request:
    paths:
      - projects/**/*
      - .github/workflows/ci.yml

concurrency:
  group: ${{ github.event.pull_request.head.ref }}
  cancel-in-progress: true

jobs:
  get-projects:
    runs-on: ubuntu-latest
    outputs:
      diff: ${{ steps.diff.outputs.diff }}
    steps:
      - uses: actions/checkout@v3
      - uses: technote-space/get-diff-action@v6
        id: get-diff
        with:
          PATTERNS: projects/**/package.yml
      - id: diff
        run: |
          for x in ${{ steps.get-diff.outputs.diff }}; do
            y=$(echo $x | sed 's#projects/\(.*\)/package.yml#\1#')
            RESULT="$RESULT $y"
          done
          echo "diff=$RESULT" >> $GITHUB_OUTPUT
  build:
    strategy:
      fail-fast: false
      matrix:
        platform:
          - darwin+x86-64
          - linux+x86-64
          - darwin+aarch64
          - linux+aarch64
    needs: [get-projects]
    uses: ./.github/workflows/build.yml
    name: ${{ matrix.platform }}
    with:
      projects: ${{ needs.get-projects.outputs.diff || 'zlib.net^1.2' }}
      platform: ${{ matrix.platform }}
    secrets: inherit
