8585 echo "has_changes=true" >> $GITHUB_OUTPUT
8686 fi
8787 - name : Install protoc
88+ if : steps.detect_librarian.outputs.has_changes == 'true'
8889 run : |
8990 set -e
9091 VERSION="33.2"
@@ -93,42 +94,37 @@ jobs:
9394 sudo unzip -o /tmp/protoc.zip
9495 protoc --version
9596 - uses : actions/setup-java@v4
97+ if : steps.detect_librarian.outputs.has_changes == 'true'
9698 with :
9799 java-version : " 17"
98100 distribution : " temurin"
99101 cache : " maven"
100102 - name : Verify Java and Maven installation
103+ if : steps.detect_librarian.outputs.has_changes == 'true'
101104 run : |
102105 java -version
103106 if ! command -v mvn &> /dev/null; then
104107 sudo apt-get update && sudo apt-get install -y maven
105108 fi
106109 mvn -version
107110 - uses : actions/setup-python@v5
111+ if : steps.detect_librarian.outputs.has_changes == 'true'
108112 with :
109113 python-version : " 3.12"
110114 cache : ' pip'
111115 - name : Run librarian install
116+ if : steps.detect_librarian.outputs.has_changes == 'true'
112117 run : |
113118 go run github.com/googleapis/librarian/cmd/librarian@latest install
114119 echo "$HOME/java_tools/bin" >> $GITHUB_PATH
115120 env :
116121 PYTHONPATH : ${{ github.workspace }}/sdk-platform-java/hermetic_build/library_generation/owlbot
117122 - name : Generate Libraries
118123 if : steps.detect_librarian.outputs.has_changes == 'true'
119- id : generate
120124 run : |
121125 go run github.com/googleapis/librarian/cmd/librarian@latest generate --all
122- git add .
123- changed_files=$(git diff --cached --name-only)
124- if [[ "${changed_files}" == "" ]]; then
125- echo "has_changes=false" >> $GITHUB_OUTPUT
126- echo "No changes in libraries"
127- else
128- echo "has_changes=true" >> $GITHUB_OUTPUT
129- fi
130126 - name : Commit and Create PR
131- if : steps.detect_librarian.outputs.has_changes == 'true' || steps.generate.outputs.has_changes == 'true'
127+ if : steps.detect_librarian.outputs.has_changes == 'true'
132128 env :
133129 GH_TOKEN : ${{ secrets.CLOUD_JAVA_BOT_GITHUB_TOKEN }}
134130 PR_TITLE : " chore: update googleapis commitish to ${{ steps.commit.outputs.short_commit }}"
@@ -139,7 +135,7 @@ jobs:
139135 if [ "${{ github.event_name }}" = "pull_request" ]; then
140136 echo "=== PR Test: DRY RUN MODE ACTIVE ==="
141137 echo "Would have checked out branch: update-librarian-googleapis-main"
142- echo "Would have committed with title: $PR_TITLE"
138+ echo "Would have committed configs with title: $PR_TITLE"
143139 echo "Would have pushed branch and created PR."
144140 exit 0
145141 fi
@@ -153,8 +149,22 @@ jobs:
153149 # Create and switch to the branch (force checkout -B to discard any local state on this branch name if it existed)
154150 git checkout -B "${current_branch}"
155151
156- # Commit the changes (they are already staged by the Detect Changes step!)
157- git commit -m "${PR_TITLE}"
152+ # 1. Commit Config Changes
153+ # Ensure they are staged
154+ git add librarian.yaml generation_config.yaml
155+ if ! git diff --cached --quiet; then
156+ git commit -m "${PR_TITLE}"
157+ else
158+ echo "No config changes to commit"
159+ fi
160+
161+ # 2. Commit Generated Code
162+ git add .
163+ if ! git diff --cached --quiet; then
164+ git commit -m "chore: generate libraries"
165+ else
166+ echo "No generated code changes to commit"
167+ fi
158168
159169 # Push to remote (force push to overwrite any stale branch on remote)
160170 git remote add remote_repo https://cloud-java-bot:"${GH_TOKEN}@github.com/${{ github.repository }}.git" || git remote set-url remote_repo https://cloud-java-bot:"${GH_TOKEN}@github.com/${{ github.repository }}.git"
0 commit comments