99 package_name :
1010 description : ' Package folder (Name of the package directory under packages/ folder. e.g., xrpl, ripple-address-codec)'
1111 required : true
12- release_branch :
13- description : ' Release branch the release is generated from'
14- required : true
1512 npmjs_dist_tag :
1613 description : ' npm distribution tag(Read more https://docs.npmjs.com/adding-dist-tags-to-packages)'
1714 default : ' latest'
@@ -30,12 +27,21 @@ jobs:
3027 - name : Checkout code
3128 uses : actions/checkout@v4
3229 with :
33- ref : ${{ github.event.inputs.release_branch }}
3430 fetch-depth : 0
3531
3632 - name : Validate inputs
3733 run : |
3834 set -euo pipefail
35+ RELEASE_BRANCH="$(git branch --show-current || true)"
36+ if [[ -z "$RELEASE_BRANCH" ]]; then
37+ RELEASE_BRANCH="${{ github.ref_name }}"
38+ fi
39+
40+ if [[ -z "$RELEASE_BRANCH" ]]; then
41+ echo "❌ Unable to determine branch name." >&2
42+ exit 1
43+ fi
44+
3945 # Validate package_name
4046 PKG_NAME="${{ github.event.inputs.package_name }}"
4147 if ! [[ "$PKG_NAME" =~ ^[a-z0-9][a-z0-9-]*$ ]]; then
4753 echo "❌ package_name must be a single directory under packages/." >&2
4854 exit 1
4955 fi
50- if git ls-remote --exit-code origin "refs/heads/${{ github.event.inputs.release_branch }}" > /dev/null; then
51- echo "✅ Found release branch: ${{ github.event.inputs.release_branch }}"
52- else
53- echo "❌ Release branch ${{ github.event.inputs.release_branch }} not found in remote. Failing workflow."
56+
57+ if [[ ! "${RELEASE_BRANCH,,}" =~ ^release[-/] ]]; then
58+ echo "❌ Release branch '$RELEASE_BRANCH' must start with 'release-' or 'release/'." >&2
5459 exit 1
5560 fi
5661
@@ -115,7 +120,7 @@ jobs:
115120 needs : [get_version]
116121 uses : ./.github/workflows/faucet_test.yml
117122 with :
118- git_ref : ${{ github.event.inputs.release_branch }}
123+ git_ref : ${{ github.ref }}
119124 secrets : inherit
120125
121126 run_tests :
@@ -127,7 +132,7 @@ jobs:
127132 needs : [get_version]
128133 uses : ./.github/workflows/nodejs.yml
129134 with :
130- git_ref : ${{ github.event.inputs.release_branch }}
135+ git_ref : ${{ github.ref }}
131136 secrets : inherit
132137
133138 pre_release :
@@ -143,7 +148,6 @@ jobs:
143148 - name : Checkout code
144149 uses : actions/checkout@v4
145150 with :
146- ref : ${{ github.event.inputs.release_branch }}
147151 fetch-depth : 0
148152
149153 - name : Set up Node.js
@@ -199,7 +203,9 @@ jobs:
199203 run : |
200204 curl -X POST \
201205 -H "X-Api-Key: ${{ secrets.OWASP_TOKEN }}" \
202- -F "project=7c40c8ea-ea0f-4a5f-9b9f-368e53232397" \
206+ -F "autoCreate=true" \
207+ -F "projectName=xrpl-js" \
208+ -F "projectVersion=${{ env.PACKAGE_VERSION }}" \
203209204210 https://owasp-dt-api.prod.ripplex.io/api/v1/bom
205211
@@ -245,7 +251,7 @@ jobs:
245251 REPO : ${{ github.repository }}
246252 PKG_NAME : ${{ env.PACKAGE_NAME }}
247253 PKG_VER : ${{ env.PACKAGE_VERSION }}
248- REL_BRANCH : ${{ github.event.inputs.release_branch }}
254+ REL_BRANCH : ${{ github.ref_name }}
249255 VULN_ART_URL : ${{ steps.vuln_art.outputs.art_url }}
250256 LABELS : security
251257 run : |
@@ -294,10 +300,11 @@ jobs:
294300 needs : [get_version, run_faucet_test, run_tests, pre_release]
295301 permissions :
296302 pull-requests : write
297- name : Review test and security scan result -- Dev team
303+ name : Print Test/Security scan result and invite Dev team to review
298304 env :
299305 PACKAGE_VERSION : " ${{ needs.get_version.outputs.package_version }}"
300306 PACKAGE_NAME : " ${{ github.event.inputs.package_name }}"
307+ RELEASE_BRANCH : " ${{ github.ref_name }}"
301308 outputs :
302309 reviewers_dev : ${{ steps.get_reviewers.outputs.reviewers_dev }}
303310 reviewers_sec : ${{ steps.get_reviewers.outputs.reviewers_sec }}
@@ -306,15 +313,14 @@ jobs:
306313 - name : Checkout code
307314 uses : actions/checkout@v4
308315 with :
309- ref : ${{ github.event.inputs.release_branch }}
310316 fetch-depth : 0
311317 - name : Create PR from release branch to main (skips for rc/beta)
312318 id : ensure_pr
313319 if : ${{ github.event.inputs.npmjs_dist_tag == '' || github.event.inputs.npmjs_dist_tag == 'latest' }}
314320 env :
315321 GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
316322 REPO : ${{ github.repository }}
317- RELEASE_BRANCH : ${{ github.event.inputs.release_branch }}
323+ RELEASE_BRANCH : ${{ github.ref_name }}
318324 VERSION : ${{ needs.get_version.outputs.package_version }}
319325 run : |
320326 set -euo pipefail
@@ -423,7 +429,6 @@ jobs:
423429 run : |
424430 set -euo pipefail
425431 ARTIFACT_NAME="vulnerability-report"
426- RELEASE_BRANCH="${{ github.event.inputs.release_branch }}"
427432 COMMIT_SHA="$(git rev-parse --short HEAD)"
428433
429434 echo "Fetching artifact ID for ${ARTIFACT_NAME}..."
@@ -487,14 +492,13 @@ jobs:
487492 ask_for_sec_team_review :
488493 runs-on : ubuntu-latest
489494 needs : [get_version, run_faucet_test, run_tests, pre_release, ask_for_dev_team_review, first_review]
490- name : Review test and security scan result — Sec team
495+ name : Invite sec team to review
491496 steps :
492497 - name : Send Sec team review request to Slack
493498 shell : bash
494499 env :
495500 SLACK_TOKEN : ${{ secrets.SLACK_TOKEN }}
496- CHANNEL : " #xrpl-js"
497-
501+ CHANNEL : " #ripplex-security"
498502 EXECUTOR : ${{ github.triggering_actor || github.actor }}
499503 PACKAGE_NAME : ${{ needs.get_version.outputs.package_version && github.event.inputs.package_name }}
500504 PACKAGE_VERSION : ${{ needs.get_version.outputs.package_version }}
@@ -517,7 +521,7 @@ jobs:
517521 id-token : write
518522 contents : write
519523 needs : [get_version, run_faucet_test, run_tests, pre_release, ask_for_dev_team_review, first_review, ask_for_sec_team_review]
520- name : Release Pipeline for ${{ needs.get_version.outputs.package_version }}
524+ name : Release for ${{ needs.get_version.outputs.package_version }}
521525 env :
522526 PACKAGE_VERSION : " ${{ needs.get_version.outputs.package_version }}"
523527 PACKAGE_NAME : " ${{ github.event.inputs.package_name }}"
@@ -534,7 +538,6 @@ jobs:
534538 - name : Checkout code
535539 uses : actions/checkout@v4
536540 with :
537- ref : ${{ github.event.inputs.release_branch }}
538541 fetch-depth : 0
539542
540543 - name : Download artifact
@@ -622,11 +625,23 @@ jobs:
622625 env :
623626 SLACK_TOKEN : ${{ secrets.SLACK_TOKEN }}
624627 run : |
625- MESSAGE="❌ Tests failed for xrpl.js ${{ env.PACKAGE_VERSION }}. Check the logs: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
628+ MESSAGE="❌ Release failed for ${{ env.PACKAGE_NAME }}@ ${{ env.PACKAGE_VERSION }}. Check the logs: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
626629 curl -X POST https://slack.com/api/chat.postMessage \
627630 -H "Authorization: Bearer $SLACK_TOKEN" \
628631 -H "Content-Type: application/json" \
629632 -d "$(jq -n \
630633 --arg channel "#xrpl-js" \
631634 --arg text "$MESSAGE" \
632635 '{channel: $channel, text: $text}')"
636+
637+ generate-documentation :
638+ name : Generate and Publish documentation for ${{ needs.get_version.outputs.package_version }}
639+ if : ${{ github.event.inputs.npmjs_dist_tag == 'latest' }}
640+ uses : ./.github/workflows/generate-documentation.yml
641+ needs : [get_version, release]
642+ with :
643+ git_ref : ${{ github.ref_name }}
644+ permissions :
645+ contents : read
646+ id-token : write
647+ pages : write
0 commit comments