DistributionRule

JFrog Pipelines Documentation

ft:sourceType
Paligo

A DistributionRule resource is the set of Destination rules that can be applied to distributing a release bundle using JFrog Distribution.Distributing Release Bundles

YAML Schema
resources:
  - name:                       <string>
    type:                       DistributionRule
    configuration:
      sourceDistribution:       <distribution integration name>
      serviceName:                      <string>                                          # required, only when used with Distribution 1.x
      siteName:                         <string>
      cityName:                         <string>
      countryCodes:
        - <string>
        - <string>
Tags
name

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

type

Must be DistributionRule for this resource type.

configuration

Specifies all configuration selections for the resource.

Tag

Description

Required/Optional

sourceDistribution

The name of a Distribution Integration.

Required

siteName

The Artifactory Edge Node site name specified with a wildcard pattern.

Required

cityName

The Artifactory Edge Node city name with a wildcard pattern.

Required

countryCodes

The Artifactory Edge Node country codes.

Required

serviceName

The Artifactory Edge Node service name with a wildcard pattern.

Required only when used with Distribution v.1.

Environment Variables

Whenever DistributionRule 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 resource

res_<resource_name>_servicename

The Artifactory Edge Node service name

res_<resource_name>_sitename

The Artifactory Edge Node site name

res_<resource_name>_cityname

The Artifactory Edge Node city name

res_<resource_name>_countrycodes

The Artifactory Edge Node country codes

Example
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