--- name: new_client on: push: # Per GitHub Action docs, specifying both branch and paths joins them with AND. branches: - main paths: - '**/version.go' permissions: contents: read jobs: new_versions: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 2 - uses: actions/setup-go@v5 with: go-version: 1.22.x - name: Find new version files id: versions # Ignore changes to the internal and root directories. # Focus on newly added version.go files generated by GAPIC. # Multiple new version files in a single module file will be deduped. run: | dirs=$(go run ./internal/actions/cmd/changefinder -q --base=HEAD~1 --diff-filter=A --path-filter='*version.go' --content-regex='internal\.Version') if [ -z "$dirs" ] then echo "skip=1" >> $GITHUB_OUTPUT echo "No new version files!" else for d in $dirs; do list=${list},\"${d}\"; done echo "new={\"new\":[${list#,}]}" >> $GITHUB_OUTPUT echo "skip=" >> $GITHUB_OUTPUT fi outputs: versions: ${{ steps.versions.outputs.new }} skip: ${{ steps.versions.outputs.skip }} bump_module: needs: new_versions runs-on: ubuntu-latest if: "!needs.new_versions.outputs.skip" continue-on-error: true strategy: matrix: ${{ fromJson(needs.new_versions.outputs.versions) }} steps: - uses: actions/checkout@v4 - run: echo >> ${{ matrix.new }}/CHANGES.md - uses: googleapis/code-suggester@v4 id: code_suggester env: ACCESS_TOKEN: ${{ secrets.YOSHI_CODE_BOT_TOKEN }} with: command: pr upstream_owner: googleapis upstream_repo: google-cloud-go description: 'New client(s) generated in ${{ github.event.commits[0].url }}, triggering release.' title: 'feat(${{ matrix.new }}): new client(s)' message: 'feat(${{ matrix.new }}): new clients' primary: 'main' branch: release-${{ matrix.new }}-client git_dir: '.' force: true