Using the latest version?
JFrog Container Registry Guide


Skip to end of metadata
Go to start of metadata

Overview

JFrog Container Registry supports build integration whether you are running builds on one of the common CI servers in use today, on cloud-based CI servers or standalone without a CI server.

Integration of JFrog Container Registry into your build ecosystem provides important information that supports fully reproducible builds through visibility of artifacts deployed, dependencies and information on the build environment.

The JFrog Container Registry Build Integration Add-on provides a set of plugins you can use with industry standard CI systems and build tools that enable you to:

  • See all the builds that are published and their build results in JFrog Container Registry.
  • Explore the modules of each build, including published artifacts and corresponding dependencies.
  • Obtain information about the build environment.
  • Check if a specific artifact is required for or is a result of a build, and providing alerts if such an artifact should be targeted for removal.
  • Treat all the artifacts and/or dependencies from a specific build as a single unit and perform bulk operations such as move, copy, export etc.
  • Receive bidirectional links between build and artifact information inside the build server and JFrog Container Registry pages.

Running Builds on a CI Server

JFrog Container Registry can easily be added to a continuous integration build ecosystem by treating the CI server as a regular build client, so that it resolves dependencies from JFrog Container Registry, and deploys artifacts into a dedicated repository within JFrog Container Registry. 

Build Integration for JFrog Container Registry version vs. Artifactory Pro

When using the JFrog Container Registry, Build Integration includes the Generic BuildInfo View and the ability to traverse and view build information using JFrog Container Registry's REST APIs.

Artifactory Pro extends these capabilities and provides Module Artifacts and Dependencies View, the ability to promote builds and track issues associated with the build.

Page Contents





Build Info Repository

The Build Info repository, is a local repository that stores your build info json files as artifacts, providing you with:   

  • user / group permission management equivalent to managing permissions on repositories with include/exclude patterns on build names 
  • build info replication to other instances, since they are stored as artifacts in a repository 
  • improved accessibility to the build info json files and overall performance of the Builds module

Whenever a new build is uploaded to JFrog Container Registry (directly using a Build REST API or from the JFrog Container Registry UI), it will automatically get deployed to this default artifactory-build-info repository.

Build info json files should be uploaded to the root of the repository. JFrog Container Registry will automatically place them in the repository using the following structure: artifactory-build-info > [build name] > [build number]-[deploy timestamp].json 

Using the artifactory-build-info repository

The artifactory-build-info repository is automatically created and used by default. It cannot be removed. Removing it will cause all your build info to be deleted and a new default build info repository will be recreated.


Migrating to the artifactory-build-info Repository 

The migration process may be configured through the following system properties. The migration will run on the primary node.

Property Name
Function
 artifactory.migration.job.dbQueryLimit

[Default: 100]

Specifies the number of rows that should be retrieved each time the migration job queries the database for build info json entries that exist in the database but not yet in the build-info repository values.

 artifactory.migration.job.batchSize

[Default: 10]

Build info json artifacts are deployed concurrently in batches, then a sleep cycle is initiated. This property specifies the number of artifacts in each batch.

 

artifactory.build.info.migration.job.queue.workers

[Default: 2]

Specifies the number of concurrent threads that should execute actual build info artifact updates.

Each concurrent artifact update will incur a read from the database to retrieve the build info json, followed by an upload to the build-info repo.

 

artifactory.migration.job.sleepIntervalMillis

[Default: 5000 milliseconds]

Specifies the duration of the sleep cycle which is initiated after each batch of updates.
artifactory.migration.job.waitForCluster.sleepIntervalMillis

[Default: 300000 milliseconds]

The build-info repository migration can only start when the cluster has been fully upgraded and all nodes run the same minimal required version (6.6.0), where applicable.

This parameter specifies the amount of time the master node will wait between each check for all of the other nodes' current version.



Viewing Builds

When viewing an artifact within the Tree Browser, you can see all of the builds with which that artifact is associated, whether directly or as a dependency in the Builds tab

Moreover, if you try to remove the artifact you will receive a warning that the build will no longer be reproducible.

 

The association of an artifact with a build is retained even if you move or copy it within JFrog Container Registry, because the association linked to the artifact's checksum which remains constant, regardless of the its location.


Inspecting Builds

Builds and Build History

All CI server projects that deploy their output to JFrog Container Registry can be viewed in the Build Browser module.

754pxSelecting a build item to display all runs of that build reflecting the build history in the CI server, and a complete build-level information.

Permissions

To view build information you must have the 'deploy' permission on some repository path.

Build-level Information

You can select the Build Name to drill down into a specific build. This displays detailed information about the build, and enables you to compare it with another build as described in the following sections.

The build page is broken down into 3 sections: Build ID, General Information 

The Build Info Details screen is divided into three panels:

  • The Build ID panel displays all versions of the selected build. 
  • The horizontal panel along the top displays basic information about the selected version.
  • The Build details. Select a file to see its details in the panel on the right. 

There are three categories of information:

  1. General build information about the build and its environment.
  2. Build modules along with their artifacts and dependencies.
  3. Generic view of the build information in JSON format.

General Build Information

The horizontal panel displays general information about the build:

Agent
The CI server managing the build
Build Agent
The specific version of build tool used
Started
The time stamp when the build was started
Duration
The duration of the build
Principal
The factor that triggered this build. This may be a CI server user, or another build
JFrog Container Registry Principal
The JFrog Container Registry user that triggered this build

Published Modules

This tab displays the modules published into JFrog Container Registry as a result of the build, along with the number of artifacts and dependencies that they contain.

Module Artifacts and Dependencies

Selecting a published module that was built will display its artifacts and dependencies. You can group these by type or scope by clicking the corresponding column header. 

You can click any item to download it directly, or click its Repo Path to view it in the Tree Browser.

Environment

The Environment tab displays an extensive list of properties and environment settings defined for the selected build. You can use these to reproduce the environment precisely if you need to rerun the build.


Issues

The Issues provides integration between JFrog Container Registry, Jenkins CI server and JIRA issue tracker. When using Jenkins CI, if you to set the  Enable JIRA Integration option in the Jenkins JFrog Container Registry Plugin, the Issues tab will display any JIRA issues that have been addressed by this build.


Release History

The Release History tab displays a list of the selected build's release landmarks.

Build Info JSON

Generic BuildInfo View

This tab displays the raw BuildInfo JSON representation of the build information in JFrog Container Registry. This data can be accessed via the REST API or used for debugging and is also available in the JFrog Container Registry Cloud version.


Exporting and Manipulating Build Items

You can view a build in the repository browser and perform actions on it as a whole with all its artifacts and dependencies. For example, you could promote it to another repository, copy it, or export it to a disk. 


Deleting Builds

To delete a build from the UI, hover over a version and click delete. 


Behind the Scenes

Behind the scenes, the JFrog Container Registry plug-in for your CI server performs two major tasks:

  1. It resolves all dependencies from a resolution repository in JFrog Container Registry.
  2. It deploys all the artifacts to JFrog Container Registry as an atomic operation at the end of the build, guaranteeing a more coherent deployment when building multi-module projects.
  3. It sends a BuildInfo data object to JFrog Container Registry via the REST API at the end of deployment. This is a structured JSON object containing all the data about the build environment, artifacts and dependencies, in a standard and open format.

You can find the latest BuildInfo Java-binding artifacts here and the source here.

  • No labels