diff --git a/.forgejo/workflows/build-rpms.yml b/.forgejo/workflows/build-rpms.yml index 2e20db4..a138e99 100644 --- a/.forgejo/workflows/build-rpms.yml +++ b/.forgejo/workflows/build-rpms.yml @@ -7,15 +7,32 @@ on: workflow_dispatch: jobs: + changed: + runs-on: almalinux-10 + outputs: + matrix: ${{ steps.set.outputs.matrix }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Determine changed specs + id: set + run: | + if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then + python3 -c "import json; print(json.dumps({'spec': ['sonic-interface-libraries.spec','sonic-win.spec','sonic-workspace.spec']}))" + else + CHANGED=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep '\.spec$' || true) + python3 -c "import json, sys; print(json.dumps({'spec': sys.argv[1].split()}))" "$CHANGED" + fi >> "$GITHUB_OUTPUT" + build: + needs: changed runs-on: almalinux-10 strategy: fail-fast: false - matrix: - spec: - - sonic-interface-libraries.spec - - sonic-win.spec - - sonic-workspace.spec + matrix: ${{ fromJSON(needs.changed.outputs.matrix) }} steps: - name: Checkout