Create, promote, and distribute release bundles for controlled software delivery. Use when creating release bundles from builds, promoting releases between environments, or distributing to edge nodes. Triggers on jf rbc, jf rbp, jf rbd, release bundle, software release, distribution.
Release bundle management for controlled software delivery.
# Create release bundle from build
jf rbc my-release 1.0.0 --builds "my-app/123"
# Finalize (sign) the bundle
jf rbf my-release 1.0.0
# Promote to production
jf rbp my-release 1.0.0 --environment PROD
# Distribute to edge nodes
jf rbd my-release 1.0.0 --site "edge-*"
| Command | Alias | Description |
|---|---|---|
release-bundle-create | rbc | Create draft release bundle |
release-bundle-update | rbu | Update draft release bundle |
release-bundle-finalize |
rbf |
| Finalize draft bundle |
release-bundle-promote | rbp | Promote to environment |
release-bundle-distribute | rbd | Distribute to edge nodes |
release-bundle-delete-local | rbdell | Delete local bundle |
release-bundle-delete-remote | rbdelr | Delete remote bundle |
release-bundle-export | rbe | Export bundle archive |
release-bundle-import | rbi | Import bundle archive |
release-bundle-search | rbs | Search bundles |
release-bundle-annotate | rba | Add annotations |
# Single build
jf rbc <name> <version> --builds "<build-name>/<build-number>"
jf rbc my-release 1.0.0 --builds "my-app/123"
# Multiple builds
jf rbc my-release 1.0.0 --builds "frontend/123,backend/123,api/123"
jf rbc my-release 2.0.0 --release-bundles "base-release/1.0.0"
jf rbc my-release 1.0.0 --builds "my-app/123" --signing-key my-gpg-key
Add more content to a draft bundle:
jf rbu my-release 1.0.0 --add --builds "additional-build/123"
Sign and seal the bundle (no more changes):
jf rbf <name> <version>
jf rbf my-release 1.0.0
Move bundle to different environment:
jf rbp <name> <version> --environment <env>
# To staging
jf rbp my-release 1.0.0 --environment STAGING
# To production
jf rbp my-release 1.0.0 --environment PROD
# With overwrite
jf rbp my-release 1.0.0 --environment PROD --overwrite
Push to edge nodes:
# To specific sites
jf rbd my-release 1.0.0 --site "edge-us,edge-eu"
# Pattern matching
jf rbd my-release 1.0.0 --site "edge-*"
# Async distribution
jf rbd my-release 1.0.0 --site "edge-*" --sync=false
# With mapping rules
jf rbd my-release 1.0.0 --site "edge-*" --mapping-pattern "libs-release-local" --mapping-target "libs-prod-local"
# List all bundles
jf rbs
# Search by name
jf rbs --name "my-release"
# Search by version
jf rbs --name "my-release" --version "1.*"
# Delete locally
jf rbdell my-release 1.0.0
# Delete from environment
jf rbdell my-release 1.0.0 --environment STAGING
# Delete remotely (all edge nodes)
jf rbdelr my-release 1.0.0 --site "edge-*"
# Export bundle to archive
jf rbe my-release 1.0.0
# With modifications
jf rbe my-release 1.0.0 --modifications "add-file:/path/to/file.txt"
# Import archive
jf rbi /path/to/release-bundle.zip
Add metadata:
jf rba my-release 1.0.0 --key "deployed-by" --value "CI/CD"
# 1. Build and publish
jf mvn clean deploy --build-name=my-app --build-number=$BUILD
jf rt bp my-app $BUILD
# 2. Create release bundle
jf rbc my-release 1.0.0 --builds "my-app/$BUILD"
# 3. Finalize
jf rbf my-release 1.0.0
# 4. Promote through environments
jf rbp my-release 1.0.0 --environment DEV
# ... test ...
jf rbp my-release 1.0.0 --environment STAGING
# ... test ...
jf rbp my-release 1.0.0 --environment PROD
# 5. Distribute to edge
jf rbd my-release 1.0.0 --site "prod-edge-*"
# Search for bundles
jf rbs --name "my-release"
# Check if finalized
# Draft bundles can't be promoted/distributed
# Check edge node connectivity
# Verify site names
# Check distribution rules
# Verify signing key exists
jf rt curl -XGET /api/security/keypair
# Check key permissions