A GitHub Actions workflow has been set up to automate building, scanning, packaging, and releasing npm packages in the packages/ directory.
You can manually trigger the release workflow from the GitHub Actions UI.
- Create a release branch. A qualified branch name should start with "release-" or "release/", case-insensitive. e.g:
release/xrpl@4.3.8,release-xrpl-4.3.8,Release/xrpl@4.3.8. - Update the
versionfield inpackages/<package_name>/package.jsonto the intended release version.{ "name": "<package_name>", "version": "x.y.z" } - Run npm i to update the package-lock with the updated versions and commit the lock file to the release branch
- Go to GitHub → Actions → Release Pipeline → Run workflow
- Choose the release branch from dropdown
- Fill in these fields:
- package_name → The folder name under
packages/, e.g.,xrplorripple-address-codec. - npmjs_dist_tag → The npm distribution tag to publish under. Defaults to
latest.- Examples:
latest→ Standard production releasebeta→ Pre-release for testingrc→ Release candidate
- Examples:
- package_name → The folder name under
➡️ Example:
| Field | Example |
|---|---|
| package_name | xrpl |
| npmjs_dist_tag | latest |
- The pipeline will pause at the "Print Test/Security scan result and invite Dev team to review" step and also before the final release step, relevant team should review the release details and scan result.
- Extracts the version from
packages/<package_name>/package.json. - No manual version input is required.
- Triggers the
faucet_test.ymlandnodejs.ymlworkflows to run unit, integration, and faucet tests against the specified Git ref. - Ensures the code at the given Git ref passes all tests.
- Builds the npm package.
- Generates a CycloneDX SBOM (Software Bill of Materials).
- Runs a vulnerability scan with Trivy.
- Uploads the SBOM to OWASP Dependency-Track for tracking vulnerabilities.
- Packages the module with Lerna and uploads the tarball as an artifact.
- Posts failure notifications to Slack..
- Create a Github issue for detected vulnerabilities.
- Generate a summary of:
- Package name
- Version
- Vulnerability scan artifacts
- Requires the approvers to manually review security reports on the Actions page.
- Requires manual approval (Set up through GitHub Environment).
- Creates a GitHub Release with a tag like
<package_name>@<version>. - Downloads the built package tarball.
- Publishes the package to the public npm registry.
- Posts success or failure notifications to Slack.
The GitHub release and git tag are named like this:
<package_name>@<version>
Example:
xrpl@2.3.1
-
The release workflow does not overwrite existing tags. If the same version tag already exists, the workflow will fail.
-
Vulnerability scanning does not block the release, but it is the approvers' responsibility to review the scan results in the Review stage.