batch-release-pr #4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "Creates Batch Release for a Package" | |
| on: | |
| repository_dispatch: | |
| types: [batch-release-pr] | |
| jobs: | |
| create_release_pr: | |
| runs-on: ubuntu-latest | |
| env: | |
| BRANCH_NAME: ${{ github.event.client_payload.package }}-${{ github.run_id }}-${{ github.run_attempt }} | |
| steps: | |
| - name: checkout repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd | |
| - name: "Install Flutter" | |
| uses: ./.github/workflows/internals/install_flutter | |
| - name: Set up tools | |
| run: dart pub get | |
| working-directory: ${{ github.workspace }}/script/tool | |
| # This step is to create a branch for batch release | |
| # A branch may not be created if there is nothing to release. | |
| # In that case, the workflow will exit and complete successfully. | |
| - name: create batch release branch | |
| run: | | |
| git config --global user.name ${{ secrets.USER_NAME }} | |
| git config --global user.email ${{ secrets.USER_EMAIL }} | |
| dart ./script/tool/lib/src/main.dart branch-for-batch-release --packages=${{ github.event.client_payload.package }} --branch=${{ env.BRANCH_NAME }} --remote=origin | |
| - name: Check if branch was created | |
| id: check-branch-exists | |
| run: | | |
| if git show-ref --verify --quiet refs/heads/${{ env.BRANCH_NAME }}; then | |
| echo "exists=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "exists=false" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Create batch release PR | |
| if: steps.check-branch-exists.outputs.exists == 'true' | |
| uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| commit-message: "[${{ github.event.client_payload.package }}] Batch release" | |
| title: "[${{ github.event.client_payload.package }}] Batch release" | |
| body: "This PR was created automatically to batch release the `${{ github.event.client_payload.package }}`." | |
| branch: ${{ env.BRANCH_NAME }} | |
| base: release-${{ github.event.client_payload.package }} | |