@@ -220,33 +220,42 @@ jobs:
220220 fi
221221
222222 # Finalize outputs - consolidates all outputs with proper fallbacks
223- # This avoids GitHub Actions expression brittleness with empty strings
223+ # Uses environment variables to preserve JSON quoting
224224 - name : Finalize outputs
225225 id : finalize
226+ env :
227+ BUILD_MATRIX : ${{ steps.build-matrix.outputs.matrix }}
228+ BUILD_HAS_CHANGES : ${{ steps.build-matrix.outputs.has_changes }}
229+ DEFAULT_MATRIX : ${{ steps.defaults.outputs.matrix }}
230+ DEFAULT_HAS_CHANGES : ${{ steps.defaults.outputs.has_changes }}
231+ VERSION_BUMP : ${{ steps.version.outputs.bump }}
232+ DEFAULT_BUMP : ${{ steps.defaults.outputs.bump }}
233+ PR_SHOULD_PUBLISH : ${{ steps.pr-info.outputs.should_publish }}
234+ DEFAULT_SHOULD_PUBLISH : ${{ steps.defaults.outputs.should_publish }}
226235 run : |
227236 # Use build-matrix outputs if available, otherwise defaults
228- if [ -n "${{ steps.build-matrix.outputs.matrix }} " ]; then
229- echo "matrix=${{ steps.build-matrix.outputs.matrix }} " >> $GITHUB_OUTPUT
237+ if [ -n "$BUILD_MATRIX " ]; then
238+ echo "matrix=$BUILD_MATRIX " >> $GITHUB_OUTPUT
230239 else
231- echo "matrix=${{ steps.defaults.outputs.matrix }} " >> $GITHUB_OUTPUT
240+ echo "matrix=$DEFAULT_MATRIX " >> $GITHUB_OUTPUT
232241 fi
233242
234- if [ -n "${{ steps.build-matrix.outputs.has_changes }} " ]; then
235- echo "has_changes=${{ steps.build-matrix.outputs.has_changes }} " >> $GITHUB_OUTPUT
243+ if [ -n "$BUILD_HAS_CHANGES " ]; then
244+ echo "has_changes=$BUILD_HAS_CHANGES " >> $GITHUB_OUTPUT
236245 else
237- echo "has_changes=${{ steps.defaults.outputs.has_changes }} " >> $GITHUB_OUTPUT
246+ echo "has_changes=$DEFAULT_HAS_CHANGES " >> $GITHUB_OUTPUT
238247 fi
239248
240- if [ -n "${{ steps.version.outputs.bump }} " ]; then
241- echo "bump=${{ steps.version.outputs.bump }} " >> $GITHUB_OUTPUT
249+ if [ -n "$VERSION_BUMP " ]; then
250+ echo "bump=$VERSION_BUMP " >> $GITHUB_OUTPUT
242251 else
243- echo "bump=${{ steps.defaults.outputs.bump }} " >> $GITHUB_OUTPUT
252+ echo "bump=$DEFAULT_BUMP " >> $GITHUB_OUTPUT
244253 fi
245254
246- if [ -n "${{ steps.pr-info.outputs.should_publish }} " ]; then
247- echo "should_publish=${{ steps.pr-info.outputs.should_publish }} " >> $GITHUB_OUTPUT
255+ if [ -n "$PR_SHOULD_PUBLISH " ]; then
256+ echo "should_publish=$PR_SHOULD_PUBLISH " >> $GITHUB_OUTPUT
248257 else
249- echo "should_publish=${{ steps.defaults.outputs.should_publish }} " >> $GITHUB_OUTPUT
258+ echo "should_publish=$DEFAULT_SHOULD_PUBLISH " >> $GITHUB_OUTPUT
250259 fi
251260
252261 # Single job that bumps, publishes, and pushes tags/commits at the end
0 commit comments