Overview

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



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
sourceDistributionThe 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
countryCodesThe Artifactory Edge Node country codes.Required
serviceName The Artifactory Edge Node service name with a wildcard pattern.Required only when used with Distribution 1.x

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>_nameName of the resource
res_<resource_name>_servicenameThe Artifactory Edge Node service name 
res_<resource_name>_sitenameThe Artifactory Edge Node site name
res_<resource_name>_citynameThe Artifactory Edge Node city name 
res_<resource_name>_countrycodesThe 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