A BuildInfo
resource is the metadata associated with a build in Artifactory.
JFrog Pipelines automatically creates BuildInfo when any of the Build steps like MvnBuild, NpmBuild, GradleBuild, or DockerBuild are used to generate packages.
BuildInfo is published to Artifactory:
Through the PublishBuildInfo step, by setting a flag in Build steps.
or
By providing that resource in steps like NpmPublish, GoPublishModule, GoPublishBinary and DockerPush.
YAML Schema
The YAML schema for BuildInfo:
resources: - name: <string> type: BuildInfo configuration: sourceArtifactory: artifactoryIntegration buildName: <string> buildNumber: <number> pin: versionId: <number> buildName: <string> buildNumber: <number>
Tags
name
An alphanumeric string (underscores are permitted) that identifies the resource.
type
Must be BuildInfo
for this resource type.
configuration
Specifies all configuration selections for the resource.
Tag | Description | Required/Optional |
---|---|---|
| The name of the Artifactory Integration. | Required |
| The name of the build to associate with this BuildInfo. Recommend using the environment variable available from the step that generated the build. | Optional |
| The number of the build to associate with this BuildInfo. Can be an integer, a semantic version, or a string. Recommend using the environment variable available from the step that generated the build. | Optional |
| This configuration can be used to pin the resource to a specific version. The pinned resource version will be used by the steps that reference this resource as an input and newer versions will be ignored. Users have two configuration options when selecting the BuildInfo resource version to be pinned:
Or
Steps that use the resource as an output can still produce new versions. New versions will be visible for steps using the resource as an input as long as they are part of the same run of the step that created the version. When creating a new run, manual custom trigger can still be used to override the pinned version to a different one. | Optional |
Environment Variables
Whenever Buildinfo
is used in a step, a set of environment variables is automatically made available that can be used in your step.
Environment Variable | Description |
---|---|
res_<resource_name>_name | Name of the resource |
res_<resource_name>_buildName | The name of the build associated with this BuildInfo. |
res_<resource_name>_buildNumber | The number of the build associated with this BuildInfo. |
res_<resource_name>_targetRepo | When set by PromoteBuild, the name of a repository in Artifactory for the BuildInfo. |
Examples
These examples require a GitHub Integration and an Artifactory Integration.
The Pipelines DSL for these examples are available in this repository in the JFrog GitHub account.
Example 1
resources: - name: myGitRepo type: GitRepo configuration: gitProvider: my_github path: jfrog/jfrog-pipelines-simple-example branches: include: master - name: myBuildInfo type: BuildInfo configuration: sourceArtifactory: art buildName: SampleApp buildNumber: 1 pipelines: - name: basic_pipeline configuration: environmentVariables: readOnly: my_env_var: "hello" steps: - name: step_1 type: Bash configuration: inputResources: - name: myGitRepo outputResources: - name: myBuildInfo execution: onExecute: - echo $my_env_var - if [ -z $app_version ]; then add_pipeline_variables app_version=1.0.0; else app_version=$(bump_semver $app_version minor); fi - write_output myBuildInfo "buildNumber=$app_version" - add_run_variables run_var="hello" - name: step_2 type: Bash configuration: inputResources: - name: myBuildInfo runtime: type: image image: auto: language: java versions: ['11'] execution: onExecute: - echo $run_var - echo $res_myBuildInfo_buildNumber - name: step_3 type: Bash configuration: environmentVariables: step_env_var1: "hello" inputSteps: - name: step_2 execution: onExecute: - echo $step_env_var1 - name: step_4 type: Bash configuration: inputSteps: - name: step_2 execution: onExecute: - echo $app_version - name: step_5 type: Bash configuration: inputSteps: - name: step_3 - name: step_4 integrations: - name: my_github execution: onExecute: - 'curl -H "Authorization: token ${int_my_github_token}" ${int_my_github_url}/rate_limit'