Skip to content

Commit 10dd375

Browse files
authored
Add MacOS support for AdoptOpenJDK (sous-chefs#597)
* Add MacOS support for AdoptOpenJDK * Split out Linux into it's own install resource
1 parent f3606ca commit 10dd375

31 files changed

+541
-250
lines changed

.github/workflows/branchcleanup.yml

-17
This file was deleted.

.github/workflows/ci.yml

+40-70
Original file line numberDiff line numberDiff line change
@@ -40,78 +40,27 @@ jobs:
4040
strategy:
4141
matrix:
4242
os:
43-
- amazon-linux
44-
- amazonlinux-2
45-
- debian-9
46-
- debian-10
47-
- centos-7
48-
- ubuntu-1604
49-
- ubuntu-1804
50-
- ubuntu-2004
43+
- 'amazon-linux'
44+
- 'debian-9'
45+
- 'debian-10'
46+
- 'centos-7'
47+
- 'ubuntu-1604'
48+
- 'ubuntu-1804'
5149
suite:
52-
- openjdk-11
53-
- openjdk-12
54-
- openjdk-13
55-
- openjdk-pkg-7
56-
- openjdk-pkg-8
57-
- openjdk-pkg-11
58-
- openjdk-pkg-13
59-
- openjdk-pkg-latest
60-
- adoptopenjdk-8-openj9
61-
- adoptopenjdk-11-hotspot
62-
- adoptopenjdk-11-openj9
63-
- adoptopenjdk-11-openj9-large-heap
64-
- adoptopenjdk-13-hotspot
65-
- adoptopenjdk-13-openj9
66-
- adoptopenjdk-13-openj9-large-heap
67-
- adoptopenjdk-removal-11-openj9
68-
- corretto-11
69-
- corretto-8
70-
exclude:
71-
- os: amazon-linux
72-
suite: openjdk-pkg-11
73-
- os: amazon-linux
74-
suite: openjdk-pkg-13
75-
- os: amazon-linux
76-
suite: openjdk-pkg-latest
77-
- os: amazonlinux-2
78-
suite: openjdk-pkg-13
79-
- os: amazonlinux-2
80-
suite: openjdk-pkg-latest
81-
- os: centos-7
82-
suite: openjdk-pkg-13
83-
- os: centos-7
84-
suite: openjdk-pkg-latest
85-
- os: debian-9
86-
suite: openjdk-pkg-7
87-
- os: debian-9
88-
suite: openjdk-pkg-11
89-
- os: debian-9
90-
suite: openjdk-pkg-13
91-
- os: debian-9
92-
suite: openjdk-pkg-latest
93-
- os: debian-10
94-
suite: openjdk-pkg-7
95-
- os: debian-10
96-
suite: openjdk-pkg-8
97-
- os: debian-10
98-
suite: openjdk-pkg-13
99-
- os: debian-10
100-
suite: openjdk-pkg-latest
101-
- os: ubuntu-1604
102-
suite: openjdk-pkg-latest
103-
- os: ubuntu-1804
104-
suite: openjdk-pkg-7
105-
- os: ubuntu-1804
106-
suite: openjdk-pkg-13
107-
- os: ubuntu-1804
108-
suite: openjdk-pkg-latest
109-
- os: ubuntu-2004
110-
suite: openjdk-pkg-7
111-
- os: ubuntu-2004
112-
suite: openjdk-pkg-latest
50+
- 'openjdk-11'
51+
- 'openjdk-12'
52+
- 'openjdk-13'
53+
- 'adoptopenjdk-8-openj9'
54+
- 'adoptopenjdk-11-hotspot'
55+
- 'adoptopenjdk-11-openj9'
56+
- 'adoptopenjdk-11-openj9-large-heap'
57+
- 'adoptopenjdk-14-hotspot'
58+
- 'adoptopenjdk-14-openj9'
59+
- 'adoptopenjdk-14-openj9-large-heap'
60+
- 'adoptopenjdk-removal-11-openj9'
61+
# - 'corretto-11'
62+
# - 'corretto-8'
11363
fail-fast: false
114-
11564
steps:
11665
- name: Check out code
11766
uses: actions/checkout@master
@@ -126,6 +75,27 @@ jobs:
12675
suite: ${{ matrix.suite }}
12776
os: ${{ matrix.os }}
12877

78+
macos:
79+
needs: [mdl, yamllint, delivery]
80+
runs-on: macos-latest
81+
steps:
82+
- name: Check out code
83+
uses: actions/checkout@master
84+
- name: Install Chef
85+
uses: actionshub/chef-install@master
86+
- name: Run Test Kitchen
87+
env:
88+
CHEF_LICENSE: accept-no-persist
89+
KITCHEN_LOCAL_YAML: kitchen.macos.yml
90+
TERM: xterm-256color
91+
run: |
92+
kitchen converge adoptopenjdk-14-macos
93+
source /etc/profile
94+
echo "sourced profile for JAVA_HOME"
95+
echo "New JAVA home after Chef run is: ${JAVA_HOME}"
96+
kitchen verify adoptopenjdk-14-macos
97+
98+
12999
final:
130100
needs: [dokken]
131101
runs-on: ubuntu-latest

Berksfile

+1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@ source 'https://supermarket.chef.io'
33
metadata
44

55
group :integration do
6+
cookbook 'homebrew'
67
cookbook 'test', path: 'test/fixtures/cookbooks/test'
78
end

CHANGELOG.md

+6-5
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@ This file is used to list changes made in each version of the Java cookbook.
44

55
## Unreleased
66

7+
- Added MacOS support for AdoptOpenJDK
8+
9+
## 8.1.0 (tbc)
10+
711
- resolved cookstyle error: resources/alternatives.rb:49:13 refactor: `ChefCorrectness/ChefApplicationFatal`
812
- resolved cookstyle error: resources/alternatives.rb:62:13 refactor: `ChefCorrectness/ChefApplicationFatal`
913
- resolved cookstyle error: resources/alternatives.rb:75:11 refactor: `ChefCorrectness/ChefApplicationFatal`
1014
- resolved cookstyle error: resources/jce.rb:51:6 refactor: `ChefStyle/UnnecessaryOSCheck`
11-
12-
## 8.1.0 (10-04-2020)
13-
1415
- Added `openjdk_pkg_install` resource & documentation
1516

1617
## 8.0.1 (30-03-2020)
@@ -630,8 +631,8 @@ This version brings a wealth of tests and (backwards-compatible) refactoring, pl
630631

631632
## v1.5.4
632633

633-
- [COOK-885] - update alternatives called on wrong file
634-
- [COOK-1607] - use shellout instead of execute resource to update alternatives
634+
- [COOK-885] update alternatives called on wrong file
635+
- [COOK-1607] use shellout instead of execute resource to update alternatives
635636

636637
## v1.5.2
637638

kitchen.macos.local.yml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
provisioner:
3+
name: chef_zero
4+
install_strategy: skip
5+
channel: current
6+
7+
platforms:
8+
- name: macos
9+
driver:
10+
box: damacus/macos-10.15.4
11+
provider: parallels
12+
linked_clone: true
13+
gui: false
14+
15+
suites:
16+
- name: adoptopenjdk-14
17+
run_list:
18+
- recipe[homebrew]
19+
- recipe[test::adoptopenjdk-14-openj9]
20+
verifier:
21+
inspec_tests: [test/integration/adoptopenjdk]
22+
input_files: [test/integration/adoptopenjdk/attributes/adoptopenjdk-14-macos.yml]

kitchen.macos.yml

+24-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,29 @@
11
---
2+
driver:
3+
name: exec
4+
host: localhost
5+
6+
provisioner:
7+
require_chef_omnibus: false
8+
name: chef_zero
9+
install_strategy: skip
10+
chef_client_path: "/opt/chef-workstation/bin/chef-client"
11+
deprecations_as_errors: false
12+
sudo: true
13+
214
platforms:
3-
- name: macosx-10.10
15+
- name: macos
416
driver:
5-
box: macosx-10.10
17+
box: damacus/macos-10.15.4
18+
provider: parallels
19+
linked_clone: true
20+
gui: false
21+
22+
suites:
23+
- name: adoptopenjdk-14
624
run_list:
725
- recipe[homebrew]
26+
- recipe[test::adoptopenjdk-14-openj9]
27+
verifier:
28+
inspec_tests: [test/integration/adoptopenjdk]
29+
input_files: [test/integration/adoptopenjdk/attributes/adoptopenjdk-14-macos.yml]

kitchen.windows.yml

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# ---
2+
# driver:
3+
# name: exec
4+
# host: localhost
5+
6+
# provisioner:
7+
# require_chef_omnibus: false
8+
# # chef_client_path: "/opt/chef-workstation/bin/chef-client"
9+
# name: chef_zero
10+
# deprecations_as_errors: false
11+
# log_level: :info
12+
# install_strategy: skip
13+
14+
# suites:
15+
# - name: adoptopenjdk-13-openj9
16+
# run_list:
17+
# - recipe[test::adoptopenjdk-13-openj9]
18+
19+
# platforms:
20+
# - name: windows_2019

kitchen.yml

+11-11
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ driver:
55
provisioner:
66
name: chef_zero
77
deprecations_as_errors: false
8-
log_level: :info
8+
# log_level: :info
99

1010
verifier:
1111
name: inspec
@@ -158,26 +158,26 @@ suites:
158158
inspec_tests: [test/integration/adoptopenjdk]
159159
input_files: [test/integration/adoptopenjdk/attributes/adoptopenjdk-11-openj9-large-heap.yml]
160160

161-
# Version 13
162-
- name: adoptopenjdk-13-openj9-large-heap
161+
# Version 14
162+
- name: adoptopenjdk-14-openj9-large-heap
163163
run_list:
164-
- recipe[test::adoptopenjdk-13-openj9-large-heap]
164+
- recipe[test::adoptopenjdk-14-openj9-large-heap]
165165
verifier:
166166
inspec_tests: [test/integration/adoptopenjdk]
167-
input_files: [test/integration/adoptopenjdk/attributes/adoptopenjdk-13-openj9-large-heap.yml]
168-
- name: adoptopenjdk-13-openj9
167+
input_files: [test/integration/adoptopenjdk/attributes/adoptopenjdk-14-openj9-large-heap.yml]
168+
- name: adoptopenjdk-14-openj9
169169
run_list:
170-
- recipe[test::adoptopenjdk-13-openj9]
170+
- recipe[test::adoptopenjdk-14-openj9]
171171
verifier:
172172
inspec_tests:
173173
- test/integration/adoptopenjdk
174-
input_files: [test/integration/adoptopenjdk/attributes/adoptopenjdk-13-openj9.yml]
175-
- name: adoptopenjdk-13-hotspot
174+
input_files: [test/integration/adoptopenjdk/attributes/adoptopenjdk-14-openj9.yml]
175+
- name: adoptopenjdk-14-hotspot
176176
run_list:
177-
- recipe[test::adoptopenjdk-13-hotspot]
177+
- recipe[test::adoptopenjdk-14-hotspot]
178178
verifier:
179179
inspec_tests: [test/integration/adoptopenjdk]
180-
input_files: [test/integration/adoptopenjdk/attributes/adoptopenjdk-13-hotspot.yml]
180+
input_files: [test/integration/adoptopenjdk/attributes/adoptopenjdk-14-hotspot.yml]
181181

182182
# 11 Removal
183183
- name: adoptopenjdk-removal-11-openj9

libraries/adopt_openjdk_helpers.rb

+37-14
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,21 @@ module Cookbook
33
module AdoptOpenJdkHelpers
44
def sub_dir(url)
55
uri = URI.parse(url)
6-
file_name = uri.path.split('/')[-2]
6+
f = uri.path.split('/')[-2]
7+
puts f
78

8-
result = if file_name =~ /jdk8+/
9-
file_name.split('_').first
10-
else
11-
file_name.split('_').first.gsub('%2B', '+')
12-
end
9+
case f
10+
when /jdk8/
11+
result = f.split('_').first
12+
when /jdk-14/
13+
result = f.split('_').first.gsub('%2B', '+')
14+
result = result.slice(0..(result.index('.') - 1)) if result.include? '.'
15+
result
16+
else
17+
result = f.split('_').first.gsub('%2B', '+')
18+
end
1319

14-
raise("Failed to parse #{file_name} for directory name!") if result.empty?
20+
raise("Failed to parse #{f} for directory name!") if result.empty?
1521

1622
result
1723
end
@@ -21,15 +27,24 @@ def default_adopt_openjdk_url(version)
2127
when '8'
2228
{ 'hotspot' => 'https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jdk_x64_linux_hotspot_8u242b08.tar.gz',
2329
'openj9' => 'https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08_openj9-0.18.1/OpenJDK8U-jdk_x64_linux_openj9_8u242b08_openj9-0.18.1.tar.gz',
24-
'openj9-large-heap' => 'https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08_openj9-0.18.1/OpenJDK8U-jdk_x64_linux_openj9_linuxXL_8u242b08_openj9-0.18.1.tar.gz' }
30+
'openj9-large-heap' => 'https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08_openj9-0.18.1/OpenJDK8U-jdk_x64_linux_openj9_linuxXL_8u242b08_openj9-0.18.1.tar.gz',
31+
}
2532
when '11'
2633
{ 'hotspot' => 'https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.6_10.tar.gz',
2734
'openj9' => 'https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10_openj9-0.18.1/OpenJDK11U-jdk_x64_linux_openj9_11.0.6_10_openj9-0.18.1.tar.gz',
28-
'openj9-large-heap' => 'https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10_openj9-0.18.1/OpenJDK11U-jdk_x64_linux_openj9_linuxXL_11.0.6_10_openj9-0.18.1.tar.gz' }
35+
'openj9-large-heap' => 'https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10_openj9-0.18.1/OpenJDK11U-jdk_x64_linux_openj9_linuxXL_11.0.6_10_openj9-0.18.1.tar.gz',
36+
}
2937
when '13'
3038
{ 'hotspot' => 'https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_x64_linux_hotspot_13.0.2_8.tar.gz',
3139
'openj9' => 'https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_x64_linux_openj9_13.0.2_8_openj9-0.18.0.tar.gz',
32-
'openj9-large-heap' => 'https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_x64_linux_openj9_linuxXL_13.0.2_8_openj9-0.18.0.tar.gz' }
40+
'openj9-large-heap' => 'https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_x64_linux_openj9_linuxXL_13.0.2_8_openj9-0.18.0.tar.gz',
41+
}
42+
when '14'
43+
{
44+
'hotspot' => 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14%2B36/OpenJDK14U-jdk_x64_linux_hotspot_14_36.tar.gz',
45+
'openj9' => 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14%2B36.1_openj9-0.19.0/OpenJDK14U-jdk_x64_linux_openj9_14_36_openj9-0.19.0.tar.gz',
46+
'openj9-large-heap' => 'https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14%2B36.1_openj9-0.19.0/OpenJDK14U-jdk_x64_linux_openj9_linuxXL_14_36_openj9-0.19.0.tar.gz',
47+
}
3348
else
3449
Chef::Log.fatal('Version specified does not have a URL value set')
3550
end
@@ -40,15 +55,23 @@ def default_adopt_openjdk_checksum(version)
4055
when '8'
4156
{ 'hotspot' => 'f39b523c724d0e0047d238eb2bb17a9565a60574cf651206c867ee5fc000ab43',
4257
'openj9' => 'ca785af638b24f9d4df896f5a9f557cc9f1e5fa5e2b1174d6b906e3fd5474c2e',
43-
'openj9-large-heap' => '6ee788d57f15cc8c326bb3468390d5e353cc1aac1925efa3f2992a93e2520d97' }
58+
'openj9-large-heap' => '6ee788d57f15cc8c326bb3468390d5e353cc1aac1925efa3f2992a93e2520d97',
59+
}
4460
when '11'
4561
{ 'hotspot' => '330d19a2eaa07ed02757d7a785a77bab49f5ee710ea03b4ee2fa220ddd0feffc',
4662
'openj9' => '1530172ee98edd129954fcdca1bf725f7b30c8bfc3cdc381c88de96b7d19e690',
47-
'openj9-large-heap' => '6524d85d2ce334c955a4347015567326067ef15fe5f6a805714b25cace256f40' }
63+
'openj9-large-heap' => '6524d85d2ce334c955a4347015567326067ef15fe5f6a805714b25cace256f40',
64+
}
4865
when '13'
4966
{ 'hotspot' => '9ccc063569f19899fd08e41466f8c4cd4e05058abdb5178fa374cb365dcf5998',
5067
'openj9' => 'aeecf6d30d0c847db81d07793cf97e5dc44890c29366d7d9f8f9f397f6c52590',
51-
'openj9-large-heap' => '16751b3951b808c4cb0b77d4df1a16f9bfff5b2dbc59919773e6386114e6d8d5' }
68+
'openj9-large-heap' => '16751b3951b808c4cb0b77d4df1a16f9bfff5b2dbc59919773e6386114e6d8d5',
69+
}
70+
when '14'
71+
{ 'hotspot' => '6c06853332585ab58834d9e8a02774b388e6e062ef6c4084b4f058c67f2e81b5',
72+
'openj9' => '106b72d565be98834ead5fea9555bd646d488a86fc4ae4dd294a38e97bf77509',
73+
'openj9-large-heap' => '4ee13d0689ab7a38d6abb7dee974c3b189e36f1911a0cb61c882a38e61cc8b98',
74+
}
5275
else
5376
Chef::Log.fatal('Version specified does not have a checksum value set')
5477
end
@@ -64,7 +87,7 @@ def default_adopt_openjdk_bin_cmds(version)
6487
{ 'hotspot' => %w(jaotc jar jarsigner java javac javadoc javap jcmd jconsole jdb jdeprscan jdeps jfr jhsdb jimage jinfo jjs jlink jmap jmod jps jrunscript jshell jstack jstat jstatd keytool pack200 rmic rmid rmiregistry serialver unpack200),
6588
'openj9' => %w(jar jarsigner java javac javadoc javap jcmd jconsole jdb jdeprscan jdeps jdmpview jextract jimage jitserver jjs jlink jmap jmod jps jrunscript jshell jstack jstat keytool pack200 rmic rmid rmiregistry serialver traceformat unpack200),
6689
'openj9-large-heap' => %w(jar jarsigner java javac javadoc javap jcmd jconsole jdb jdeprscan jdeps jdmpview jextract jimage jitserver jjs jlink jmap jmod jps jrunscript jshell jstack jstat keytool pack200 rmic rmid rmiregistry serialver traceformat unpack200) }
67-
when '13'
90+
when '13', '14'
6891
{ 'hotspot' => %w(jaotc jar jarsigner java javac javadoc javap jcmd jconsole jdb jdeprscan jdeps jfr jhsdb jimage jinfo jjs jlink jmap jmod jps jrunscript jshell jstack jstat jstatd keytool pack200 rmic rmid rmiregistry serialver unpack200),
6992
'openj9' => %w(jar jarsigner java javac javadoc javap jcmd jconsole jdb jdeprscan jdeps jdmpview jextract jimage jjs jlink jmap jmod jps jrunscript jshell jstack jstat keytool pack200 rmic rmid rmiregistry serialver traceformat unpack200),
7093
'openj9-large-heap' => %w(jar jarsigner java javac javadoc javap jcmd jconsole jdb jdeprscan jdeps jdmpview jextract jimage jjs jlink jmap jmod jps jrunscript jshell jstack jstat keytool pack200 rmic rmid rmiregistry serialver traceformat unpack200) }

0 commit comments

Comments
 (0)