Overview

ReleaseBundle resource specifies a set of artifacts in Artifactory that are distributed to Artifactory Edge nodes as a JFrog Distribution Release Bundle.


This resource can be used with CreateReleaseBundle or DistributeReleaseBundle. This resource can be used to represent both signed and unsigned Release Bundle.  


YAML Schema

resources:
  - name: 		<string>
    type: 		ReleaseBundle
    configuration:
      sourceDistribution:   distributionIntegration
      name: 				<string>
      version: 				<string>
      isSigned: 			<boolean>
      pin:
        versionId:          <number>
        name:               <string>
        version:            <string>

Tags

name 

An alphanumeric string (underscores are permitted) that identifies the resource.

type 

Must be ReleaseBundle for this resource type.

configuration

Specifies all configuration selections for the resource.

Tag

Description

Required/Optional
sourceDistributionThe name of a Distribution IntegrationRequired

name 

Name of the release bundle

Required
version 

Version number of the release bundle

Required

isSigned 

When true, the release bundle is signed.

Defaults to false.

Optional
pin

This configuration can be used to pin the resource to a specific version. The pinned resource version will be used by the steps that reference this resource as an input and newer versions will be ignored.

Users have two configuration options when selecting the ReleaseBundle resource version to be pinned:

  • versionId -- Resource version Id (can be obtained through the UI)

Or

  • name -- The name of the release bundle to be pinned
  • version -- The version of the release bundle to be pinned

Steps that use the resource as an output can still produce new versions. New versions will be visible for steps using the resource as an input as long as they are part of the same run of the step that created the version.

When creating a new run, manual custom trigger can still be used to override the pinned version to a different one.

Optional

Environment Variables

Whenever ReleaseBundle is used in a step, a set of environment variables is automatically made available that you can use in your step.

Environment Variable

Description

res_<resource_name>_name
Name of the release bundle
res_<resource_name>_sourceDistribution
Name of the Distribution integration
res_<resource_name>_version 

Version number of the release bundle

res_<resource_name>_isSigned 
Indicates whether the release bundle is signed

Examples

resources:
  # Build info of first build to bundle
  - name: gosvc_promoted_build_info
    type: BuildInfo
    configuration:
      sourceArtifactory: myArtifactory
      buildName: svc_build
      buildNumber: 1

  # Build info of second build to bundle
  - name: appl_promoted_build_info
    type: BuildInfo
    configuration:
      sourceArtifactory: demoArt
      buildName: backend_build
      buildNumber: 1

  # Release bundle
  - name: release_bundle
    type: ReleaseBundle
    configuration:
      sourceDistribution: myDist
      name: demo_rb
      version: v1.0.0

  # Signed version of the same release bundle
  - name: signed_bundle
    type: ReleaseBundle
    configuration:
      sourceDistribution: myDist
      name: demo_rb
      version: v1.0.0

  # Distribution rules
  - name: distribution_rules
    type: DistributionRule
    configuration:
      sourceDistribution: myDist
      serviceName: "*"
      siteName: "*"
      cityName: "*"
      countryCodes:
        - "CN"
        - "GB"

pipelines:
  - name: demo_release_mgmt
    steps:
      - name: bundle
        type: CreateReleaseBundle
        configuration:
          releaseBundleName: demo_rb
          releaseBundleVersion: v1.0.${run_number}
          dryRun: false
          sign: false
          description: "some random test description"
          inputResources:
            - name: gosvc_promoted_build_info
              trigger: true
            - name: appl_promoted_build_info
              trigger: true
          outputResources:
            - name: release_bundle
          releaseNotes:
            syntax: markdown
            content: |
              ## Heading
                * Bullet
                * Points
            
      - name: sign
        type: SignReleaseBundle
        configuration:
          inputResources:
            - name: release_bundle
          outputResources:
            - name: signed_bundle

      - name: distribute
        type: DistributeReleaseBundle
        configuration:
          dryRun: false
          inputResources:
            - name: signed_bundle
            - name: distribution_rules