DistributeReleaseBundle - Examples

JFrog Pipelines Documentation

ft:sourceType
Paligo

The following examples show how to configure a DistributeReleaseBundle step to distribute or for a dry run. For more information on DistributeReleaseBundle Pipeline steps, see DistributeReleaseBundle.

Distribute Input Release Bundle Edge Node

Distributes the input release bundle to the edge nodes defined in the distribution rule.

DistributeReleaseBundle

template: true   # required for local templates
valuesFilePath: ./values.yml

resources:
  # Build info of first build to bundle
  - name: gosvc_promoted_build_info
    type: BuildInfo
    configuration:
      sourceArtifactory: {{ .Values.myArtifactoryIntegration }}
      buildName: svc_build
      buildNumber: 1

  # Build info of second build to bundle
  - name: appl_promoted_build_info
    type: BuildInfo
    configuration:
      sourceArtifactory: {{ .Values.demoArtifactoryIntegration }}
      buildName: backend_build
      buildNumber: 1

  # Release bundle
  - name: release_bundle
    type: ReleaseBundle
    configuration:
      sourceDistribution: {{ .Values.distributionIntegration }}
      name: demo_rb
      version: v1.0.0

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

  # Distribution rules
  - name: distribution_rules
    type: DistributionRule
    configuration:
      sourceDistribution: {{ .Values.distributionIntegration }}
      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

Trigger a Dry Run

Triggers a dry run of the distribution.

DistributeReleaseBundle

pipelines: 
  - name: distributeReleaseBundlePipeline
    steps:
      - name: distributeReleaseBundleDryRun
        type: DistributeReleaseBundle
        configuration:
          dryRun: true
          inputResources:
            - name: myReleaseBundle
            - name: myInputDistributionRule

Triggers Distribution and Updates Output Resource

Triggers a distribution and updates the output resource with the name and version of the input.

DistributeReleaseBundle

pipelines: 
  - name: distributeReleaseBundlePipeline
    steps:
      - name: distributeReleaseBundleDryRun
        type: DistributeReleaseBundle
        configuration:
          dryRun: false
          inputResources:
            - name: myReleaseBundle
            - name: myInputDistributionRule
          outputResources:
            - name: myOutputReleaseBundle

Same Step for Dry Runs and to Distribute

In this example, the same step is used for both dry runs and to distribute the release bundle to Edge Nodes. The dry_run variable may be set in the pipeline configuration section or step configuration or added as a run variable by an earlier step in the pipeline using add_run_variable.

DistributeReleaseBundle

pipelines: 
  - name: distributeReleaseBundlePipeline
    steps:
      - name: distributeReleaseBundleStep
        type: DistributeReleaseBundle
        configuration:
          dryRun: ${dry_run}
          inputResources:
            - name: myReleaseBundle
            - name: myInputDistributionRule