Skip to content
Permalink
master
Go to file
 
 
Cannot retrieve contributors at this time
87 lines (62 sloc) 4.07 KB

Jenkins on Jenkins

This document covers the services available on ci.jenkins.io and our internal trusted.ci instance.

Node Labels

We use node labels to define capabilities of the nodes in our Jenkins clusters. These are conventional and are to be used when referencing nodes, e.g. in the Jenkinsfile.

  • linux : A Linux (Ubuntu 18.04 LTS) instance (alias of java)

  • docker : A Linux (Ubuntu 18.04 LTS) instance with a running Docker daemon

  • windows : A Windows 2019 provisioned on Azure or AWS

  • highmem : A Linux (Ubuntu 18.04 LTS) instance with 4vCPU/28GB RAM (Standard A6). Please avoid unless running ATH or other high-memory capacity instances.

  • windock : A Windows 2019 provisioned on Azure or AWS that is able to run Windows Docker images

  • puppet : A Linux (Ubuntu 14.04 LTS) instance that is managed by this Puppet code

Node Labels - Processors

  • amd64 : An agent running an AMD or Intel 64 bit processor

  • arm64 : An agent running an ARM 64 bit processor on AWS (Amazon Graviton)

  • ppc64le : An agent running an IBM PowerPC 64 bit processor

  • s390x : An agent running an IBM System 390x (Z series) processor

Container Agents

We have Azure Container Instances deployed which can offer dramatically reduced Pipeline "in-queue" times. Currently these are only available on ci.jenkins.io, and are not yet available on trusted.ci or cert.ci.

The agent images are all built from the jnlp-agents repository.

To use a container agent, specify one of the following labels:

  • maven: A Maven 3 (Debian) container with JDK8

  • maven-windows: A maven 3 Windows container with JDK8

  • maven-11: A maven 3 (Debian) container with JDK11

  • maven-11-windows: A maven 3 Windows container with JDK11

  • node: A Node (Alpine) container

  • ruby : A Ruby 2 (Debian) container

  • alpine : An Alpine-based container with no additional tooling.

Tool Installers

We generally prefer to use the Docker Pipeline plugin for system dependencies in the Jenkinsfile but it’s also possible to use some basic, pre-configured, tool installers.

  • jdk7 A recent OpenJDK 7 version

  • jdk8 A recent OpenJDK 8 version

  • jdk11 A recent OpenJDK 11 version from java.net

  • mvn A recent Maven 3.x version

  • groovy A recent Groovy 2.x version

Pipeline plugins

  • Pipeline

  • Docker Pipeline

  • Blue Ocean

Caching mirrors

https://repo.jenkins-ci.org/nodejs-dist/ and https://repo.jenkins-ci.org/npm-dist/ mirror https://nodejs.org/dist/ and http://registry.npmjs.org/npm/-/, respectively, so these may be used from frontend-maven-plugin, as happens automatically in the plugin parent POM as of 2.29. (There is currently no mirror for https://github.com/yarnpkg/yarn/releases/download/, the yarn distribution site.)

There is also a mirror of the npm package repository; to use it:

npm config set registry https://repo.jenkins-ci.org/api/npm/npm/

or

yarn config set -- --registry https://repo.jenkins-ci.org/api/npm/npm/

Additionally, https://repo.azure.jenkins.io/ mirrors all non-snapshot downloads from https://repo.jenkins-ci.org/. For example, to use this from Maven, pass -s settings-azure.xml:

settings-azure.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <mirrors>
        <mirror>
            <id>azure</id>
            <url>https://repo.azure.jenkins.io/public/</url>
            <mirrorOf>repo.jenkins-ci.org</mirrorOf>
        </mirror>
    </mirrors>
</settings>
You can’t perform that action at this time.