Skip to content

Commit e93b526

Browse files
author
Ash Cripps
authored
Add M1 macs (#2565)
* ansible: add support for apple sillicon * ansible: add M1 Macs Also clean up some out of date machines * ansible: Add new m1 macs * clean up inventory file * update broken steps * fixup! update broken steps * ansible: change archtype in jenkins start script * fixup! ansible: change archtype in jenkins start script * add missing slash * fixup some script errors * ansible: remove DTKs
1 parent 371bb76 commit e93b526

File tree

9 files changed

+58
-26
lines changed

9 files changed

+58
-26
lines changed

ansible/inventory.yml

+19-12
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,13 @@ hosts:
5151
ubuntu1804_docker-x64-1: {ip: 147.75.88.56, user: ubuntu}
5252

5353
- macstadium:
54-
macos10.11-x64-1: {ip: 207.254.58.162, port: 10013, user: administrator}
55-
macos10.10-x64-1: {ip: 207.254.58.162, port: 10014, user: administrator}
54+
macos11.0-arm64-1:
55+
ansible_python_interpreter: /usr/bin/python3
56+
ip: 207.254.38.74
57+
user: administrator
58+
remote_env:
59+
PATH: /opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
60+
server_jobs: 6
5661

5762
- marist:
5863
zos24-s390x-1: {ip: 148.100.36.157, user: unix1}
@@ -151,8 +156,18 @@ hosts:
151156
ubuntu1804-x64-1: {ip: 147.75.88.51, user: ubuntu}
152157

153158
- macstadium:
154-
macos11.0-arm64-1: {ip: 199.7.163.9, user: administrator}
155-
macos11.0-arm64-2: {ip: 199.7.163.10, user: administrator}
159+
macos11.0-arm64-3:
160+
ansible_python_interpreter: /usr/bin/python3
161+
ip: 207.254.38.86
162+
user: administrator
163+
remote_env:
164+
PATH: /opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
165+
macos11.0-arm64-4:
166+
ansible_python_interpreter: /usr/bin/python3
167+
ip: 207.254.38.89
168+
user: administrator
169+
remote_env:
170+
PATH: /opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
156171

157172
- marist:
158173
zos24-s390x-1:
@@ -185,14 +200,6 @@ hosts:
185200
ubuntu1604-arm64_odroid_c2-2: {ip: 70.167.220.148}
186201
ubuntu1604-arm64_odroid_c2-3: {ip: 70.167.220.149, user: odroid}
187202

188-
- macstadium:
189-
macos10.10-x64-1: {ip: 207.254.58.162, port: 10005, user: administrator}
190-
macos10.10-x64-2: {ip: 207.254.58.162, port: 10006, user: administrator}
191-
macos10.11-x64-1: {ip: 207.254.58.162, port: 10003, user: administrator}
192-
macos10.11-x64-2: {ip: 207.254.58.162, port: 10004, user: administrator}
193-
macos10.12-x64-1: {ip: 207.254.58.162, port: 10001, user: administrator}
194-
macos10.12-x64-2: {ip: 207.254.58.162, port: 10002, user: administrator}
195-
196203
- msft:
197204
win10_vs2017-arm64-1: {}
198205
win10_vs2017-arm64-2: {}

ansible/playbooks/jenkins/worker/create.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
- "!test-ibm-ubuntu1804-x64-1"
8585
tasks:
8686
- name: remove node and npm packages
87-
when: not os|startswith("win") and not os|startswith("zos") and not os|startswith("ibmi")
87+
when: not os|startswith("win") and not os|startswith("zos") and not os|startswith("ibmi") and os != "macos11.0"
8888
package:
8989
name: "{{ package }}"
9090
state: absent

ansible/roles/baselayout/tasks/main.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
- name: install packages (macos)
8787
when: os|startswith("macos")
8888
become_user: administrator
89-
package: name="{{ package }}" state=present
89+
community.general.homebrew: name="{{ package }}" state=present
9090
loop_control:
9191
loop_var: package
9292
with_items:

ansible/roles/baselayout/tasks/partials/ccache/macos.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
- name: "ccache : add ccache to the path (macos)"
99
when: ccache_mac.rc == 1
1010
lineinfile:
11-
dest: "etc/paths"
11+
dest: "/etc/paths"
1212
insertbefore: BOF
13-
line: "usr/local/opt/ccache/libexec"
13+
line: "/usr/local/opt/ccache/libexec"

ansible/roles/java-base/tasks/main.yml

+15-3
Original file line numberDiff line numberDiff line change
@@ -53,18 +53,30 @@
5353

5454
- name: install java tap (macOS)
5555
become_user: administrator
56-
when: java.rc > 0 and os|startswith("macos")
56+
when: java.rc > 0 and os|startswith("macos10")
5757
homebrew_tap:
5858
name: AdoptOpenJDK/openjdk
5959
state: present
6060

6161
- name: install java (macOS)
6262
become_user: administrator
63-
when: java.rc > 0 and os|startswith("macos")
63+
when: java.rc > 0 and os|startswith("macos10")
6464
homebrew_cask:
6565
name: "{{ java_package_name }}"
6666
state: present
6767

68+
- name: Fetch java (Apple Silicon)
69+
when: os|startswith("macos11")
70+
shell:
71+
chdir: "/Users/administrator"
72+
cmd: "curl -L -o zulu8.52.0.23-ca-jdk8.0.282-macosx_aarch64.tar.gz https://cdn.azul.com/zulu/bin/zulu8.52.0.23-ca-jdk8.0.282-macosx_aarch64.tar.gz"
73+
74+
- name: Extract java (Apple Silicon)
75+
when: os|startswith("macos11")
76+
shell:
77+
chdir: "/Users/administrator"
78+
cmd: "tar -xf zulu8.52.0.23-ca-jdk8.0.282-macosx_aarch64.tar.gz"
79+
6880
- name: install webupd8 oracle java 8 extras
6981
when: java.rc > 0 and os == "ubuntu1404" and arch != "ppc64"
7082
package: name="{{item}}" state=present
@@ -151,4 +163,4 @@
151163
- use_adoptopenjdk == True
152164
- update_adoptopenjdk == True
153165
- adoptopenjdk_symlink.stat.exists
154-
- adoptopenjdk_symlink.stat.lnk_source != "/opt/"+adoptopenjdk_unpacked.files[0].split('/')[0]+"/bin/java"
166+
- adoptopenjdk_symlink.stat.lnk_source != "/opt/"+adoptopenjdk_unpacked.files[0].split('/')[0]+"/bin/java"

ansible/roles/java-base/vars/main.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ packages: {
1313
'fedora': 'java-1.8.0-openjdk-headless',
1414
'freebsd': 'openjdk8-jre',
1515
'ibmi': 'openjdk-11-ea',
16-
'macos': 'adoptopenjdk8',
16+
'macos10': 'adoptopenjdk8',
1717
'rhel7': 'java-1.8.0-openjdk',
1818
'smartos': 'openjdk8',
1919
'ubuntu': 'openjdk-8-jre-headless',
@@ -36,4 +36,4 @@ adoptopenjdk: {
3636
adoptopenjdk_arch: "{{ adoptopenjdk[os+'_'+arch].arch | default(ansible_architecture) }}"
3737
adoptopenjdk_os: "{{ adoptopenjdk[os+'_'+arch].os | default(ansible_system | lower) }}"
3838
adoptopenjdk_version: "{{ adoptopenjdk[os+'_'+arch].version | default('8') }}"
39-
use_adoptopenjdk: "{{ adoptopenjdk[os+'_'+arch] is defined | bool }}"
39+
use_adoptopenjdk: "{{ adoptopenjdk[os+'_'+arch] is defined | bool }}"

ansible/roles/jenkins-worker/templates/start.j2

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ export NODE_TEST_DIR="$HOME/tmp"
44
export JOBS="{{ jobs_env }}"
55

66
export OSTYPE=osx
7-
export ARCH=x64
8-
export DESTCPU=x64
7+
export ARCH="{{ arch }}"
8+
export DESTCPU="{{ arch }}"
99

10-
PATH="/usr/local/opt/ccache/libexec:/usr/local/opt/python3/Frameworks/Python.framework/Versions/Current/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" {{ java_path[os] }} -Xmx{{ server_ram|default('128m') }} \
10+
PATH="/usr/local/opt/ccache/libexec:/usr/local/opt/python3/Frameworks/Python.framework/Versions/Current/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" {{ java_path[os] }} -Xmx{{ server_ram|default('128m') }} \
1111
-jar {{ home }}/{{ server_user }}/slave.jar -secret {{ secret }} \
1212
-jnlpUrl {{ jenkins_url }}/computer/{{ inventory_hostname }}/slave-agent.jnlp

ansible/roles/jenkins-worker/vars/main.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ java_path: {
9797
'macos10.14': 'java',
9898
'macos10.15': 'java',
9999
'macos10.16': 'java',
100-
'macos11.0': 'java',
100+
# Currently hardcoded untill adopt have their build available
101+
'macos11.0': '/Users/administrator/zulu8.52.0.23-ca-jdk8.0.282-macosx_aarch64/bin/java',
101102
'smartos15': '/opt/local/java/openjdk8/bin/java',
102103
'smartos16': '/opt/local/java/openjdk8/bin/java',
103104
'smartos17': '/opt/local/java/openjdk8/bin/java',

ansible/roles/package-upgrade/tasks/partials/brew.yml

+13-1
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,27 @@
1313
script: files/install-xcode.sh
1414
when: xcode.rc > 1
1515

16+
- name: Check if Homebrew is already installed (Apple Sillicon)
17+
stat:
18+
path: /opt/homebrew/bin/brew
19+
register: armbrew
20+
when: os == "macos11.0"
21+
1622
- name: Check if Homebrew is already installed
1723
stat:
1824
path: /usr/local/bin/brew
1925
register: brew
26+
when: os != "macos11.0"
27+
28+
- name: Install Homebrew
29+
become_user: administrator
30+
script: files/install-homebrew.sh
31+
when: os != "macos11.0" and not brew.stat.exists
2032

2133
- name: Install Homebrew
2234
become_user: administrator
2335
script: files/install-homebrew.sh
24-
when: not brew.stat.exists
36+
when: os == "macos11.0" and not armbrew.stat.exists
2537

2638
- name: Upgrade installed packages
2739
become_user: administrator

0 commit comments

Comments
 (0)