JFrog Pipelines supports Java, C++, Node.js, .NET,, and Go programming languages out of the box. JFrog provides default images in a standard runtime images library, which already have the latest language versions pre-installed. You can use Pipelines to build with other languages by providing a custom image, or installing the language version you need as part of your onStart configuration.
runtime section of your YAML configuration you can specify a
version, which Pipelines will use to select the matching language image. This setting can be configured at a
step level. As an example, pipeline level configuration is shown below:
pipelines: - name: pipeline_1 configuration: runtime: type: image image: auto: language: node versions: - "10.18.0
languagecan be set to:
cppfor C/C++ steps
dotnetcorefor .NET steps (Windows Server only)
gofor Go steps
javafor Java-based steps
nodefor Node.js steps
versionscan be set to the version of the language you want to run your build against. Remember to put the version in double quotes, since the parser expects a string. For example: "9.0.0".
If you need an unsupported version of a language, you can either install it in the
onStart section, or use a custom Docker image.
In some cases, our standard images library might not satisfy your requirements, or you might have an internal image you want to use for step execution. Using your own custom image gives you better control over what is installed on the runtime images. It can also speed up step execution since you can pre-install dependencies into the image.
You can configure a custom runtime image by using the configuration shown below. This can be specified at a pipeline or step level. If specified at both levels, the step configuration will take precedence.
pipelines: - name: pipe1 configuration: runtime: type: image image: custom: name: tag: options: "-e HOME=/root" registry: art # if custom image is private, an integration is required for authentication sourceRepository: # required if registry is Artifactory. e.g. docker-local region: # required if registry is AWS. e.g. us-east-1
docker runcommand. You also need to include the $HOME environment variable as shown if it is not already set in your image.
If your custom image is private, you will also need to create an integration with credentials for your Docker registry, and set additional values in the config:
Any custom runtime image specified for a step that will run in a Linux host node (Ubuntu, CentOS, or RHEL) needs to include this minimum set of components:
Any custom runtime image specified for a step that will run in a Windows Server host node needs to include this minimum set of components: