DEV Community

Cover image for JFrog Platform - Distribution automation using Pipelines
Disha Meswania for JFrog

Posted on

5 2

JFrog Platform - Distribution automation using Pipelines

Several organizations that are looking forward to adopting complete DevOps, need a one-stop solution for their CI/CD processes. With the newest addition of JFrog Pipelines, the JFrog platform provides end-to-end automation of your DevOps workflow.

As Continuous integrations with JFrog Pipelines is a major amendment for many organizations - modifying the build processes can be a slow and gradual process. However, the Continuous delivery process can be automated easily with the one-stop solution of the JFrog Platform using Distribution and Pipelines.

In this blog, we will be focusing on the step-by-step configuration of the JFrog Pipeline to automate the Distribution flow to various Edge nodes.

Pre-requisites:


Step1:
Creating a release bundle in Distribution using Pipeline native steps and resources

For Example:

      - name: Create_ReleaseBundle
        type: CreateReleaseBundle
        configuration:
          releaseBundleName:        Demo_RB
          releaseBundleVersion:     V1.2.${run_number}
          inputResources:
            - name:                final_docker_gradleBuild_Info
            - name:                final_docker_npmBuild_Info 
          outputResources:
            - name:                New_ReleaseBundle
          description:              Release Bundle of gradle and npm 
          releaseNotes:
            syntax:                 markdown
            content: |
              ## Heading
                * Bullet
                * Points
Enter fullscreen mode Exit fullscreen mode

(Please note; the inputResources here are defined as build info resources in this Pipeline)

Once the bundle is created, we can view it in JFrog Distribution as below;
Alt Text


Step2:
Sign the release bundle (Can be done with the above step by adding the sign parameter as ‘true’)

For example:

   - name: Sign_ReleaseBundle
     type: SignReleaseBundle
     configuration:
     inputResources:
       - name:    New_ReleaseBundle
         trigger: true
     outputResources:
       - name:  Signed_ReleaseBundle
Enter fullscreen mode Exit fullscreen mode

Step3:
Creating the Distribution rule resource to define the Edge nodes where we want to distribute our releases

For example:

   - name:           Distribution_Rule
     type:           DistributionRule
     configuration:
       sourceDistribution:   distribution
       serviceName:          edge-jpd
       siteName:             "edge-jpd"
       cityName:             "*"
       countryCodes:
         - "*"
Enter fullscreen mode Exit fullscreen mode

Step4:
Distributing the release bundle by using the input resources - Release bundle + Distribution rule created in the above steps

For example:

   - name: Distribute_ReleaseBundle
     type: DistributeReleaseBundle
     configuration:
       dryRun: false
       inputResources:
         - name: Signed_ReleaseBundle
           trigger: true
         - name: Distribution_Rule
Enter fullscreen mode Exit fullscreen mode

After the Distribution is complete - we can view the release bundle completion in JFrog UI of both Source and Destination Edge nodes as below:

In Source - Distribution tracking
Alt Text

In Edge node - Available packages that were Distributed
Alt Text


Thus, in some simple steps - we can automate the whole process of distribution using JFrog Pipelines.

In other words, our continuous delivery processes can be streamlined along with our Continuous integration processes and we are able to have an end-to-end CI/CD implementation.

Wishing you fast and healthy software deliveries!
The JFrog Platform

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more →

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more