Local Templates can be a:
Copy of a system template: You can download a copy of a system template and commit it to your pipeline source repository. At this point, your template is disconnected from the centrally available template and will not be updated if the central template is updated.
or
Fully customized template for the pipeline: If you do not want to use an existing template, you can create a new, fully customized YAML file in your pipeline source repository and specify the config using the template pattern.
Related Content
Example: pipelines.yml
valuesFilePath: <relative path for values.yml> # required for local templates resources: - name: {{ .Values.GitRepo.name }} type: GitRepo configuration: gitProvider: {{ .Values.GitRepo.gitProvider }} path: {{ .Values.GitRepo.path }} branches: include: {{ .Values.GitRepo.branches.include }} - name: {{ .Values.Image.name }} type: Image configuration: registry: {{ .Values.artifactoryIntegration }} sourceRepository: {{ .Values.Image.sourceRepository }} imageName: {{ .Values.DockerBuild.dockerImageName }} imageTag: 1 autoPull: true pipelines: - name: {{ .Values.Pipeline.name }} steps: - name: {{ .Values.DockerBuild.name }} type: DockerBuild configuration: dockerFileLocation: . # requires Dockerfile to be in root dockerFileName: {{ .Values.DockerBuild.dockerFileName }} dockerImageName: {{ .Values.DockerBuild.dockerImageName }} dockerImageTag: ${run_number} # requires tag to be run number inputResources: - name: {{ .Values.GitRepo.name }} integrations: - name: {{ .Values.artifactoryIntegration }} - name: {{ .Values.DockerPush.name }} type: DockerPush configuration: targetRepository: {{ .Values.DockerPush.targetRepository }} integrations: - name: {{ .Values.artifactoryIntegration }} inputSteps: - name: {{ .Values.DockerBuild.name }} outputResources: - name: {{ .Values.Image.name }} - name: {{ .Values.Bash.name }} type: Bash configuration: inputResources: - name: {{ .Values.Image.name }} execution: onExecute: - echo “This is a Bash step”
In addition to the local template file, a values.yml
file is required in the same repository. This file contains the values required for the local template to create the pipeline definition.
Example: values.yml
artifactoryIntegration: myArtifactoryIntegration GitRepo: name: myGitRepo gitProvider: myGitIntegration path: myorg/myrepo branches: include: master Image: name: myDockerImage sourceRepository: mySourceRepo Pipeline: name: myDockerPipeline DockerBuild: name: myDockerBuild dockerFileName: Dockerfile dockerImageName: <image name> DockerPush: targetRepository: docker-local Bash: name: myBashStep
Template Functions List
Local templates support several helm chart style functions. For the full list of supported and unsupported functions, see Template Functions List.
Adding Local Templates (1.31 and higher)
To add and use local templates:
In the SCM repository, place your template YAML files (
pipelines.yml
andvalues.yml
) in a directory named .jfrog-pipelines
. This directory can be the root or one level below the root. Directories beyond this level are not supported.In the Pipelines UI, go toAdministration | Pipelines | Pipeline Sources.
In the resulting Pipeline Sources display, click Add Pipeline Source.
In the resulting Add YAML Pipeline Source page, click one of the following:
Single Branch
Multi Branch
Complete the Single/Multi Branch form:
Field
Description
Name
Enter a unique name for the pipeline source.
SCM Provider Integration
Click the SCM Provider Integration field and select your source control integration from the dropdown list. Only integrations that are compatible for use as a Pipeline Source will be included in the dropdown list.
Repository Full Name
Based on the information you have provided for the selected integration, such as API token, all the relevant repositories are listed in the Repository Full Name field. Select the path of the repository where your pipeline files are stored. If the name of the repository is not auto-fetched, enter the full name of the repository where your pipeline files are stored.
Branch (Single Branch only)
Based on the SCM provider and Repository Full Name you have provided, all the available branches are automatically fetched (for example,
main
). Select the required branch. If the name of the branch is not auto-fetched, enter the name of the branch.Exclude (Multi Branch only)
Specify the Exclude Branch Patternas a regular expression for the matching branch names to exclude.
Include (Multi Branch only)
Specify the Include Branch Pattern as a regular expression for the matching branch names to include.
Sync all branches toggle
(Multi Branch only)
When a new multi branch pipeline source is added, only the default branched is synced. To sync all the branches based on the Exclude/Include pattern, click the Sync all branches toggle. If Exclude/Include pattern is not provided, all branches are synced.
In addition, when a new commit is pushed to thematching branch, that particular branch is synced.
Folder Name
Provide the name of the directory where the template YAML files (
pipelines.yml
andvalues.yml
) are available.The .
jfrog-pipelines
directory can contain any number of YAML files.To parse all YAML files in the root directory, enter ".".
Click Create Source to complete adding the Pipeline Source.
Adding Local Templates (1.30 and lower)
To add and use local templates:
In your local template file (for example,
pipelines.yml
), settemplate
totrue
and setvaluesFilePath
to the relative path of thevalues.yml
file.template: true
valuesFilePath: values.yml
Settingtemplate
totrue
identifies the yaml file as a local template. The combination ofvalues.yml
andpipelines.yml
is parsed to create the pipeline definition and synced to create the pipeline.Go to Administration | Pipelines | Pipeline Sources.
In the resulting Pipeline Sources display, click Add Pipeline Source, and then click From YAML.
In the resulting Add YAML Pipeline Source page, click one of the following:
Single Branch
Multi Branch
Complete the Single/Multi Branch form:
SCM Provider Integration: Click the SCM Provider Integration field and select your source control integration from the dropdown list. Only integrations that are compatible for use as a Pipeline Source will be included in the dropdown list.
Repository Full Name: Based on the information you have provided for the selected integration, such as API token, all the relevant repositories are listed in the Repository Full Name field. Select the path of the repository where your pipeline files are stored. If the name of the repository is not auto-fetched, enter the full name of the repository where your pipeline files are stored.
Branch (Single Branch only): Based on the SCM provider and Repository Full Name you have provided, all the available branches are automatically fetched (for example,
main
). Select the required branch. If the name of the branch is not auto-fetched, enter the name of the branch.Exclude Branch (Multi Branch only): Specify the Exclude Branch Pattern as a regular expression for the matching branch names to exclude.
Include (Multi Branch only): Specify the Include Branch Pattern as a regular expression for the matching branch names to include.
Pipeline Config File Filter: Enter
pipelines.yml
. In addition to thepipelines.yml
, if you are using avalues.yml
, ensure both files are added to the filter, using(pipelines|values).yml
.
Click Create Source to complete adding the Pipeline Source.