From 6a3f4b00f1a06443299ede287dcc0d8ca43002ba Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Tue, 7 Apr 2020 15:18:11 -0700 Subject: [PATCH 1/7] tools: more host categories --- tools/build-p-ssh-hosts.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/build-p-ssh-hosts.sh b/tools/build-p-ssh-hosts.sh index 93a53eb9f..cb086425e 100755 --- a/tools/build-p-ssh-hosts.sh +++ b/tools/build-p-ssh-hosts.sh @@ -21,11 +21,13 @@ grep -- 'armv7l_pi2' hosts/all > hosts/armv7l_pi2 grep -- 'centos6-x64' hosts/all > hosts/centos6-x64 grep -- 'centos7-ppc64_le' hosts/all > hosts/centos7-ppc64_le grep -- 'centos7-ppc64_le' hosts/all > hosts/centos7-ppc64_le +grep -- 'centos7' hosts/all > hosts/centos7 grep -- 'digitalocean' hosts/all > hosts/digitalocean grep -- 'infra-' hosts/all > hosts/infra grep -- 'joyent' hosts/all > hosts/joyent grep -- 'release-' hosts/all > hosts/release grep -- 'rhel7-s390x' hosts/all > hosts/rhel7-s390x +grep -- 'rhel7.*-s390x' hosts/all > hosts/rhel7x-s390x grep -- 'smartos' hosts/all > hosts/smartos grep -- 'softlayer' hosts/all > hosts/softlayer grep -- 'test-' hosts/all > hosts/test From 049ed10bc1fb93b232cf128cc33a5b597f922f71 Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Fri, 3 Apr 2020 13:22:42 -0700 Subject: [PATCH 2/7] ansible: install devtoolset-8 on centos7 Refs: https://github.com/nodejs/build/issues/2242 --- .../baselayout/tasks/partials/repo/centos7.yml | 15 ++++----------- ansible/roles/baselayout/vars/main.yml | 2 +- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/ansible/roles/baselayout/tasks/partials/repo/centos7.yml b/ansible/roles/baselayout/tasks/partials/repo/centos7.yml index ae6c3418d..e9771a6b6 100644 --- a/ansible/roles/baselayout/tasks/partials/repo/centos7.yml +++ b/ansible/roles/baselayout/tasks/partials/repo/centos7.yml @@ -12,20 +12,12 @@ state: present -- name: centos7 | install scl for devtoolset-6 - when: "arch != 'arm64' and arch != 'ppc64'" +- name: centos7 | install scl for devtoolset-6, devtoolset-8 + when: "arch != 'arm64'" yum: name: centos-release-scl state: present -- name: centos7 | ppc64 | install sclo7 devtoolset-6 - when: "arch == 'ppc64'" - yum_repository: - name: sclo7-devtoolset-6 - description: cbs.centos.org sclo7-devtoolset-6-rh-release - baseurl: https://cbs.centos.org/repos/sclo7-devtoolset-6-rh-release/$basearch/os/ - gpgcheck: no - - name: centos7 | aarch64 | install sclo repo when: "arch == 'arm64'" copy: @@ -40,7 +32,8 @@ dest: "/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo" mode: 0644 -- stat: path=/usr/local/bin/python3.7 +- stat: + path: /usr/local/bin/python3.7 register: build_python37 - name: centos7 | ppc64 | download python 3.7 diff --git a/ansible/roles/baselayout/vars/main.yml b/ansible/roles/baselayout/vars/main.yml index a6edd3512..b6534ace2 100644 --- a/ansible/roles/baselayout/vars/main.yml +++ b/ansible/roles/baselayout/vars/main.yml @@ -43,7 +43,7 @@ packages: { centos7_x64: ['git2u','centos-release-scl',], # centos-release-scl is required to enable SCLo # but we do it manually in partials/repo/centos7.yml for arm64 centos7: [ - 'bzip2-devel,openssl-devel,ccache,gcc-c++,devtoolset-6,sudo,git,devtoolset-6-libatomic-devel,zlib-devel,libffi-devel', + 'bzip2-devel,openssl-devel,ccache,gcc-c++,devtoolset-6,sudo,git,devtoolset-6-libatomic-devel,zlib-devel,libffi-devel,devtoolset-8,devtoolset-8-libatomic-devel', ], aix: [ From 9072ef84bf7864742cc2bd91ee16e1542c3b98a5 Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Fri, 3 Apr 2020 15:19:20 -0700 Subject: [PATCH 3/7] ansible: name for git package differs on centos7 When trying to ansible test-rackspace-centos7-x64-1 I found that it can't install git, because that's 1.8, and it has git216 installed. So, git can't be shared by all centos7 platforms, the name differs, move into a more specific package list. --- ansible/roles/baselayout/vars/main.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ansible/roles/baselayout/vars/main.yml b/ansible/roles/baselayout/vars/main.yml index b6534ace2..dc3617a31 100644 --- a/ansible/roles/baselayout/vars/main.yml +++ b/ansible/roles/baselayout/vars/main.yml @@ -39,11 +39,14 @@ packages: { 'ccache,git2u,gcc-c++,devtoolset-6,sudo', # even need gcc on centos6 so ccache has symlinks ], + # centos-release-scl is required to enable SCLo but we do it manually in + # partials/repo/centos7.yml for arm64 centos7_arm64: ['git'], # git2u not available for aarch64 (yet) - centos7_x64: ['git2u','centos-release-scl',], # centos-release-scl is required to enable SCLo - # but we do it manually in partials/repo/centos7.yml for arm64 + centos7_x64: ['git2u,centos-release-scl'], + centos7_ppc64: ['git'], + centos7: [ - 'bzip2-devel,openssl-devel,ccache,gcc-c++,devtoolset-6,sudo,git,devtoolset-6-libatomic-devel,zlib-devel,libffi-devel,devtoolset-8,devtoolset-8-libatomic-devel', + 'bzip2-devel,openssl-devel,ccache,gcc-c++,devtoolset-6,sudo,devtoolset-6-libatomic-devel,zlib-devel,libffi-devel,devtoolset-8,devtoolset-8-libatomic-devel', ], aix: [ From dbf36f69e2dbfee08669d0e1397c504145263a7e Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Fri, 3 Apr 2020 15:48:01 -0700 Subject: [PATCH 4/7] ansible: no arm devtoolset-6-libatomic-devel It isn't there now, so probably doesn't have to be, and it doesn't seem to be available, so move it out of the common packages. --- ansible/roles/baselayout/vars/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ansible/roles/baselayout/vars/main.yml b/ansible/roles/baselayout/vars/main.yml index dc3617a31..3fa3a71c9 100644 --- a/ansible/roles/baselayout/vars/main.yml +++ b/ansible/roles/baselayout/vars/main.yml @@ -42,11 +42,11 @@ packages: { # centos-release-scl is required to enable SCLo but we do it manually in # partials/repo/centos7.yml for arm64 centos7_arm64: ['git'], # git2u not available for aarch64 (yet) - centos7_x64: ['git2u,centos-release-scl'], - centos7_ppc64: ['git'], + centos7_x64: ['devtoolset-6-libatomic-devel,git2u,centos-release-scl'], + centos7_ppc64: ['devtoolset-6-libatomic-devel,git'], centos7: [ - 'bzip2-devel,openssl-devel,ccache,gcc-c++,devtoolset-6,sudo,devtoolset-6-libatomic-devel,zlib-devel,libffi-devel,devtoolset-8,devtoolset-8-libatomic-devel', + 'bzip2-devel,openssl-devel,ccache,gcc-c++,devtoolset-6,sudo,zlib-devel,libffi-devel,devtoolset-8,devtoolset-8-libatomic-devel', ], aix: [ From 34ae1938bb5d82ba142195217f4bf545af52a8ef Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Mon, 6 Apr 2020 12:37:10 -0700 Subject: [PATCH 5/7] Select devtoolset-8 for centos7-ppc64 --- jenkins/scripts/select-compiler.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/jenkins/scripts/select-compiler.sh b/jenkins/scripts/select-compiler.sh index ffbab530b..ec43b9338 100644 --- a/jenkins/scripts/select-compiler.sh +++ b/jenkins/scripts/select-compiler.sh @@ -38,6 +38,17 @@ if [ "$SELECT_ARCH" = "PPC64LE" ]; then echo "Setting compiler for Node version $NODEJS_MAJOR_VERSION on ppc64le" case $NODE_NAME in + *centos7* ) + if [ "$NODEJS_MAJOR_VERSION" -gt "13" ]; then + # Setup devtoolset-8, sets LD_LIBRARY_PATH, PATH, etc. + . /opt/rh/devtoolset-8/enable + export CC="ccache ppc64le-redhat-linux-gcc" + export CXX="ccache ppc64le-redhat-linux-g++" + export LINK="ppc64le-redhat-linux-g++" + echo "Compiler set to devtoolset-8" + return + fi + ;; *centos7* ) if [ "$NODEJS_MAJOR_VERSION" -gt "9" ]; then # Setup devtoolset-6, sets LD_LIBRARY_PATH, PATH, etc. From 0ec6786d7e3d70ce1ad54643c49e8be285adbe1f Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Mon, 6 Apr 2020 15:22:53 -0700 Subject: [PATCH 6/7] Select devtoolset-8 for centos7-64/centos7-arm64 In addition, configuration changes were made in CI. --- jenkins/scripts/VersionSelectorScript.groovy | 9 ++++++--- jenkins/scripts/select-compiler.sh | 8 ++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/jenkins/scripts/VersionSelectorScript.groovy b/jenkins/scripts/VersionSelectorScript.groovy index 1a5f98b42..b8e7c9934 100644 --- a/jenkins/scripts/VersionSelectorScript.groovy +++ b/jenkins/scripts/VersionSelectorScript.groovy @@ -21,9 +21,11 @@ def buildExclusions = [ // Linux ------------------------------------------------- [ /^centos6/, releaseType, lt(8) ], [ /^centos6/, anyType, gte(12) ], - [ /centos[67]-(arm)?(64|32)-gcc48/, anyType, gte(10) ], - [ /centos[67]-(arm)?(64|32)-gcc6/, anyType, lt(10) ], - [ /centos6-32-gcc6/, releaseType, gte(10) ], // 32-bit linux for <10 only + [ /^centos[67]-(arm)?(64|32)-gcc48/,anyType, gte(10) ], + [ /^centos[67]-(arm)?(64|32)-gcc6/, anyType, lt(10) ], + [ /^centos[67]-(arm)?(64|32)-gcc6/, anyType, gte(14) ], // 14.x: gcc6 builds stop + [ /^centos7-(arm)?(64)-gcc8/, anyType, lt(14) ], // 14.x: gcc8 builds start + [ /^centos6-32-gcc6/, releaseType, gte(10) ], // 32-bit linux for <10 only [ /^centos7-64/, releaseType, lt(12) ], [ /debian8-x86/, anyType, gte(10) ], // 32-bit linux for <10 only [ /debian8/, anyType, gte(13) ], @@ -48,6 +50,7 @@ def buildExclusions = [ [ /^cross-compiler-armv[67]-gcc-4.9/, anyType, lt(10) ], [ /^cross-compiler-armv[67]-gcc-4.9/, anyType, gte(12) ], [ /^cross-compiler-armv[67]-gcc-6/, anyType, lt(12) ], + [ /^ubuntu1604-arm64/, anyType, gte(14) ], // Windows ----------------------------------------------- // https://github.com/nodejs/build/blob/master/doc/windows-visualstudio-supported-versions.md diff --git a/jenkins/scripts/select-compiler.sh b/jenkins/scripts/select-compiler.sh index ec43b9338..3294a2ce4 100644 --- a/jenkins/scripts/select-compiler.sh +++ b/jenkins/scripts/select-compiler.sh @@ -154,6 +154,10 @@ elif [ "$SELECT_ARCH" = "X64" ]; then echo "Setting compiler for Node version $NODEJS_MAJOR_VERSION on x64" case $nodes in + centos7-64-gcc8 ) + . /opt/rh/devtoolset-8/enable + echo "Compiler set to devtoolset-8" + ;; centos6-64-gcc48 ) . /opt/rh/devtoolset-2/enable echo "Compiler set to devtoolset-2" @@ -177,6 +181,10 @@ elif [ "$SELECT_ARCH" = "ARM64" ]; then case $nodes in + centos7-arm64-gcc8 ) + . /opt/rh/devtoolset-8/enable + echo "Compiler set to devtoolset-8" + ;; centos[67]-arm64-gcc6 ) . /opt/rh/devtoolset-6/enable echo "Compiler set to devtoolset-6" From 3753b6b9301e959c3021ae0b5bce82cbde0183f8 Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Tue, 7 Apr 2020 16:05:45 -0700 Subject: [PATCH 7/7] Select devtoolset-8 for rhel7-s390x --- jenkins/scripts/VersionSelectorScript.groovy | 1 + jenkins/scripts/select-compiler.sh | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/jenkins/scripts/VersionSelectorScript.groovy b/jenkins/scripts/VersionSelectorScript.groovy index b8e7c9934..7baf6f46c 100644 --- a/jenkins/scripts/VersionSelectorScript.groovy +++ b/jenkins/scripts/VersionSelectorScript.groovy @@ -37,6 +37,7 @@ def buildExclusions = [ // Linux PPC LE ------------------------------------------ [ /^centos7-ppcle/, anyType, lt(10) ], [ /^ppcle-ubuntu/, releaseType, gte(10) ], + [ /^ppcle-ubuntu/, anyType, gte(14) ], // Linux S390X -------------------------------------------- [ /s390x/, anyType, lt(6) ], diff --git a/jenkins/scripts/select-compiler.sh b/jenkins/scripts/select-compiler.sh index 3294a2ce4..04bf6aaf3 100644 --- a/jenkins/scripts/select-compiler.sh +++ b/jenkins/scripts/select-compiler.sh @@ -86,7 +86,14 @@ elif [ "$SELECT_ARCH" = "S390X" ]; then echo "Setting compiler for Node version $NODEJS_MAJOR_VERSION on s390x" - if [ "$NODEJS_MAJOR_VERSION" -gt "9" ]; then + if [ "$NODEJS_MAJOR_VERSION" -gt "13" ]; then + # Setup devtoolset-8, sets LD_LIBRARY_PATH, PATH, etc. + . /opt/rh/devtoolset-8/enable + export CC="ccache s390x-redhat-linux-gcc" + export CXX="ccache s390x-redhat-linux-g++" + export LINK="s390x-redhat-linux-g++" + echo "Compiler set to devtoolset-8" + elif [ "$NODEJS_MAJOR_VERSION" -gt "9" ]; then # Setup devtoolset-6, sets LD_LIBRARY_PATH, PATH, etc. . /opt/rh/devtoolset-6/enable export CC="ccache s390x-redhat-linux-gcc"