Release Lifecycle Management CLI

Manage Release Bundle v2 versions with the JFrog CLI, from creation through promotion and distribution.

RLM Deprecation

As of July 31, 2026, all feature development, patches, and security fixes for Release Lifecycle Management will end, except for critical security fixes. RLM End of Life is currently scheduled for January 31, 2028. For more information, see JFrog Release Lifecycle Management Deprecation - End of Life.

This page describes how to use the JFrog CLI with Release Lifecycle Management.

📘

Note

Release Lifecycle Management is available since Artifactory 7.63.2.

Syntax

When used with JFrog Release Lifecycle Management, JFrog CLI uses the following syntax:

$ jf command-name global-options command-options arguments

Create a Release Bundle v2

Use the create command to create a Release Bundle v2 using File Specs. The File Spec can be based on one or more of the following sources:

  • Published build info:

    {
      "files": [
        {
          "build": "<build-name>/<build-number>",
          "includeDeps": "[true/false]",
          "project": "<project-key>"
        },
        ...
      ]
    }

    <build-number>is optional; the latest build will be used if empty .includeDeps is optional, false by default .project is optional; the default project will be used if empty.

  • Existing Release Bundles:

    {
      "files": [
        {
          "bundle": "<bundle-name>/<bundle-version>",
          "project": "<project-key>"
        },
        ...
      ]
    }

    project is optional; the default project will be used if empty.

  • A pattern of artifacts in Artifactory:

    {
      "files": [
        {
          "pattern": "repo/path/*",
          "exclusions": ["excluded",...],
          "props": "key1=value1;key2=value2;key3=value3",
          "excludeArtifacts": "key1=value1;key2=value2;key3=value3",
          "recursive": "[true/false]"
        },
        ...
      ]
    }

    Only pattern is mandatory .recursive is true by default. The path can include local, Federated, and remote repositories.

  • AQL query:

    {
      "files": [
        {
          "aql": {
            "items.find": {
              "repo": "<repo>",
              "path": "<path>",
              "name": "<file>"
            }
          }
        }
      ]
    }

    Only a single AQL query may be provided.

  • Specified package:

    The Release Bundle can contain packages of multiple types (for example, Docker, Maven, PyPI, and so on).

{
    "files": [
            {
               "package": "catalina",
               "version":"1.0.0",
               "type": "maven",
               "repoKey": "catalina-dev-maven-local"
           },
   ]
}
  • A Release Bundle created from multiple sources:

    The Release Bundle can include any number of builds, artifacts (using a pattern), packages, and Release Bundles. However, it can include only one AQL query.

{
    "files": [
          {
            "build": "Commons-Build/1.0.0",
            "includeDeps":"true",
            "project": "default"
          },
           {
            "bundle": "rb1/1.0.0",
            "project": "default"
          },
          {
            "bundle": "rb4/1.0.0",
            "project": "default"
          },
           {
            "pattern": "catalina-dev-maven-local/*.jar"
          },
           {
            "package": "commons",
            "version":"1.0.1",
            "type": "maven",
            "repoKey": "commons-dev-maven-local"
          },
          {
            "package": "catalina",
            "version":"1.0.0",
            "type": "maven",
            "repoKey": "catalina-dev-maven-local"
          },
          {
            "aql": {
             "items.find": {
              "repo":{"$eq":"catalina-dev-maven-local"},
              "$and":[
                {"name": {"$match":"*1.0.0.pom"}}
              ]
        }
      }
          }
    ]
}

Command Params

The following table describes the create command parameters.

ParameterCommand / Description
Command-namerelease-bundle-create
Abbreviationrbc
Command arguments:
release bundle nameName of the newly created Release Bundle.
release bundle versionVersion of the newly created Release Bundle.
Command options:
--project

[Optional]

Project key associated with the created Release Bundle version.

--server-id

[Optional]

Platform Server ID configured using the jf config command.

--signing-key

[Optional]

The GPG/RSA key-pair name defined in Artifactory. The signing-key can also be configured as an environment variable. If no key is specified, Artifactory uses a default key.

--spec

[Optional]

Path to a File Spec. If you do not define the spec, you must include the build-name and build-number as environment variables, flags, or a combination of both (flags override environment variables).

--spec-vars

[Optional]

List of semicolon-separated(;) variables in the form of "key1=value1;key2=value2;..." (wrapped by quotes) to be replaced in the File Spec. In the File Spec, the variables should be used as follows: ${key1}.

--build-name

[Optional]

The name of the build from which to create the Release Bundle.

--build-number

[Optional]

The number of the build from which to create the Release Bundle.

--sync

[Default: true]

Set to false to run asynchronously.

--source-type-release-bundles

[Optional]

One or more Release Bundles to include in the new Release Bundle in the form of "name=[rb-name], version=[rb-version];..." (wrapped by quotes).

Use a semicolon [;] to separate multiple entries.

Note: The --spec flag cannot be used in conjunction with the --source-type-release-bundles flag.

--source-type-builds

[Optional]

One or more builds to include in the new Release Bundle in the form of "name=[build-name], id=[build-id], include-deps=[true/false];..." (wrapped by quotes).

Use a semicolon [;] to separate multiple entries.

Note: The --spec flag cannot be used in conjunction with the --source-type-builds flag.

--draft

[Default: false]

Set to true to create the Release Bundle as a draft. Draft Release Bundles can be updated using the release-bundle-update command and must be finalized using the release-bundle-finalize command before they can be promoted or distributed.

Note: This option requires Artifactory version 7.136.0 or higher.

Update a Release Bundle v2

📘

Note

This command requires Artifactory version 7.136.0 or higher.

Use the update command to add sources to an existing draft Release Bundle. The --add flag is mandatory to specify the type of operation.

Command Params

The following table describes the update command parameters.

ParameterCommand / Description
Command-namerelease-bundle-update
Abbreviationrbu
Command arguments:
release bundle nameName of the Release Bundle to update.
release bundle versionVersion of the Release Bundle to update.
Command options:
--add

[Mandatory]

Set to true to add sources to the draft Release Bundle.

--project

[Optional]

Project key associated with the Release Bundle version.

--server-id

[Optional]

Platform Server ID configured using the jf config command.

--spec

[Optional]

Path to a File Spec containing the sources to add. Cannot be used in conjunction with --source-type-release-bundles or --source-type-builds.

--spec-vars

[Optional]

List of semicolon-separated(;) variables in the form of "key1=value1;key2=value2;..." (wrapped by quotes) to be replaced in the File Spec. In the File Spec, the variables should be used as follows: ${key1}.

--sync

[Default: true]

Set to false to run asynchronously.

--source-type-release-bundles

[Optional]

One or more Release Bundles to add to the draft Release Bundle in the form of "name=[rb-name], version=[rb-version];..." (wrapped by quotes).

Use a semicolon [;] to separate multiple entries.

Note: The --spec flag cannot be used in conjunction with the --source-type-release-bundles flag.

--source-type-builds

[Optional]

One or more builds to add to the draft Release Bundle in the form of "name=[build-name], id=[build-id], include-deps=[true/false];..." (wrapped by quotes).

Use a semicolon [;] to separate multiple entries.

Note: The --spec flag cannot be used in conjunction with the --source-type-builds flag.

Update a Release Bundle v2 Examples

Update a Release Bundle v2 Example 1

Add sources from a File Spec to a draft Release Bundle.

jf rbu --add --spec=/path/to/spec.json myApp 1.0.0

Update a Release Bundle v2 Example 2

Add builds to a draft Release Bundle.

jf rbu --add --source-type-builds "name=Commons-Build, id=1.0.0, include-deps=true" myApp 1.0.0

Update a Release Bundle v2 Example 3

Add existing Release Bundles to a draft Release Bundle.

jf rbu --add --source-type-release-bundles "name=rb1, version=1.0.0; name=rb2, version=1.0.0" myApp 1.0.0

Update a Release Bundle v2 Example 4

Add sources to a draft Release Bundle in a specific project.

jf rbu --add --project=myproject --spec=/path/to/spec.json myApp 1.0.0

Finalize a Release Bundle v2

📘

Note

This command requires Artifactory version 7.136.0 or higher.

Use the finalize command to lock a draft Release Bundle. Once finalized, the Release Bundle can no longer be updated and is ready for promotion or distribution.

Command Params

The following table describes the finalize command parameters.

ParameterCommand / Description
Command-namerelease-bundle-finalize
Abbreviationrbf
Command arguments:
release bundle nameName of the Release Bundle to finalize.
release bundle versionVersion of the Release Bundle to finalize.
Command options:
--project

[Optional]

Project key associated with the Release Bundle version.

--server-id

[Optional]

Platform Server ID configured using the jf config command.

--signing-key

[Optional]

The GPG/RSA key-pair name given in Artifactory. If the key isn't provided, the command creates or uses the default key.

Finalize a Release Bundle v2 Examples

Finalize a Release Bundle v2 Example 1

Finalize a draft Release Bundle.

jf rbf myApp 1.0.0

Finalize a Release Bundle v2 Example 2

Finalize a draft Release Bundle with a specific signing key.

jf rbf --signing-key=myKeyPair myApp 1.0.0

Finalize a Release Bundle v2 Example 3

Finalize a draft Release Bundle asynchronously.

jf rbf --sync=false myApp 1.0.0

Finalize a Release Bundle v2 Example 4

Finalize a draft Release Bundle in a specific project.

jf rbf --project=myproject myApp 1.0.0

Draft Release Bundle Workflow

The draft Release Bundle workflow allows you to create a Release Bundle incrementally before finalizing it:

  1. Create a draft Release Bundle: Use jf rbc --draft to create a Release Bundle in draft state.
  2. Update the draft (optional): Use jf rbu --add to add additional sources to the draft Release Bundle.
  3. Finalize the Release Bundle: Use jf rbf to lock the draft and prepare it for promotion or distribution.

Draft Release Bundle Workflow Example

# Step 1: Create a draft Release Bundle
jf rbc --draft --spec=/path/to/initial-spec.json myApp 1.0.0

# Step 2: Add more sources to the draft
jf rbu --add --source-type-builds "name=Additional-Build, id=2.0.0" myApp 1.0.0

# Step 3: Finalize the Release Bundle
jf rbf --signing-key=myKeyPair myApp 1.0.0

# Step 4: Now the Release Bundle can be promoted
jf rbp --signing-key=myKeyPair myApp 1.0.0 PROD

Search Release Bundles v2

Use these commands to search Release Bundle names and versions. For more on viewing and managing versions in the JFrog Platform UI, see Manage Release Bundle v2 Versions.

Command group: release-bundle-search (rbs)

jf rbs names

Return Release Bundle names.

Syntax

jf rbs names [command-options]

Command Options

The following table describes the jf rbs names command options.

ParameterRequired/OptionalTypeDescription
--filter-byoptionalstringFilter by a name prefix of the Release Bundle.
--formatoptionalenum

[Default: table] Output format: table, json, simple-json, sarif.

Note: json omits Advanced Security scan details.

--limitoptionalintegerMaximum number of items to return. Often used with --offset.
--offsetoptionalintegerNumber of items to skip (for pagination).
--order-ascoptionalboolean[Default: false] Sort results in ascending order.
--order-byoptionalenumSort field: created (standard timestamp or milliseconds) or createdBy.
--projectoptionalstringJFrog Artifactory project key to filter results by.

Examples

# List names that start with "myApp", newest first
jf rbs names --filter-by myApp --order-by created
# Paginate through results (second page of 50)
jf rbs names --limit 50 --offset 50

jf rbs versions

Return Release Bundle versions (per bundle), with optional additional details.

Syntax

jf rbs versions [command-options]

Command Options

The following table describes the jf rbs versions command options.

ParameterRequired/OptionalTypeDescription
--filter-byoptionalstringFilter by a Release Bundle name prefix.
--includesoptionalenumInclude extra fields: messages (creation errors), permissions (promotion/distribution/delete permissions).
--formatoptionalenum

[Default: table] Output format: table, json, simple-json, sarif.

Note: json omits Advanced Security scan details.

--limitoptionalintegerMaximum number of items to return. Often used with --offset.
--offsetoptionalintegerNumber of items to skip (for pagination).
--order-ascoptionalboolean[Default: false] Sort results in ascending order.
--order-byoptionalenumSort field: created (standard timestamp or milliseconds) or createdBy.
--projectoptionalstringJFrog Artifactory project key to filter results by.

Examples

# List versions for bundles beginning with "myApp"
jf rbs versions --filter-by myApp
# Include creation messages and sort oldest first
jf rbs versions --includes messages --order-asc --order-by created

Create a Release Bundle v2 Examples

Create a Release Bundle v2 Example 1

Create a Release Bundle using file spec variables.

jf rbc --spec=/path/to/spec.json --spec-vars="key1=value1" --signing-key=myKeyPair myApp 1.0.0

Create a Release Bundle v2 Example 2

Create a Release Bundle synchronously, in project "project0".

jf rbc --spec=/path/to/spec.json --signing-key=myKeyPair --sync=true --project=project0 myApp 1.0.0

Create a Release Bundle v2 Example 3

Create a Release Bundle from a single build using the build name and build number variables.

jf rbc --build-name=Common-builds --build-number=1.0.0 myApp 1.0.0

Create a Release Bundle v2 Example 4

Create a Release Bundle from multiple builds.

jf rbc rb3 1.0.0 --source-type-builds "name=Commons-Build, id=1.0.0, include-deps=true; name=Commons-Build, id=1.0.1"

Create a Release Bundle v2 Example 5

Create a Release Bundle from multiple existing Release Bundles.

jf rbc rb3 1.0.0 --project catalina --source-type-release-bundles "name=rb1, version=1.0.0; name=rb2, version=1.0.0"

Create a Release Bundle v2 Example 6

Create a Release Bundle from existing Release Bundles and builds.

jf rbc rb3 1.0.0 --source-type-builds \
"name=Commons-Build, id=1.0.0, include-deps=true; name=Commons-Build, id=1.0.1" \
--source-type-release-bundles \
"name=rb1, version=1.0.0; name=rb2, version=1.0.0"

Create a Release Bundle v2 Example 7

Create a draft Release Bundle that can be updated before finalizing.

jf rbc --draft --spec=/path/to/spec.json myApp 1.0.0

Create a Release Bundle v2 Example 8

Create a draft Release Bundle from builds.

jf rbc --draft --source-type-builds "name=Commons-Build, id=1.0.0" myApp 1.0.0

Promote a Release Bundle v2

This command allows promoting a Release Bundle to a target environment. For the UI-based approach, see Promote a Release Bundle v2 Version.

Command Params

The following table describes the promote command parameters.

ParameterCommand / Description
Command-namerelease-bundle-promote
Abbreviationrbp
Command arguments:
release bundle nameName of the Release Bundle to promote.
release bundle versionVersion of the Release Bundle to promote.
environmentName of the target environment for the promotion.
Command options:
--include-repos

[Optional]

A list of semicolon-separated(;) repositories to include in the promotion. If this property is left undefined, all repositories (except those specifically excluded) are included in the promotion. If one or more repositories are specifically included, all other repositories are excluded.

--exclude-repos

[Optional]

A list of semicolon-separated(;) repositories to exclude from the promotion.

--project

[Optional]

Project key associated with the Release Bundle version.

--server-id

[Optional]

Platform Server ID configured using the 'jf config' command.

--signing-key

[Optional]

The GPG/RSA key-pair name given in Artifactory. If the key isn't provided, the command creates or uses the default key.

--sync

[Default: true]

Set to false to run asynchronously.

--promotion-type

[Default: copy]

Specifies the promotion type. (Valid values: move / copy) .

Promote a Release Bundle v2 Examples

Promote a Release Bundle v2 Example 1

Promote a Release Bundle named "myApp" version "1.0.0" to environment "PROD". Use signing key pair "myKeyPair".

jf rbp --signing-key=myKeyPair myApp 1.0.0 PROD

Promote a Release Bundle v2 Example 2

Promote a Release Bundle synchronously to environment "PROD". The Release Bundle is named "myApp", version "1.0.0", of project "project0". Use signing key pair "myKeyPair".

jf rbp --signing-key=myKeyPair --project=project0 --sync=true myApp 1.0.0 PROD

Promote a Release Bundle v2 Example 3

Promote a Release Bundle while including certain repositories.

jf rbp --signing-key=myKeyPair --include-repos="generic-local;my-repo" myApp 1.0.0 PROD

Promote a Release Bundle v2 Example 4

Promote a Release Bundle while excluding certain repositories.

jf rbp --signing-key=myKeyPair --exclude-repos="generic-local;my-repo" myApp 1.0.0 PROD

Promote a Release Bundle v2 Example 5

Promote a Release Bundle, using the --promotion-type flag.

jf rbp --signing-key=myKeyPair --promotion-type="move" myApp 1.0.0 PROD

Annotate a Release Bundle v2

This command enables you to add a single tag to a Release Bundle v2 version and/or define one or more properties. The tag will appear in the Release Lifecycle kanban board. For example, if you tag all your release candidates as release-candidate, you can filter the kanban board to display only those Release Bundle versions. Properties are user-customizable fields that can contain any string and have any value. For the UI-based approach, see Tag a Release Bundle v2 Version.

Command Params

The following table describes the annotate command parameters.

ParameterCommand / Description
Command-namerelease-bundle-annotate
Abbreviationrba
Command arguments:
release bundle nameName of the Release Bundle to annotate.
release bundle versionVersion of the Release Bundle to annotate.
Command options:
--tag

[Optional]

The tag is a single free-text value limited to 128 characters, beginning and ending with an alphanumeric character ([a-z0-9A-Z]), with dashes (-), underscores (_), dots (.), and alphanumerics between.

--properties

[Optional]

Key-value pairs separated by a semicolon (;). Keys are limited to 255 characters. Values are limited to 2,400 characters.

--del-prop

[Optional]

Removes a key and all its associated values.

--recursive

[Default: true]

When set to false, artifacts inside sub-folders in Artifactory are not affected.

--project

[Optional]

Project key associated with the Release Bundle version.

--server-id

[Optional]

Platform Server ID configured using the jf config command.

Annotate a Release Bundle v2 Examples

Annotate a Release Bundle v2 Example 1

Add or modify a tag or property.

jf rba mybundle 1.0.0 --tag=release --properties "environment=production;buildNumber=1234"

Annotate a Release Bundle v2 Example 2

Whenever you use the --tag command option, the value you define replaces the current value.

jf rba mybundle 1.0.0 --tag=rejected

In the example above, the tag that was defined previously (release) is replaced with the new tag rejected.

Annotate a Release Bundle v2 Example 3

Whenever you use the --properties command option with an existing key, the values that you define replace the current values.

jf rba mybundle 1.0.0 --properties "environment=DEV,PROD,QA"

In the example above, the value for environment that was defined previously (production) is replaced by the values DEV , PROD , and QA.

Remove Tags and Properties Examples

Remove Tags and Properties Example 1

To remove the tag, set it to null or leave empty.

jf rba mybundle 1.0.0 --tag=""

Remove Tags and Properties Example 2

To remove the values from an existing key without removing the key, leave the value empty.

jf rba mybundle 1.0.0 --properties "build=''"

In the example above, all values defined for the build key are removed but the key is retained.

Remove Tags and Properties Example 3

To remove a key and its associated values, use the --del-prop command option.

jf rba mybundle 1.0.0 --del-prop "environment"

In the example above, the environment key and all its associated values are removed.

Distribute a Release Bundle v2

This command distributes a Release Bundle to an Edge node. For the UI-based approach, see Distributing Release Bundles v2.

ParameterCommand / Description
Command-namerelease-bundle-distribute
Abbreviationrbd
Command arguments:
release bundle nameName of the Release Bundle to distribute.
release bundle versionVersion of the Release Bundle to distribute.
Command options:
--city

[Optional]

Wildcard filter for site city name.

--country-codes

[Optional]

Semicolon-separated(;) list of wildcard filters for site country codes.

--create-repo

[Default: false]

Set to true to create the repository on the edge if it does not exist.

--dist-rules

[Optional]

Path to a file, which includes the distribution rules in a JSON format.

--dry-run

[Default: false]

Set to true to only simulate the distribution of the release bundle.

--mapping-pattern

[Optional]

Specify along with --mapping-target to distribute artifacts to a different path on the Edge node. You can use wildcards to specify multiple artifacts.

--mapping-target

[Optional]

The target path for distributed artifacts on the edge node. If not specified, the artifacts will have the same path and name on the edge node, as on the source Artifactory server. For flexibility in specifying the distribution path, you can include placeholders in the form of {1}, {2} which are replaced by corresponding tokens in the pattern path that are enclosed in parenthesis.

--max-wait-minutes

[Optional]

Max minutes to wait for sync distribution.

--project

[Optional]

Project key associated with the Release Bundle version.

--server-id

[Optional]

Platform Server ID configured using the jf config command.

--site

[Optional]

Wildcard filter for site name.

--sync

[Default: true]

Set to false to run asynchronously.

Distribution Rules Structure

{
 "distribution_rules": [
    {
       "site_name": "DC-1",
       "city_name": "New-York",
       "country_codes": ["1"]
    },
    {
       "site_name": "DC-2",
       "city_name": "Tel-Aviv",
       "country_codes": ["972"]
    }
 ]
}

The Distribution Rules format also supports wildcards. For example:

{
 "distribution_rules": [
    {
       "site_name": "*",
       "city_name": "*",
       "country_codes": ["*"]
    }
 ]
}

Distribute a Release Bundle v2 Examples

Distribute a Release Bundle v2 Example 1

Distribute the Release Bundle named myApp with version 1.0.0. Use the distribution rules defined in the specified file.

jf rbd --dist-rules=/path/to/dist-rules.json myApp 1.0.0

Distribute a Release Bundle v2 Example 2

Distribute the Release Bundle named myApp with version 1.0.0 using the default distribution rules. Map files under the source directory to be placed under the target directory.

jf rbd --dist-rules=/path/to/dist-rules.json --mapping-pattern="(*)/source/(*)" --mapping-target="{1}/target/{2}" myApp 1.0.0

Distribute a Release Bundle v2 Example 3

Synchronously distribute a Release Bundle associated with project proj.

jf rbd --dist-rules=/path/to/dist-rules.json --sync --project="proj" myApp 1.0.0

Delete a Release Bundle v2 locally

This command allows deleting all Release Bundle promotions to a specified environment or deleting a Release Bundle locally altogether. Deleting locally means distributions of the Release Bundle will not be deleted.

ParameterCommand / Description
Command-namerelease-bundle-delete-local
Abbreviationrbdell
Command arguments:
release bundle nameName of the Release Bundle to delete locally.
release bundle versionVersion of the Release Bundle to delete locally.
environmentIf provided, all promotions to this environment are deleted. Otherwise, the Release Bundle is deleted locally with all its promotions.
Command options:
--project

[Optional]

Project key associated with the Release Bundle version.

--quiet

[Default: false]

Set to true to skip the delete confirmation message. When $CI is true, the default value is true.

--server-id

[Optional]

Platform Server ID configured using the jf config command.

--sync

[Default: true]

Set to false to run asynchronously.

Delete a Release Bundle v2 Locally Examples

Delete a Release Bundle v2 locally Example 1

Locally delete the Release Bundle named myApp with version 1.0.0.

jf rbdell myApp 1.0.0

Delete a Release Bundle v2 locally Example 2

Locally delete the Release Bundle named myApp with version 1.0.0. Run the command synchronously and skip the confirmation message.

jf rbdell --quiet --sync myApp 1.0.0

Delete a Release Bundle v2 locally Example 3

Delete all promotions of the specified Release Bundle version to environment PROD.

jf rbdell myApp 1.0.0 PROD

Delete a Release Bundle v2 remotely

This command will delete distributions of a Release Bundle from a distribution target, such as an Edge node.

ParameterCommand / Description
Command-namerelease-bundle-delete-remote
Abbreviationrbdelr
Command arguments:
release bundle nameName of the Release Bundle to delete.
release bundle versionVersion of the Release Bundle to delete.
Command options:
--city

[Optional]

Wildcard filter for site city name.

--country-codes

[Optional]

Semicolon-separated(;) list of wildcard filters for site country codes.

--dist-rules

[Optional]

Path to a file, which includes the Distribution Rules in JSON format. See Distribution Rules Schema.

--dry-run

[Default: false]

Set to true to only simulate the distribution of the release bundle.

--max-wait-minutes

[Optional]

Max minutes to wait for sync distribution.

--project

[Optional]

Project key associated with the Release Bundle version.

--quiet

[Default: false]

Set to true to skip the delete confirmation message. When $CI is true, the default value is true.

--server-id

[Optional]

Platform Server ID configured using the jf config command.

--site

[Optional]

Wildcard filter for site name.

--sync

[Default: true]

Set to false to run asynchronously.

Delete a Release Bundle v2 Remotely Examples

Delete a Release Bundle v2 remotely Example 1

Delete the distributions of version 1.0.0 of the Release Bundle named myApp from Edge nodes matching the provided distribution rules defined in the specified file.

jf rbdelr --dist-rules=/path/to/dist-rules.json myApp 1.0.0

Delete a Release Bundle v2 remotely Example 2

Delete the distributions of the Release Bundle associated with project proj from the provided Edge nodes. Run the command synchronously and skip the confirmation message.

jf rbdelr --dist-rules=/path/to/dist-rules.json --project="proj" --quiet --sync myApp 1.0.0

Export a Release Bundle v2 archive

Release Lifecycle Management supports distributing your Release Bundles to remote Edge nodes within an air-gapped environment. This use case is mainly intended for organizations that have two or more JFrog instances that have no network connection between them.

The following command allows exporting a Release Bundle as an archive to the filesystem that can be transferred to a different instance in an air-gapped environment.

ParameterCommand / Description
Command-namerelease-bundle-export
Abbreviationrbe
Command arguments:
release bundle nameName of the Release Bundle to export.
release bundle versionVersion of the Release Bundle to export.
target pattern

The argument is optional and specifies the local file system target path.

If the target path ends with a slash, the path is assumed to be a directory. For example, if you specify the target as "repo-name/a/b/", then "b" is assumed to be a directory into which files should be downloaded.

If there is no terminal slash, the target path is assumed to be a file to which the downloaded file should be renamed. For example, if you specify the target as "a/b", the downloaded file is renamed to "b".

Command options:
--project

[Optional]

Project key associated with the Release Bundle version.

--server-id

[Optional]

Platform Server ID configured using the jf config command.

--mapping-pattern

[Optional]

Specify a list of input regex mapping pairs that define where the queried artifact is located and where it should be placed after it is imported. Use this option if the path on the target is different than the source path.

--mapping-target

[Optional]

Specify a list of output regex mapping pairs that define where the queried artifact is located and where it should be placed after it is imported. Use this option if the path on the target is different than the source path.

--split-count

[Default: 3]

Number of parts to split a file into when downloading. Set to 0 to disable multi-part downloads.

--min-split

[Default: 5120]

Minimum file size in KB to split into ranges when downloading. Set to -1 for no splits.

Export a Release Bundle v2 archive Example

Export a Release Bundle v2 archive Example

Export version 1.0.0 of the Release Bundle named myApp:

jf rbe myApp 1.0.0

Export and Download a Release Bundle v2 archive Example

Download the file to a specific location:

jf rbe myApp 1.0.0 /user/mybundle/

Import a Release Bundle v2 archive

You can import a Release Bundle archive from the exported zip file.

This functionality only works on Edge nodes within an air-gapped environment.

ParameterCommand / Description
Command-namerelease-bundle-import
Abbreviationrbi
Command arguments:
path to archivePath to the Release Bundle archive on the filesystem.
Command options:
--project

[Optional]

Project key associated with the Release Bundle version.

--server-id

[Optional]

Platform Server ID configured using the jf config command.

Import a Release Bundle v2 archive Example

Import a Release Bundle v2 Archive Example

Import version 1.0.0 of a Release Bundle named myExportedApp:

jf rbi ./myExportedApp.zip

Download Release Bundle v2 Content

Use the following command to download the contents of a Release Bundle v2 version:

jf rt dl --bundle [release-bundle-name]/[release-bundle-version]

Frequently Asked Questions

Common questions about release lifecycle management.

plusFAQs
Q: How do I create a Release Bundle v2 using the JFrog CLI?

A: Run jf rbc <bundle-name> <bundle-version> with a File Spec, build, existing Release Bundle, pattern, or package as the source. See Create a Release Bundle v2 for the full command options.

Q: What is the difference between a draft and a finalized Release Bundle v2?

A: A draft Release Bundle, created with jf rbc --draft, can still be updated using jf rbu --add. Once finalized with jf rbf, it can no longer be updated and is ready for promotion or distribution.

Q: What JFrog Platform version do I need for Release Lifecycle Management?

A: Release Lifecycle Management is available since Artifactory 7.63.2. Some commands, such as --draft and release-bundle-update, require Artifactory 7.136.0 or higher.

Q: What happens if I don't specify --include-repos or --exclude-repos when promoting a Release Bundle v2?

A: All repositories are included in the promotion by default. If you specify one or more repositories with --include-repos, all other repositories are excluded.

Q: Can I distribute a Release Bundle v2 to an air-gapped environment?

A: Yes. Export the Release Bundle with jf rbe to an archive file, transfer it to the target instance, then import it with jf rbi. See Export a Release Bundle v2 archive for details.

Q: How do I add a tag or property to a Release Bundle v2 version?

A: Run jf rba <bundle-name> <bundle-version> --tag=<tag-value> or --properties "key=value". Tags appear in the Release Lifecycle kanban board so you can filter versions.

Related Topics


Did this page help you?