Problem
publish-java.yml and publish-py.yml trigger on release: [created] but don't filter by tag prefix. Every other publish workflow does:
if: startsWith(github.event.release.tag_name, 'js-sdk-v')
As a result, both workflows fire on every SDK release (5x per release wave), not just their own.
Impact observed in 0.3.0 release
- Java: All 5 runs tried to upload
com.turbodocx:turbodocx-sdk:0.3.0 concurrently. First upload (triggered by js-sdk-v0.3.0) won and validated successfully. Other 4 collided with Component ... is currently being published in another deployment and appear as red failures in Actions — noisy and misleading.
- Python:
pypa/gh-action-pypi-publish silently skips duplicates, so all 5 show green, but we're burning 4 wasted runs per release wave and only no-op by luck of the action's default behavior.
Fix
Add a tag-prefix guard to both jobs in each file, mirroring publish-js.yml, publish-php.yml, publish-go.yml:
# .github/workflows/publish-java.yml
jobs:
publish:
if: startsWith(github.event.release.tag_name, 'java-sdk-v')
...
# .github/workflows/publish-py.yml
jobs:
publish:
if: startsWith(github.event.release.tag_name, 'py-sdk-v')
...
Repro
0.3.0 release wave: https://github.com/TurboDocx/SDK/actions?query=event%3Arelease — Java fails 4x, Python runs 5x per release wave.
Problem
publish-java.ymlandpublish-py.ymltrigger onrelease: [created]but don't filter by tag prefix. Every other publish workflow does:As a result, both workflows fire on every SDK release (5x per release wave), not just their own.
Impact observed in 0.3.0 release
com.turbodocx:turbodocx-sdk:0.3.0concurrently. First upload (triggered byjs-sdk-v0.3.0) won and validated successfully. Other 4 collided withComponent ... is currently being published in another deploymentand appear as red failures in Actions — noisy and misleading.pypa/gh-action-pypi-publishsilently skips duplicates, so all 5 show green, but we're burning 4 wasted runs per release wave and only no-op by luck of the action's default behavior.Fix
Add a tag-prefix guard to both jobs in each file, mirroring
publish-js.yml,publish-php.yml,publish-go.yml:Repro
0.3.0 release wave: https://github.com/TurboDocx/SDK/actions?query=event%3Arelease — Java fails 4x, Python runs 5x per release wave.