publish-java.yml and publish-py.yml missing tag-prefix guard
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 1
- Forks
- 0
- Avg merge
- 12h 19m
- Merged PRs (30d)
- 2
Description
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.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. - Python:
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:
# .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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Compare .github/workflows/publish-java.yml and .github/workflows/publish-py.yml with publish-js.yml, publish-php.yml, and publish-go.yml. Add the corresponding release tag-prefix guards to both publish jobs, then verify each workflow runs only for its own SDK tag and not for other release tags.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions
- Domain
- ci-cd
- Issue type
- Bug
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 88/100