diff --git a/ansible/group_vars/release.yml b/ansible/group_vars/release.yml index 3ad7b5d28..5592dbcd2 100644 --- a/ansible/group_vars/release.yml +++ b/ansible/group_vars/release.yml @@ -3,4 +3,5 @@ jenkins_url: "https://ci-release.nodejs.org" jenkins_worker_jar: "https://ci.nodejs.org/jnlpJars/slave.jar" server_user: "iojs" home: "/home" +git_reference_path: "{{ home }}/{{ server_user }}/.ccache/node.shared.reference" remote_env: {} diff --git a/ansible/group_vars/test.yml b/ansible/group_vars/test.yml index b2da46ec8..3165d07be 100644 --- a/ansible/group_vars/test.yml +++ b/ansible/group_vars/test.yml @@ -2,4 +2,5 @@ jenkins_url: "https://ci.nodejs.org" jenkins_worker_jar: "{{ jenkins_url }}/jnlpJars/slave.jar" server_user: iojs home: "/home" +git_reference_path: "{{ home }}/{{ server_user }}/git/io.js.reference" remote_env: {} diff --git a/ansible/inventory.yml b/ansible/inventory.yml index 4775d6a6f..37b9ceab5 100644 --- a/ansible/inventory.yml +++ b/ansible/inventory.yml @@ -35,8 +35,8 @@ hosts: - release: - digitalocean: - centos6-x86-1: {ip: 162.243.248.28} centos7-x64-1: {ip: 138.68.12.105} + rhel8-x64-1: {ip: 159.203.115.217} - equinix: centos7-arm64-1: {ip: 139.178.85.110, server_jobs: 32} @@ -47,6 +47,8 @@ hosts: server_jobs: 6 rhel7-s390x-1: {ip: 148.100.86.101, user: linux1} rhel8-s390x-1: {ip: 148.100.84.27, user: linux1} + rhel8-x64-1: {ip: 169.62.77.228} + rhel8-x64-2: {ip: 50.97.245.10} - iinthecloud: ibmi73-ppc64_be-1: {ip: 65.183.160.62, user: nodejs} @@ -100,12 +102,6 @@ hosts: rvagg-debian10-armv6l_pi1p-1: {ip: 192.168.2.40, user: pi, alias: iojs-ns-pi1p-1 } andineck-debian10-armv6l_pi1p-1: {ip: 192.168.2.41, user: pi, alias: iojs-ns-pi1p-2 } - - softlayer: - centos6-x64-1: {ip: 50.97.245.10} - - - - - test: @@ -130,8 +126,8 @@ hosts: fedora34-x64-2: {ip: 159.203.98.84} freebsd12-x64-1: {ip: 45.55.90.237, user: freebsd} freebsd12-x64-2: {ip: 107.170.28.213, user: freebsd} + rhel8-x64-1: {ip: 161.35.139.78, build_test_v8: yes} ubuntu1404-x64-1: {ip: 45.55.252.223} - ubuntu1404-x86-1: {ip: 159.203.115.220} ubuntu1604-x86-1: {ip: 159.203.77.233} ubuntu1604-x86-2: {ip: 104.131.191.135} ubuntu1804_docker-x64-1: {ip: 134.209.55.216} @@ -157,6 +153,9 @@ hosts: rhel8-s390x-2: {ip: 148.100.84.240, user: linux1, build_test_v8: yes} rhel8-s390x-3: {ip: 148.100.84.56, user: linux1, build_test_v8: yes} rhel8-s390x-4: {ip: 148.100.84.150, user: linux1, build_test_v8: yes} + rhel8-x64-1: {ip: 169.61.75.51, build_test_v8: yes} + rhel8-x64-2: {ip: 169.61.75.58, build_test_v8: yes} + rhel8-x64-3: {ip: 52.117.26.13, build_test_v8: yes} ubuntu1804-x64-1: {ip: 52.117.26.14, alias: jenkins-workspace-6} ubuntu1804-x64-2: {ip: 50.97.245.9} @@ -361,8 +360,6 @@ hosts: kahwee-debian10-arm64_pi3-1: {ip: 192.168.2.90, user: pi, alias: iojs-ns-pi3-11 } - softlayer: - centos6-x64-1: {ip: 169.61.75.51} - centos6-x64-2: {ip: 169.61.75.58} centos7-x64-1: {ip: 50.23.85.250} debian9-x64-1: {ip: 169.60.150.88} debian10-x64-1: {ip: 169.44.16.126} diff --git a/ansible/roles/bootstrap/tasks/partials/rhel8.yml b/ansible/roles/bootstrap/tasks/partials/rhel8.yml index 2be829594..69fdc12a4 100644 --- a/ansible/roles/bootstrap/tasks/partials/rhel8.yml +++ b/ansible/roles/bootstrap/tasks/partials/rhel8.yml @@ -2,6 +2,14 @@ # Red Hat Enterprise Linux 8 +# Set the hostname as it will be used by subscription manager. +- name: gather facts + setup: + +- name: set hostname + ansible.builtin.hostname: + name: "{{ inventory_hostname | regex_replace('_', '--') }}" + - name: register Red Hat subscription community.general.redhat_subscription: activationkey: "{{ type }}" diff --git a/ansible/roles/build-test-v8/tasks/partials/rhel8.yml b/ansible/roles/build-test-v8/tasks/partials/rhel8-s390x.yml similarity index 100% rename from ansible/roles/build-test-v8/tasks/partials/rhel8.yml rename to ansible/roles/build-test-v8/tasks/partials/rhel8-s390x.yml diff --git a/ansible/roles/build-test-v8/tasks/partials/rhel8-x64.yml b/ansible/roles/build-test-v8/tasks/partials/rhel8-x64.yml new file mode 100644 index 000000000..a2166275c --- /dev/null +++ b/ansible/roles/build-test-v8/tasks/partials/rhel8-x64.yml @@ -0,0 +1,29 @@ +--- + +# +# Install packages for V8 builds. +# + +# V8 builds still require Python 2. +- name: install packages required to build V8 + ansible.builtin.dnf: + name: ['python2', 'python2-pip'] + state: present + +- name: update python package alternatives + community.general.alternatives: + link: /usr/bin/python + name: python + path: /usr/bin/python2 + +- name: install dependencies for V8 build tools (Python 2) + ansible.builtin.pip: + executable: pip2 + name: ['httplib2', 'six'] + state: present + +- name: install dependencies for V8 build tools (Python 3) + ansible.builtin.pip: + executable: pip-3 + name: ['httplib2', 'six'] + state: present diff --git a/ansible/roles/java-base/tasks/main.yml b/ansible/roles/java-base/tasks/main.yml index bc1fe57c4..5bf428526 100644 --- a/ansible/roles/java-base/tasks/main.yml +++ b/ansible/roles/java-base/tasks/main.yml @@ -39,12 +39,13 @@ - name: install java when: - - java.rc > 0 - not os|startswith("zos") - not os|startswith("macos") + notify: + - restart Jenkins package: name: "{{ java_package_name }}" - state: present + state: latest use: "{{ os|startswith(\"ibmi\")|ternary(\"yum\", omit) }}" - name: install java tap (macOS) @@ -144,6 +145,8 @@ src: "/opt/{{ adoptopenjdk_unpacked.files[0].split('/')[0] }}/bin/java" dest: "/usr/bin/java" state: link + notify: + - restart Jenkins when: - use_adoptopenjdk == True - update_adoptopenjdk == True diff --git a/ansible/roles/jenkins-worker/tasks/main.yml b/ansible/roles/jenkins-worker/tasks/main.yml index 8d575bf40..f037e7fab 100644 --- a/ansible/roles/jenkins-worker/tasks/main.yml +++ b/ansible/roles/jenkins-worker/tasks/main.yml @@ -208,6 +208,25 @@ runAsciiBashExists.stat.exists == False shell: "sh {{ home }}/{{ server_user }}/gen_runAsciiBash.sh" +# We should probably create a git reference repository for all hosts but +# limit for now to newer ones where we know we have enough disk space. +- name: create directory for git reference repository + ansible.builtin.file: + group: "{{ server_user }}" + owner: "{{ server_user }}" + path: "{{ git_reference_path | dirname }}" + state: directory + when: os == 'rhel8' + +- name: create git reference repository + ansible.builtin.command: + chdir: "{{ git_reference_path | dirname }}" + cmd: git clone --mirror https://github.com/nodejs/node "{{ git_reference_path | basename }}" + creates: "{{ git_reference_path }}" + become: yes + become_user: "{{ server_user }}" + when: os == 'rhel8' + - name: render init script into place notify: restart Jenkins template: diff --git a/jenkins/scripts/VersionSelectorScript.groovy b/jenkins/scripts/VersionSelectorScript.groovy index cf43db153..337924036 100644 --- a/jenkins/scripts/VersionSelectorScript.groovy +++ b/jenkins/scripts/VersionSelectorScript.groovy @@ -27,6 +27,7 @@ def buildExclusions = [ [ /^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) ], + [ /^centos7-64/, releaseType, gte(18) ], [ /debian8-x86/, anyType, gte(10) ], // 32-bit linux for <10 only [ /debian8/, anyType, gte(13) ], [ /debian9/, anyType, gte(16) ], @@ -129,6 +130,8 @@ def buildExclusions = [ // Source / headers / docs ------------------------------- [ /^centos7-release-sources$/, releaseType, lt(10) ], + [ /^centos7-release-sources$/, releaseType, gte(18) ], + [ /^rhel8-release-sources$/, releaseType, lt(18) ], // ------------------------------------------------------- ]