diff --git a/.github/workflows/test-functional.yml b/.github/workflows/test-functional.yml index ef3de5a2444d..5fbd2f5e653f 100644 --- a/.github/workflows/test-functional.yml +++ b/.github/workflows/test-functional.yml @@ -1,17 +1,52 @@ name: "test / functional" on: - pull_request + workflow_run: + workflows: ["trigger"] + types: + - requested permissions: statuses: write +concurrency: + group: "${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }}-${{ github.workflow_ref }}" + cancel-in-progress: true + jobs: + changes: + name: "changes" + runs-on: ubuntu-latest + outputs: + should_run: ${{ steps.changes.outputs.should_run }} + sha: ${{ steps.changes.outputs.sha }} + merge_sha: ${{ steps.changes.outputs.merge_sha }} + pr_number: ${{ steps.changes.outputs.pr_number }} + source_branch: ${{ steps.changes.outputs.source_branch }} + source_repo: ${{ steps.changes.outputs.source_repo }} + mergeable: ${{ steps.changes.outputs.mergeable }} + steps: + - uses: actions/checkout@v4 + - uses: "gradio-app/gradio/.github/actions/changes@main" + id: changes + with: + type: "functional" + token: ${{ secrets.GITHUB_TOKEN }} + - name: echo github context + if: always() + run: echo "${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }}-${{ github.workflow_ref }}" + test-functional: name: "test-functional" + needs: changes + if: needs.changes.outputs.should_run == 'true' runs-on: ubuntu-latest + steps: - uses: actions/checkout@v4 + with: + ref: ${{ needs.changes.outputs.merge_sha }} + repository: ${{ needs.changes.outputs.mergeable == 'true' && github.repository || needs.changes.outputs.source_repo }} - name: install dependencies id: install_deps uses: "gradio-app/gradio/.github/actions/install-all-deps@main"