These examples may require an Artifactory integration or JFrog Platform Access Token Integration and/or a Distribution integration.
The Pipelines DSL for this example is available in this repository in the JFrog GitHub account.
Example 1: AQL with build name and number
resources: - name: myAqlResource type: Aql configuration: sourceArtifactory: myArtifactoryIntegration query: items.find({"@build.name":{"$eq":"buildName"}}) - name: myReleaseBundle type: ReleaseBundle configuration: sourceDistribution: myDistributionIntegration name: name version: '1' pipelines: - name: pipelineToUpdateResource steps: - name: myBashStep type: Bash configuration: integrations: - name: myArtifactoryIntegration outputResources: - name: myAqlResource execution: onExecute: - write_output myAqlResource query='items.find({"@build.name":{"$eq":"myBuildName"}})' - name: CreateReleaseBundlePipeline configuration: inputResources: - name: myAqlResource outputResources: - name: myReleaseBundle steps: - name: myCreateReleaseBundleStep type: CreateReleaseBundle configuration: releaseBundleName: ${JFROG_CLI_BUILD_NAME} releaseBundleVersion: ${run_id} dryRun: true
Example 2: AQL with file name
resources: - name: myAqlResource type: Aql configuration: sourceArtifactory: myArtifactoryIntegration query: 'items.find({"$and": [{"repo": {"$eq": "example-repo-local"}}, {"name": {"$match": "myFile.txt"}}]})' - name: myReleaseBundle type: ReleaseBundle configuration: sourceDistribution: myDistributionIntegration name: name version: '1' pipelines: - name: myCreateReleaseBundlePipeline steps: - name: myCreateReleaseBundleStep type: CreateReleaseBundle configuration: releaseBundleName: ${JFROG_CLI_BUILD_NAME} releaseBundleVersion: ${run_id} dryRun: false inputResources: - name: myAqlResource outputResources: - name: myReleaseBundle
Example 3: AQL to add an additional property to the artifacts in the release bundle
resources: - name: myAqlResource type: Aql configuration: sourceArtifactory: myArtifactoryIntegration query: 'items.find({"$and": [{"repo": {"$eq": "example-repo-local"}}, {"name": {"$match": "myFile.txt"}}]})' addedProperties: myRunNumber: ${run_id} - name: myReleaseBundle type: ReleaseBundle configuration: sourceDistribution: myDistributionIntegration name: name version: '1' pipelines: - name: myCreateReleaseBundlePipeline steps: - name: myCreateReleaseBundleStep type: CreateReleaseBundle configuration: releaseBundleName: ${JFROG_CLI_BUILD_NAME} releaseBundleVersion: ${run_id} dryRun: false inputResources: - name: myAqlResource outputResources: - name: myReleaseBundle
Example 4: AQL to map one path to another
resources: - name: myAqlResource type: Aql configuration: sourceArtifactory: myArtifactoryIntegration query: 'items.find({"$and": [{"repo": {"$eq": "example-repo-local"}}, {"name": {"$match": "myFile.txt"}}]})' mappings: - name: myMapping input: example-repo-local/myFile.txt output: example-repo-local/myFile_2.txt - name: myReleaseBundle type: ReleaseBundle configuration: sourceDistribution: myDistributionIntegration name: name version: '1' pipelines: - name: myCreateReleaseBundlePipeline steps: - name: myCreateReleaseBundleStep type: CreateReleaseBundle configuration: releaseBundleName: ${JFROG_CLI_BUILD_NAME} releaseBundleVersion: ${run_id} dryRun: false inputResources: - name: myAqlResource outputResources: - name: myReleaseBundle
Example 5: AQL mapping paths using capturing groups in the input
resources: - name: myAqlResource type: Aql configuration: sourceArtifactory: myArtifactoryIntegration query: 'items.find({"$and": [{"repo": {"$eq": "example-repo-local"}}, {"name": {"$match": "myFile.txt"}}]})' mappings: - name: myMapping input: example-repo-local/myFile.(.*) output: example-repo-local/myFile_2.$1 - name: myReleaseBundle type: ReleaseBundle configuration: sourceDistribution: myDistributionIntegration name: name version: '1' pipelines: - name: myCreateReleaseBundlePipeline steps: - name: myCreateReleaseBundleStep type: CreateReleaseBundle configuration: releaseBundleName: ${JFROG_CLI_BUILD_NAME} releaseBundleVersion: ${run_id} dryRun: false inputResources: - name: myAqlResource outputResources: - name: myReleaseBundle
Example 6: pipelines.yml
resources: - name: Aql_ART_1 type: Aql configuration: sourceArtifactory: myArtifactoryIntegration query: items.find({"@build.name":{"$eq":"art"}}) addedProperties: key1: value1 key2: value2 mappings: - name: mapping1 input: IN output: test1 - name: mapping2 input: IN output: test2 pipelines: - name: pipelines_ART_1 steps: - name: step_ART_1 type: PowerShell configuration: nodePool: win_2019 inputResources: - name: Aql_ART_1 trigger: true execution: onExecute: - write_output "executing step..."