Structure of Template Source Repository (1.30 and lower)

JFrog Pipelines Documentation

Products
JFrog Pipelines
Content Type
User Guide

The system template files should be stored in the template source repository in a specific order for them to be uploaded to Pipelines:

  • There must be a directory called templatesin the root directory of the repository.

  • In the templates directory, there must be a subdirectory path of the form: namespace/<name>/<files>.

Where:

  • namespace is the name the template belongs to.

  • name is the name of the template.

  • files are the template-related files.

    Note

    The namespace and subdirectories can only contain letters, underscores, and numbers.

  • The following files can be added as part of the templates:

    File

    Description

    Mandatory/Optional

    templateDefinition.yml

    This should contain the pipeline definition and should be a valid yml file.

    Mandatory

    values.yml.example

    Use this file as a sample for creating a values.yml file. This should be a valid yml file and it is used to specify the details required for templateDefinition.yml file.

    Optional

    readme.md

    This should contain the documentation for the template.

    Optional

    Using {{gitBranch}}

    • Both templateDefintion.yml and values.yml support the in-built keyword {{gitBranch}}. The value of {{gitBranch}} is substituted with the branch against which the pipeline source was created. For more information, see Creating Multibranch Pipelines.

    • When used in a conditional or comparison logic, {{gitBranch}} placeholders must be wrapped within double quotes.

      Example: {{ if eq "{{gitBranch}}" "master" }}

templateDefinition.yml: This is a sample templateDefinition.yml. This can be edited to create your own version of the file.

templateDefinition.yml

pipelines:
  - name: basic
    steps:
      - name: basic1
        type: Bash
        configuration:
          runtime:
            type: image
        execution:
          onExecute:
            - printenv {{ .Values.foo.bar }}
      - name: basic2
        type: Bash
        configuration:
          runtime:
            type: image
          inputSteps:
            - name: basic1
        execution:
          onExecute:
            - printenv {{ .Values.foo.baz }}
      - name: basic3
        type: Bash
        configuration:
          runtime:
            type: image
          inputSteps:
            - name: basic2
        execution:
          onExecute:
            - printenv {{ .Values.foo.zoo }}

values.yml.example: Use this file as a sample to create the values.yml file.

values.yml.example

artifactoryIntegration: myArtifactoryIntegration

GitRepo:
  name: myGitRepo
  gitProvider: myGitIntegration
  path: myorg/myrepo
  branches:
    include: master


foo:
  name: bar

Image:
  name: myDockerImage
  sourceRepository: mySourceRepo      


Pipeline:
  name: myDockerPipeline

DockerBuild:
  name: myDockerBuild   
  dockerFileName: Dockerfile
  dockerImageName: <image name>

DockerPush:
  targetRepository: docker-local 

Bash:
  name: myBashStep