diff --git a/ansible/inventory.yml b/ansible/inventory.yml index c30071e31..6dbfac3c7 100644 --- a/ansible/inventory.yml +++ b/ansible/inventory.yml @@ -138,6 +138,9 @@ hosts: ubuntu1804_docker-x64-2: {ip: 159.89.183.200} ubuntu1804-x64-1: {ip: 178.128.181.213} + - equinix: + ubuntu2004_docker-arm64-1: {ip: 145.40.81.219} + - ibm: aix71-ppc64_be-3: ip: 169.48.22.38 diff --git a/ansible/plugins/inventory/nodejs_yaml.py b/ansible/plugins/inventory/nodejs_yaml.py index 162dae499..944fad1b7 100755 --- a/ansible/plugins/inventory/nodejs_yaml.py +++ b/ansible/plugins/inventory/nodejs_yaml.py @@ -46,7 +46,7 @@ 'type': ('infra', 'release', 'test'), # providers - validated for consistency - 'provider': ('azure', 'digitalocean', 'ibm', 'iinthecloud', 'joyent', + 'provider': ('azure', 'digitalocean', 'equinix', 'ibm', 'iinthecloud', 'joyent', 'linuxonecc', 'macstadium', 'marist', 'mininodes', 'msft', 'nearform', 'orka', 'osuosl', 'packetnet', 'rackspace', 'requireio', 'rzkh', 'scaleway', 'softlayer', 'voxer') diff --git a/ansible/roles/docker/templates/alpine311.Dockerfile.j2 b/ansible/roles/docker/templates/alpine311.Dockerfile.j2 index d5c63ff4e..a550acb1e 100644 --- a/ansible/roles/docker/templates/alpine311.Dockerfile.j2 +++ b/ansible/roles/docker/templates/alpine311.Dockerfile.j2 @@ -10,8 +10,8 @@ ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe ENV NODE_TEST_DIR /home/{{ server_user }}/tmp ENV OSTYPE linux-gnu ENV OSVARIANT docker -ENV DESTCPU x64 -ENV ARCH x64 +ENV DESTCPU {{ arch }} +ENV ARCH {{ arch }} RUN apk add --no-cache --upgrade apk-tools diff --git a/ansible/roles/docker/templates/alpine312.Dockerfile.j2 b/ansible/roles/docker/templates/alpine312.Dockerfile.j2 index c977bcd61..2581faff7 100644 --- a/ansible/roles/docker/templates/alpine312.Dockerfile.j2 +++ b/ansible/roles/docker/templates/alpine312.Dockerfile.j2 @@ -10,8 +10,8 @@ ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe ENV NODE_TEST_DIR /home/{{ server_user }}/tmp ENV OSTYPE linux-gnu ENV OSVARIANT docker -ENV DESTCPU x64 -ENV ARCH x64 +ENV DESTCPU {{ arch }} +ENV ARCH {{ arch }} RUN apk add --no-cache --upgrade apk-tools diff --git a/ansible/roles/docker/templates/ubi81.Dockerfile.j2 b/ansible/roles/docker/templates/ubi81.Dockerfile.j2 index 4a26499a4..eeb8db548 100644 --- a/ansible/roles/docker/templates/ubi81.Dockerfile.j2 +++ b/ansible/roles/docker/templates/ubi81.Dockerfile.j2 @@ -9,8 +9,8 @@ ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe ENV NODE_TEST_DIR /home/{{ server_user }}/tmp ENV OSTYPE linux-gnu ENV OSVARIANT docker -ENV DESTCPU x64 -ENV ARCH x64 +ENV DESTCPU {{ arch }} +ENV ARCH {{ arch }} # ccache is not in the default repositories so get it from EPEL 8. RUN dnf install --disableplugin=subscription-manager -y \ diff --git a/ansible/roles/docker/templates/ubuntu1604.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu1604.Dockerfile.j2 index 152accb0f..87a8ff7c5 100644 --- a/ansible/roles/docker/templates/ubuntu1604.Dockerfile.j2 +++ b/ansible/roles/docker/templates/ubuntu1604.Dockerfile.j2 @@ -10,8 +10,8 @@ ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe ENV NODE_TEST_DIR /home/{{ server_user }}/tmp ENV OSTYPE linux-gnu ENV OSVARIANT docker -ENV DESTCPU x64 -ENV ARCH x64 +ENV DESTCPU {{ arch }} +ENV ARCH {{ arch }} RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y \ ccache \ diff --git a/ansible/roles/docker/templates/ubuntu1604_arm_cross.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu1604_arm_cross.Dockerfile.j2 index 59bd90cc0..378b9bf21 100644 --- a/ansible/roles/docker/templates/ubuntu1604_arm_cross.Dockerfile.j2 +++ b/ansible/roles/docker/templates/ubuntu1604_arm_cross.Dockerfile.j2 @@ -50,8 +50,8 @@ ENV USER={{ server_user }} \ NODE_TEST_DIR=/home/{{ server_user }}/tmp \ OSTYPE=linux-gnu \ OSVARIANT=docker \ - DESTCPU=x64 \ - ARCH=x64 \ + DESTCPU={{ arch }} \ + ARCH={{ arch }} \ CCACHE_TEMPDIR=/home/{{ server_user }}/.ccache/{{ item.name }} CMD cd /home/{{ server_user }} \ diff --git a/ansible/roles/docker/templates/ubuntu1804.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu1804.Dockerfile.j2 index badbf33b6..ec5655eac 100644 --- a/ansible/roles/docker/templates/ubuntu1804.Dockerfile.j2 +++ b/ansible/roles/docker/templates/ubuntu1804.Dockerfile.j2 @@ -10,8 +10,8 @@ ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe ENV NODE_TEST_DIR /home/{{ server_user }}/tmp ENV OSTYPE linux-gnu ENV OSVARIANT docker -ENV DESTCPU x64 -ENV ARCH x64 +ENV DESTCPU {{ arch }} +ENV ARCH {{ arch }} RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y \ ccache \ diff --git a/ansible/roles/docker/templates/ubuntu1804_arm_cross.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu1804_arm_cross.Dockerfile.j2 index fbba85e56..7aaccb6dc 100644 --- a/ansible/roles/docker/templates/ubuntu1804_arm_cross.Dockerfile.j2 +++ b/ansible/roles/docker/templates/ubuntu1804_arm_cross.Dockerfile.j2 @@ -51,8 +51,8 @@ ENV USER={{ server_user }} \ NODE_TEST_DIR=/home/{{ server_user }}/tmp \ OSTYPE=linux-gnu \ OSVARIANT=docker \ - DESTCPU=x64 \ - ARCH=x64 \ + DESTCPU={{ arch }} \ + ARCH={{ arch }} \ CCACHE_TEMPDIR=/home/{{ server_user }}/.ccache/{{ item.name }} CMD cd /home/{{ server_user }} \ diff --git a/ansible/roles/docker/templates/ubuntu1804_sharedlibs.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu1804_sharedlibs.Dockerfile.j2 index a30796940..4661d020c 100644 --- a/ansible/roles/docker/templates/ubuntu1804_sharedlibs.Dockerfile.j2 +++ b/ansible/roles/docker/templates/ubuntu1804_sharedlibs.Dockerfile.j2 @@ -10,8 +10,8 @@ ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe ENV NODE_TEST_DIR /home/{{ server_user }}/tmp ENV OSTYPE linux-gnu ENV OSVARIANT docker -ENV DESTCPU x64 -ENV ARCH x64 +ENV DESTCPU {{ arch }} +ENV ARCH {{ arch }} ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && apt-get install apt-utils -y && \ diff --git a/ansible/roles/docker/templates/ubuntu2004.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu2004.Dockerfile.j2 new file mode 100644 index 000000000..09a0dc94d --- /dev/null +++ b/ansible/roles/docker/templates/ubuntu2004.Dockerfile.j2 @@ -0,0 +1,43 @@ +FROM ubuntu:20.04 + +ENV LC_ALL C +ENV USER {{ server_user }} +ENV JOBS {{ server_jobs | default(ansible_processor_vcpus) }} +ENV SHELL /bin/bash +ENV HOME /home/{{ server_user }} +ENV PATH /usr/lib/ccache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe +ENV NODE_TEST_DIR /home/{{ server_user }}/tmp +ENV OSTYPE linux-gnu +ENV OSVARIANT docker +ENV DESTCPU {{ arch }} +ENV ARCH {{ arch }} + +RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y \ + ccache \ + g++-8 \ + gcc-8 \ + git \ + openjdk-8-jre-headless \ + curl \ + python3-pip \ + libfontconfig1 + +RUN pip3 install tap2junit + +RUN addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }} + +RUN adduser --gid {{ server_user_gid.stdout_lines[0] }} --uid {{ server_user_uid.stdout_lines[0] }} --disabled-password --gecos {{ server_user }} {{ server_user }} + +VOLUME /home/{{ server_user }}/ /home/{{ server_user }}/.ccache + +USER iojs:iojs + +ENV CCACHE_TEMPDIR /home/iojs/.ccache/{{ item.name }} + +CMD cd /home/iojs \ + && curl https://ci.nodejs.org/jnlpJars/slave.jar -O \ + && java -Xmx{{ server_ram|default('128m') }} \ + -jar /home/{{ server_user }}/slave.jar \ + -jnlpUrl {{ jenkins_url }}/computer/{{ item.name }}/slave-agent.jnlp \ + -secret {{ item.secret }} diff --git a/ansible/roles/docker/templates/ubuntu2004_sharedlibs.Dockerfile.j2 b/ansible/roles/docker/templates/ubuntu2004_sharedlibs.Dockerfile.j2 new file mode 100644 index 000000000..f17290066 --- /dev/null +++ b/ansible/roles/docker/templates/ubuntu2004_sharedlibs.Dockerfile.j2 @@ -0,0 +1,108 @@ +FROM ubuntu:20.04 + +ENV LC_ALL C +ENV USER {{ server_user }} +ENV JOBS {{ server_jobs | default(ansible_processor_vcpus) }} +ENV SHELL /bin/bash +ENV HOME /home/{{ server_user }} +ENV PATH /usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe +ENV NODE_TEST_DIR /home/{{ server_user }}/tmp +ENV OSTYPE linux-gnu +ENV OSVARIANT docker +ENV DESTCPU {{ arch }} +ENV ARCH {{ arch }} +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get update && apt-get install apt-utils -y && \ + apt-get dist-upgrade -y && apt-get install -y \ + ccache \ + g++-8 \ + gcc-8 \ + git \ + openjdk-8-jre-headless \ + pkg-config \ + curl \ + python3-pip \ + libfontconfig1 + +RUN pip3 install tap2junit + +RUN addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }} + +RUN adduser --gid {{ server_user_gid.stdout_lines[0] }} --uid {{ server_user_uid.stdout_lines[0] }} --disabled-password --gecos {{ server_user }} {{ server_user }} + +ENV ICU64DIR=/opt/icu-64.1 \ + ICU65DIR=/opt/icu-65.1 \ + ICU67DIR=/opt/icu-67.1 \ + ICU68DIR=/opt/icu-68.2 \ + ICU69DIR=/opt/icu-69.1 + +RUN for ICU_ENV in $(env | grep ICU..DIR); do \ + ICU_PREFIX=$(echo $ICU_ENV | cut -d '=' -f 2) && \ + ICU_VERSION=$(echo $ICU_PREFIX | cut -d '-' -f 2) && \ + ICU_MAJOR=$(echo $ICU_VERSION | cut -d '.' -f 1) && \ + ICU_MINOR=$(echo $ICU_VERSION | cut -d '.' -f 2) && \ + mkdir -p /tmp/icu-$ICU_VERSION && \ + cd /tmp/icu-$ICU_VERSION && \ + curl -sL "https://github.com/unicode-org/icu/releases/download/release-$ICU_MAJOR-$ICU_MINOR/icu4c-${ICU_MAJOR}_$ICU_MINOR-src.tgz" | tar zxv --strip=1 && \ + cd source && \ + ./runConfigureICU Linux --prefix=$ICU_PREFIX && \ + make -j $JOBS && \ + make install && \ + rm -rf /tmp/icu-$ICU_VERSION; \ + done + +ENV OPENSSL110DIR /opt/openssl-1.1.0l + +RUN mkdir -p /tmp/openssl_1.1.0l && \ + cd /tmp/openssl_1.1.0l && \ + curl -sL https://www.openssl.org/source/openssl-1.1.0l.tar.gz | tar zxv --strip=1 && \ + ./config --prefix=$OPENSSL110DIR && \ + make -j 6 && \ + make install && \ + rm -rf /tmp/openssl_1.1.0l + +ENV OPENSSL111DIR /opt/openssl-1.1.1k + +RUN mkdir -p /tmp/openssl_1.1.1k && \ + cd /tmp/openssl_1.1.1k && \ + curl -sL https://www.openssl.org/source/openssl-1.1.1k.tar.gz | tar zxv --strip=1 && \ + ./config --prefix=$OPENSSL111DIR && \ + make -j 6 && \ + make install && \ + rm -rf /tmp/openssl_1.1.1k + +ENV OPENSSL300DIR /opt/openssl-3.0.0 + +RUN mkdir -p /tmp/openssl_3.0.0 && \ + cd /tmp/openssl_3.0.0 && \ + git clone https://github.com/quictls/openssl.git -b openssl-3.0.0-alpha16+quic --depth 1 && \ + cd openssl && \ + ./config --prefix=$OPENSSL300DIR && \ + make -j 6 && \ + make install && \ + rm -rf /tmp/openssl_3.0.0 + +ENV ZLIB12DIR /opt/zlib_1.2.11 + +RUN mkdir -p /tmp/zlib_1.2.11 && \ + cd /tmp/zlib_1.2.11 && \ + curl -sL https://zlib.net/zlib-1.2.11.tar.gz | tar zxv --strip=1 && \ + ./configure --prefix=$ZLIB12DIR && \ + make -j 6 && \ + make install && \ + rm -rf /tmp/zlib_1.2.11 + +VOLUME /home/{{ server_user }}/ /home/{{ server_user }}/.ccache + +USER iojs:iojs + +ENV CCACHE_TEMPDIR /home/iojs/.ccache/{{ item.name }} + +CMD cd /home/iojs \ + && curl https://ci.nodejs.org/jnlpJars/slave.jar -O \ + && java -Xmx{{ server_ram|default('128m') }} \ + -jar /home/{{ server_user }}/slave.jar \ + -jnlpUrl {{ jenkins_url }}/computer/{{ item.name }}/slave-agent.jnlp \ + -secret {{ item.secret }} diff --git a/jenkins/scripts/VersionSelectorScript.groovy b/jenkins/scripts/VersionSelectorScript.groovy index cd1ebdeac..53f260c5f 100644 --- a/jenkins/scripts/VersionSelectorScript.groovy +++ b/jenkins/scripts/VersionSelectorScript.groovy @@ -35,6 +35,7 @@ def buildExclusions = [ [ /^ubuntu1404-64/, anyType, gte(12) ], [ /^ubuntu1604-32/, anyType, gte(10) ], // 32-bit linux for <10 only [ /^ubuntu1604-64/, anyType, gte(16) ], + [ /^ubuntu2004-64/, anyType, lt(13) ], // Ubuntu 20 doesn't have Python 2 [ /^alpine-latest-x64$/, anyType, lt(13) ], // Alpine 3.12 doesn't have Python 2 // Linux PPC LE ------------------------------------------