name: Generate changeset on: workflow_run: workflows: ["trigger-changeset"] types: - completed env: CI: true concurrency: group: "${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }}" cancel-in-progress: false permissions: {} jobs: get-pr: runs-on: ubuntu-latest permissions: contents: read pull-requests: read if: github.event.workflow_run.conclusion == 'success' outputs: found_pr: ${{ steps.pr_details.outputs.found_pr }} pr_number: ${{ steps.pr_details.outputs.pr_number }} source_repo: ${{ steps.pr_details.outputs.source_repo }} source_branch: ${{ steps.pr_details.outputs.source_branch }} actor: ${{ steps.pr_details.outputs.actor }} sha: ${{ steps.pr_details.outputs.sha }} steps: - name: get pr details id: pr_details uses: gradio-app/github/actions/find-pr@main with: github_token: ${{ secrets.GITHUB_TOKEN }} comment-changes-start: uses: "./.github/workflows/comment-queue.yml" needs: get-pr secrets: gh_token: ${{ secrets.COMMENT_TOKEN }} with: pr_number: ${{ needs.get-pr.outputs.pr_number }} message: changes~pending~null version: permissions: contents: read environment: changeset name: version needs: get-pr runs-on: ubuntu-latest if: needs.get-pr.outputs.found_pr == 'true' outputs: skipped: ${{ steps.version.outputs.skipped }} comment_url: ${{ steps.version.outputs.comment_url }} approved: ${{ steps.version.outputs.approved }} steps: - uses: actions/checkout@v4 with: repository: ${{ needs.get-pr.outputs.source_repo }} ref: ${{ needs.get-pr.outputs.source_branch }} fetch-depth: 0 token: ${{ secrets.COMMENT_TOKEN }} - name: generate changeset id: version uses: "gradio-app/github/actions/generate-changeset@main" with: github_token: ${{ secrets.CHANGESET_GITHUB_TOKEN }} main_pkg: gradio pr_number: ${{ needs.get-pr.outputs.pr_number }} branch_name: ${{ needs.get-pr.outputs.source_branch }} actor: ${{ needs.get-pr.outputs.actor }} update-status: permissions: actions: read statuses: write runs-on: ubuntu-latest needs: [version, get-pr] steps: - name: update status uses: gradio-app/github/actions/commit-status@main with: sha: ${{ needs.get-pr.outputs.sha }} token: ${{ secrets.GITHUB_TOKEN }} name: "Changeset Results" pr: ${{ needs.get-pr.outputs.pr_number }} # Temporarily disabled: the changeset approval requirement was more hassle than # it was worth (the check failed whenever a maintainer hadn't ticked the approval # checkbox). Force the check to pass for now. To re-enable, restore the line below. # result: ${{ needs.version.outputs.approved == 'true' && 'success' || 'failure' }} result: success type: all comment-changes-skipped: uses: "./.github/workflows/comment-queue.yml" needs: [get-pr, version] if: needs.version.result == 'success' && needs.version.outputs.skipped == 'true' secrets: gh_token: ${{ secrets.COMMENT_TOKEN }} with: pr_number: ${{ needs.get-pr.outputs.pr_number }} message: changes~warning~https://github.com/gradio-app/gradio/actions/runs/${{github.run_id}}/ comment-changes-success: uses: "./.github/workflows/comment-queue.yml" needs: [get-pr, version] if: needs.version.result == 'success' && needs.version.outputs.skipped == 'false' secrets: gh_token: ${{ secrets.COMMENT_TOKEN }} with: pr_number: ${{ needs.get-pr.outputs.pr_number }} message: changes~success~${{ needs.version.outputs.comment_url }} comment-changes-failure: uses: "./.github/workflows/comment-queue.yml" needs: [get-pr, version] if: always() && needs.version.result == 'failure' secrets: gh_token: ${{ secrets.COMMENT_TOKEN }} with: pr_number: ${{ needs.get-pr.outputs.pr_number }} message: changes~failure~https://github.com/gradio-app/gradio/actions/runs/${{github.run_id}}/