Pipelines Extension Usage - Namespaces

JFrog Pipelines Documentation

Products
JFrog Pipelines
Content Type
User Guide
ft:sourceType
Paligo

Extension steps and resources are defined within a namespace, to ensure that all steps and resources in a set have unique names. Namespaces are specified through the repository path of the step or resource model definition.

  • Extension step definitions must be stored in a subdirectory path of the form: steps/<namespace>/<stepTypeName>.

  • Extension resource definitions must be stored in a subdirectory path of the form: resources/<namespace>/<resourceTypeName>.

Note

If no namespace is specified, Pipelines defaults to the jfrog namespace for standard Pipelines resources, or standard generic or native steps.

Example

The sample extensions in our tutorial are in a tutorial namespace, as defined in the repository's directory structure:

jfrog-pipelines-extensions-sample

/steps

/tutorials

/HealthCheck

/resources

/tutorials

/test

You can define as many steps or resources under a namespace directory as you need. For example:

my_pipelines_extensions

/steps

/mycompanyname

/StepTypeA

/StepTypeB

/StepTypeC

/resources

/mycompanyname

/ResourceTypeX

/ResourceTypeY

/ResourceTypeZ

When used in a Pipelines DSL file, the extension must be referenced with its namespace to be recognized. For example:

pipelines.yml

resources:
  - name: MyResource
    type: mycompanyname/ResourceTypeX   # <-- extension resource
    configuration:
    ...

pipelines:
  - name: MyPipeline
    configuration:
      environmentVariables:
        readOnly:
          my_env_var: "hello"
    steps:
      - name: MyStep_1
        type: mycompanyname/StepTypeA   # <-- extension step
        configuration:
        ...
      - name: MyStep_2
        type: mycompanyname/StepTypeB   # <-- extension step
        configuration:
        ...