8787 test-reusable-token :
8888 required : true
8989
90- # Reusable workflows do NOT inherit the caller's secrets: anything referenced below must be
91- # declared here AND passed by every caller, otherwise it silently resolves to an empty string.
92- # An empty `token:` is what made actions/checkout fail with
93- # "Error: Input required and not supplied: token".
90+ # Reusable workflows do NOT inherit caller secrets: anything used below must
91+ # be declared here AND passed by every caller, or it resolves to "" silently.
9492 pat-actions :
9593 required : true
9694
@@ -104,10 +102,8 @@ jobs:
104102 - uses : actions/checkout@v2
105103 with :
106104 fetch-depth : 0
107- # PAT of the skyflow-service-it admin service account. Persisted by
108- # checkout and reused for the automated version-bump push below, so
109- # that push satisfies the branch-protection ruleset's repo-admin
110- # bypass (github-actions[bot] is not a bypass actor). See SK-2986.
105+ # Admin service-account PAT: persisted by checkout and reused for the
106+ # version-bump push, which needs the ruleset's admin bypass. SK-2986.
111107 token : ${{ secrets.pat-actions }}
112108
113109 - name : Set up maven or jfrog repository
@@ -142,18 +138,10 @@ jobs:
142138 with :
143139 fallback : 1.0.0
144140
145- # Version resolution, in priority order:
146- # 1. inputs.version - set by beta/public callers, which parse it out
147- # of a <module>/v<semver> tag (the tag text itself isn't a valid
148- # Maven version, so it can't be used directly).
149- # 2. internal - reads the module's OWN committed pom. Git tags are a
150- # flat, repo-wide namespace with no module awareness, so a tag
151- # lookup cannot tell one module's version lineage from another's:
152- # it stamped a v3 tag (3.0.0-beta.13) onto both flowvault AND skyvault
153- # internal builds. A module's own pom is inherently per-module.
154- # 3. Fallback - previoustag. Now unreachable in practice: all three
155- # callers either set inputs.version (release.yml, beta-release.yml)
156- # or are internal (internal-release.yml). Kept as a safety net.
141+ # Version priority: inputs.version (beta/public, parsed from the tag) >
142+ # the module's own pom (internal) > previoustag (unreachable; a safety net).
143+ # Tags are a flat repo-wide namespace with no module awareness, which is why
144+ # internal reads the pom - a tag lookup stamped a v3 version onto every module.
157145 - name : Bump Version
158146 id : bump-version
159147 run : |
@@ -184,9 +172,8 @@ jobs:
184172
185173 git add ${{ inputs.module }}/pom.xml
186174
187- # Nothing staged means the pom already held this version - the normal
188- # case when someone correctly sets it before tagging. That is success,
189- # not failure; a bare 'git commit' would exit 1 and abort the release.
175+ # Nothing staged = pom already at this version (normal if set before
176+ # tagging). That is success; a bare 'git commit' would exit 1 here.
190177 if git diff --cached --quiet; then
191178 echo "::notice::pom already at the target version - nothing to commit"
192179 exit 0
@@ -224,12 +211,6 @@ jobs:
224211 name : " credentials.json"
225212 json : ${{ secrets.test-credentials-file-string }}
226213
227- # Tests load these with Dotenv.load()/relative paths, which resolve
228- # against the *module* directory - Maven runs each module's tests with
229- # that module as the working dir. A repo-root .env was correct when this
230- # was a single-module build, but since the common/skyvault/flowvault split it
231- # leaves module tests unable to find their config. Discovered by glob so
232- # this survives module renames/additions.
233214 - name : Distribute test fixtures to modules
234215 run : |
235216 # Surefire runs each module's tests with the module directory as the working
@@ -239,18 +220,12 @@ jobs:
239220 cp credentials.json "$module/credentials.json"
240221 done
241222
242- # 'verify' rather than 'deploy' for a dry run: the deploy plugin (and
243- # the central-publishing extension bound to it) is never invoked at
244- # all, so there is no upload path to accidentally leave enabled.
245- # Everything up to and including packaging, tests and GPG signing
246- # still runs, so this exercises the same build the real release would.
223+ # Dry run uses 'verify', not 'deploy', so the deploy plugin and the
224+ # central-publishing extension are never invoked at all.
247225 #
248- # Javadoc is skipped for internal (JFrog) builds only: these are dev
249- # snapshots that nobody browses docs for, and strict doclint on the
250- # pinned JDK 11 fails the release on HTML nits in comments. Beta/public
251- # must NOT skip it - Sonatype requires the -javadoc.jar and rejects a
252- # bundle without one, so a doclint error there is a real break to fix
253- # at the source.
226+ # Javadoc is skipped for internal builds only - doclint on JDK 11 fails on
227+ # comment nits. Beta/public must NOT skip it: Sonatype rejects a bundle
228+ # with no -javadoc.jar.
254229 - name : Publish package
255230 run : |
256231 if [[ "${{ inputs.dry-run }}" == "true" ]]; then
0 commit comments