Npm Build Example: pipelines.yml

JFrog Pipelines Documentation

ft:sourceType
Paligo

The pipelines.yml file is made up of resources, pipelines and steps, as shown below. For information about the Pipeline Example for Npm Builds, see Pipeline Example: Npm Build.

Resources

This example uses the following types of resources:

GitRepo

A GitRepo resource is used to connect JFrog Pipelines to a source control repository. Adding it creates a webhook to the repo so that future commits will automatically create a new version with the webhook payload.

resources

  - name: npm_example_repo_jfp
    type: GitRepo
    configuration:
      # SCM integration where the repository is located
      gitProvider: {{ .Values.myRepo.gitProvider }}
      # Repository path, including org name/repo name
      path: {{ .Values.myRepo.path }}
      branches:
        # Specifies which branches will trigger dependent steps
        include: master

Tag

Description

Required/Optional

name

npm_example_repo_jfp is the name of the GitRepo resource pointing to the repository containing the yaml files and other source code required to build the image.

This name is used to refer to the resource in steps, and must be unique across all repositories in your JFrog Pipelines environment.

Required

gitProvider

The name of the GitHub Integration. Its value is retrieved from the values.yml file.GitHub Integration

Required

path

The path of the repository from the integration root. Its value is retrieved from the values.yml file.

Required

branches

  • include -- (optional) Regular expression to include branches from the repo

  • exclude-- (optional) Regular expression to exclude branches from the repo

The include: master tag indicates that the GitRepo resource is listening to the master branch.

Optional

BuildInfo

BuildInfo is automatically created when the NpmBuild step is used to generate packages. BuildInfo is then published to the configured Artifactory repo (sourceArtifactory: demoArt) by providing that resource in the NpmPublish step.

resources

  - name: npm_example_buildinfo_jfp
    type: BuildInfo
    configuration:
      sourceArtifactory: demoArt

Tag

Description

Required/Optional

name

npm_example_buildinfo_jfp is the name of the BuildInfo resource, which is the metadata associated with the build in Artifactory..

This name is used to refer to the resource in steps, and must be unique across all repositories in your JFrog Pipelines environment.

Required

sourceArtifactory

The name of the Artifactory Integration. Its value is retrieved from the values.yml file.

Required

Pipelines

npm_example_pipeline_jfp is the name of the pipeline, which contains the steps for running the pipeline.

Steps

The npm_example_pipeline_jfp pipeline contains the following native steps:

  • NpmBuild

  • NpmPublish

NpmBuild

The NpmBuild native step builds an npm source. This step automatically performs npm-install on the source in a Git repository.

steps

      - name: npm_build_step
        type: NpmBuild
        configuration:
          repositoryName: npm-virtual      # required, npm repository name on artifacctory
          sourceLocation: ./npm-example      # required, location of package.json file
          integrations:
            - name:  demoArt  # required
          inputResources:
            - name: npm_example_repo_jfp         # required

Tag

Description of usage

Required/Optional

name

npm_build_step is the name that identifies the step.

This is the name used when the step is assigned as an input to the next step, npm_publish_step.

Required

repositoryName

npm-virtual is the name of the npm repository in Artifactory.

Required

sourceLocation

./npm-example is the directory containing the package.json file, relative to the GitRepo path.

Required

integrations

Specifies an Artifactory Integration where modules will be published. If a FileSpec resource is specified in inputResources then this is optional. Otherwise, it is required.

May be required

inputResources

Must specify a GitRepo resource. The npm-install runs on the Git repository at sourceLocation.

This step accepts npm_example_repo_jfp, which is the GitRepo resource, as the inputResource.

Required

Optional

NpmPublish

The NpmPublish step publishes an npm package to the registry in Artifactory following an NpmBuild step.

steps

      - name: npm_publish_step
        type: NpmPublish
        configuration:
          # for payloadType npm:
          repositoryName: npm-virtual        # required, npm repository name on artifactory
          autoPublishBuildInfo: true       # optional
          integrations:
            - name: demoArt      # required
          inputSteps:
            - name: npm_build_step                # required
          outputResources:
            - name: npm_example_buildinfo_jfp                 # optional

Tag

Description of usage

Required/Optional

name

npm_publish_step is the name that identifies the step.

Required

repositoryName

npm-virtual is the name of the npm repository to publish in Artifactory.

Required

autoPublishBuildInfo

When set to true, publishes build info to Artifactory. Default is false.

Once published, the build info can be viewed in Artifactory, in the Build Browser under Builds.

Optional

integrations

Must specify an Artifactory Integration.

Required

inputSteps

Must specify a named NpmBuild or Bash step.

npm_build_step is the name of the NpmBuild step.

Required

outputResources

Must specify a BuildInfo resource if autoPublishBuildInfo is set to true.

npm_example_buildinfo_jfp is specified as the outputResource.

May be required