Compare commits
483
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f31b1203f0 | ||
|
|
620ebdf37b | ||
|
|
19c847488e | ||
|
|
7a1a792a74 | ||
|
|
4aaad333a6 | ||
|
|
b7a804a460 | ||
|
|
9af4ac0a68 | ||
|
|
65a1ae058f | ||
|
|
d12bc7894b | ||
|
|
f7fee117e8 | ||
|
|
02b8cbc5ce | ||
|
|
bdbe93c15a | ||
|
|
6e729ed9de | ||
|
|
e149fc6a0e | ||
|
|
4e7613245f | ||
|
|
7f05bc5cf5 | ||
|
|
abc3bfa23d | ||
|
|
9303ddeb0c | ||
|
|
f12b993a3a | ||
|
|
c9859b2db3 | ||
|
|
37aecb0028 | ||
|
|
cd2ebf2962 | ||
|
|
ee9c567442 | ||
|
|
727faa300e | ||
|
|
085d14e7de | ||
|
|
6020692ce2 | ||
|
|
c21e3961c5 | ||
|
|
ee530b00e3 | ||
|
|
af0df29967 | ||
|
|
ddaec57d3e | ||
|
|
021b320d3b | ||
|
|
f27bce4030 | ||
|
|
d0ef4c965f | ||
|
|
ffc156c381 | ||
|
|
7ac5d59cf5 | ||
|
|
1bb89cd279 | ||
|
|
9f1c73e473 | ||
|
|
620d17380f | ||
|
|
4a67880dbe | ||
|
|
39bd8d49c7 | ||
|
|
250b209850 | ||
|
|
8b7d5f6fee | ||
|
|
f92a9551a8 | ||
|
|
97c57828ed | ||
|
|
47ef77b32b | ||
|
|
043bfb130f | ||
|
|
b887892285 | ||
|
|
8184167b25 | ||
|
|
d1852f561f | ||
|
|
131105315a | ||
|
|
b127d3a973 | ||
|
|
0b3c476cb6 | ||
|
|
619f425184 | ||
|
|
8085da95cb | ||
|
|
976232da21 | ||
|
|
237fc1c4e2 | ||
|
|
1d54963a0a | ||
|
|
c2491bb469 | ||
|
|
981fb1eb13 | ||
|
|
05c04b5275 | ||
|
|
2d35c44cec | ||
|
|
186e26bc97 | ||
|
|
5d3ec3ef99 | ||
|
|
402d029f44 | ||
|
|
f7416ed524 | ||
|
|
989ed18117 | ||
|
|
6d67eed162 | ||
|
|
bb3043b2c5 | ||
|
|
4ac5909191 | ||
|
|
bc116668f0 | ||
|
|
e51332054c | ||
|
|
3d5f09a90f | ||
|
|
ffe7e6a514 | ||
|
|
19e81a096c | ||
|
|
c2becfafdd | ||
|
|
c4f58658b6 | ||
|
|
aff0eea2a1 | ||
|
|
6cc2576b1b | ||
|
|
92c3eccf8d | ||
|
|
b8e122b1b1 | ||
|
|
03a8b0fd82 | ||
|
|
5a7153bb52 | ||
|
|
5e69d9c205 | ||
|
|
0a970d8e11 | ||
|
|
9bdf288d3e | ||
|
|
39055770c9 | ||
|
|
45226c1116 | ||
|
|
2d6d4f7714 | ||
|
|
3373b502f7 | ||
|
|
c9d728fd25 | ||
|
|
bcf2ea82ad | ||
|
|
9dbed1b18a | ||
|
|
70cee3d2bd | ||
|
|
f55af58f30 | ||
|
|
f983f3da95 | ||
|
|
832c038b81 | ||
|
|
39222c24c4 | ||
|
|
7c2da160a2 | ||
|
|
ee68afd89e | ||
|
|
ee59bae245 | ||
|
|
2899593d7a | ||
|
|
ad23bf9f93 | ||
|
|
600fb502b3 | ||
|
|
5c8a14c94c | ||
|
|
0e631a89e8 | ||
|
|
cee689db9f | ||
|
|
591df9aa44 | ||
|
|
225dce0cbd | ||
|
|
b14867a5eb | ||
|
|
4ef6e91929 | ||
|
|
6b5e85899d | ||
|
|
d0a65206e5 | ||
|
|
7cd7c6a18a | ||
|
|
019a2c6edc | ||
|
|
cb92b7c5b2 | ||
|
|
9e06b648c0 | ||
|
|
625a3cb7eb | ||
|
|
9a4df3f591 | ||
|
|
87aba9f412 | ||
|
|
6bbddd20d7 | ||
|
|
ddfcef3f6a | ||
|
|
3dca722ddb | ||
|
|
cb088fbe48 | ||
|
|
c2c0261ea4 | ||
|
|
b74c33ad6e | ||
|
|
de16eefce8 | ||
|
|
1346c98b00 | ||
|
|
26a47c5357 | ||
|
|
d7a4f1a864 | ||
|
|
5ae5d85800 | ||
|
|
f839529975 | ||
|
|
d7901f6e93 | ||
|
|
d868709391 | ||
|
|
3362e8dadf | ||
|
|
9f195304f1 | ||
|
|
e6d18766e6 | ||
|
|
07869434fe | ||
|
|
0fae0a3b0b | ||
|
|
2d0360379c | ||
|
|
cc762854bd | ||
|
|
18efc23fe3 | ||
|
|
66ee991884 | ||
|
|
1aad2d246d | ||
|
|
9d551e43bc | ||
|
|
4730894910 | ||
|
|
692b6af2e9 | ||
|
|
4e756696cb | ||
|
|
0d3756a2ec | ||
|
|
a0fc3d11c5 | ||
|
|
c8985638bc | ||
|
|
49a87ab9a3 | ||
|
|
3f89591af5 | ||
|
|
1acb48ed45 | ||
|
|
a0b19fa01b | ||
|
|
e3ba729b37 | ||
|
|
6c768837be | ||
|
|
ba0b242503 | ||
|
|
d3779e8ed4 | ||
|
|
004bb48b9e | ||
|
|
5a263020f5 | ||
|
|
9b0a6c08c9 | ||
|
|
157d0dd46b | ||
|
|
20d0451bdd | ||
|
|
181b98660d | ||
|
|
6eccdcc56f | ||
|
|
6d5e92cd22 | ||
|
|
50bb5e8967 | ||
|
|
95b0a5551b | ||
|
|
a63a87f6a0 | ||
|
|
ced65c7a3c | ||
|
|
153e15c52e | ||
|
|
a03f6d0ec3 | ||
|
|
f391328279 | ||
|
|
d195f34aa8 | ||
|
|
00f102b4cc | ||
|
|
1e3d72af6d | ||
|
|
aba30c31f0 | ||
|
|
b3342fe129 | ||
|
|
fc643c2fc8 | ||
|
|
a9d89fa563 | ||
|
|
75e2e796b8 | ||
|
|
ffd458e263 | ||
|
|
166ca4e9c2 | ||
|
|
6e8ddff8ff | ||
|
|
26b592de2b | ||
|
|
d22a5ec4c1 | ||
|
|
e6fd81684d | ||
|
|
183bef9022 | ||
|
|
53c3ba89fe | ||
|
|
6c6545011c | ||
|
|
2c013247b1 | ||
|
|
7a40bc62eb | ||
|
|
cb9e36698d | ||
|
|
b20550951d | ||
|
|
c0b1588684 | ||
|
|
fd9befaf96 | ||
|
|
c2ef078c78 | ||
|
|
187f9f5904 | ||
|
|
277110d088 | ||
|
|
5934916ad9 | ||
|
|
d0d851b2c2 | ||
|
|
67857a41a1 | ||
|
|
c27b1a395f | ||
|
|
56187189cf | ||
|
|
a56a1d3dc7 | ||
|
|
5cd2ef1b0a | ||
|
|
9b55b80556 | ||
|
|
d29e71f0c5 | ||
|
|
918263378c | ||
|
|
e96b8f37d5 | ||
|
|
ccbc0f9b26 | ||
|
|
d43ea5c42a | ||
|
|
5d604b9dc5 | ||
|
|
126e725070 | ||
|
|
23478d3106 | ||
|
|
445bbb0d61 | ||
|
|
6b5924aa06 | ||
|
|
a070c8516f | ||
|
|
06e844f299 | ||
|
|
2be7150808 | ||
|
|
07f291cacf | ||
|
|
0819844238 | ||
|
|
5a82897b98 | ||
|
|
84c4b32b94 | ||
|
|
b4c921107c | ||
|
|
909878ffc5 | ||
|
|
d3f705c429 | ||
|
|
adf6d83ab9 | ||
|
|
e74605cd6d | ||
|
|
c53958b30e | ||
|
|
10abbce9e6 | ||
|
|
32f3b67f86 | ||
|
|
bf6ac0db93 | ||
|
|
2d27578911 | ||
|
|
a29761eb60 | ||
|
|
2111b3e225 | ||
|
|
640581936d | ||
|
|
4d7c677f1c | ||
|
|
a8d59b2440 | ||
|
|
a531b96b21 | ||
|
|
ec00dd1a31 | ||
|
|
24b91c995e | ||
|
|
a1633b0193 | ||
|
|
02babd3573 | ||
|
|
422d7a028e | ||
|
|
e054e2bcdc | ||
|
|
fbbb9d7303 | ||
|
|
83a93373e6 | ||
|
|
1136c0f644 | ||
|
|
d4872d4c2e | ||
|
|
4c67970f91 | ||
|
|
f1bf50f507 | ||
|
|
e38398ad37 | ||
|
|
25f1053fed | ||
|
|
6a79f14748 | ||
|
|
fb37f140d8 | ||
|
|
7b927d9898 | ||
|
|
c6a4b16561 | ||
|
|
fc001c0493 | ||
|
|
949eeedc32 | ||
|
|
4a0b4ab1fb | ||
|
|
e2b01435e8 | ||
|
|
b03e99b0d2 | ||
|
|
0077a0756a | ||
|
|
0136427b07 | ||
|
|
954995809e | ||
|
|
fcc4cdb1d0 | ||
|
|
2997ec866b | ||
|
|
a177c07699 | ||
|
|
3fbcce7888 | ||
|
|
c152328e5a | ||
|
|
e065c9ac28 | ||
|
|
011a640c94 | ||
|
|
f08266d9d0 | ||
|
|
b3b23d5faa | ||
|
|
f3ad9cadef | ||
|
|
499aa8a821 | ||
|
|
c6ea5e3564 | ||
|
|
9b4274cda9 | ||
|
|
6becb4037c | ||
|
|
58e54334b0 | ||
|
|
dae0f77971 | ||
|
|
1838f0f3dc | ||
|
|
75f145b104 | ||
|
|
09ff567de6 | ||
|
|
7ca41de8b8 | ||
|
|
bd333c6236 | ||
|
|
dfca60f766 | ||
|
|
948c9e2df6 | ||
|
|
3e37de50ef | ||
|
|
2cb9b917c5 | ||
|
|
52279a9048 | ||
|
|
20de906028 | ||
|
|
1229dfcf19 | ||
|
|
2889cfe878 | ||
|
|
59b3801509 | ||
|
|
6d85c4873e | ||
|
|
7bf4ada29d | ||
|
|
768c456091 | ||
|
|
7256777a6b | ||
|
|
2e94c1de50 | ||
|
|
fdbe51d78c | ||
|
|
0a7abf330f | ||
|
|
f251d50781 | ||
|
|
22a8b4c4ac | ||
|
|
6fc0ca1a91 | ||
|
|
740ab068bc | ||
|
|
01d5873a78 | ||
|
|
bd90e1a113 | ||
|
|
e7648fd6a7 | ||
|
|
8726158fca | ||
|
|
2fea25d02d | ||
|
|
2661cfaa93 | ||
|
|
e3b97844e5 | ||
|
|
ce5aa1950d | ||
|
|
ae99c16b0c | ||
|
|
78796bc109 | ||
|
|
4d4477e04e | ||
|
|
907fcf388b | ||
|
|
a52bed1b1a | ||
|
|
6ba53090b0 | ||
|
|
541dd995c8 | ||
|
|
87d136e308 | ||
|
|
8a1eeaf6ac | ||
|
|
d1db39831d | ||
|
|
6e8c37cf52 | ||
|
|
8ffffdb49d | ||
|
|
3fbc297071 | ||
|
|
79c735b9fc | ||
|
|
8813e2b6e9 | ||
|
|
255206eaeb | ||
|
|
5809cd0f4d | ||
|
|
96520bb192 | ||
|
|
39297c5658 | ||
|
|
85fbeaef9b | ||
|
|
495fd51951 | ||
|
|
f4ba5c5cbc | ||
|
|
feebb05e11 | ||
|
|
8e0eb613ac | ||
|
|
29e053ac38 | ||
|
|
8bbd828014 | ||
|
|
fd6c45b8e8 | ||
|
|
5d31cfb3b9 | ||
|
|
75ba3f22d0 | ||
|
|
cd07f9077f | ||
|
|
370d12f1b6 | ||
|
|
ce2a3e8e67 | ||
|
|
71f35314bc | ||
|
|
ba7e034f05 | ||
|
|
6774220762 | ||
|
|
0d40609330 | ||
|
|
d805d2e921 | ||
|
|
a142edbae6 | ||
|
|
a68ad81fbe | ||
|
|
bfff5e5a70 | ||
|
|
5954f76a9b | ||
|
|
ea8a7a8f01 | ||
|
|
20fb902d6b | ||
|
|
255fffd021 | ||
|
|
d2f9756b6e | ||
|
|
46a8dee561 | ||
|
|
54e686be61 | ||
|
|
b60b7ab30f | ||
|
|
ff9acc6401 | ||
|
|
72f6dfe786 | ||
|
|
5e9605c7dc | ||
|
|
c7adf5d533 | ||
|
|
27738cad72 | ||
|
|
e01c839141 | ||
|
|
8cdc506384 | ||
|
|
74ebd60101 | ||
|
|
49d5ab6422 | ||
|
|
31e868eebe | ||
|
|
14915191c7 | ||
|
|
a1f7f1a10a | ||
|
|
2c7fe0021a | ||
|
|
2ff0f1047a | ||
|
|
2bb8be665c | ||
|
|
b0c4ef1a6b | ||
|
|
07e13e5cc9 | ||
|
|
24a8fbaf58 | ||
|
|
e85a3666bf | ||
|
|
3926b864c3 | ||
|
|
89f5712cad | ||
|
|
ab15087979 | ||
|
|
ff516bd145 | ||
|
|
12335f2cc4 | ||
|
|
d7c81d045c | ||
|
|
891c2ed95c | ||
|
|
16b7d80a46 | ||
|
|
c9fc7f734c | ||
|
|
0d632219e5 | ||
|
|
dda4a941d8 | ||
|
|
f778b762d5 | ||
|
|
90ada9b0c4 | ||
|
|
a27aca91e5 | ||
|
|
4e1b48a6c5 | ||
|
|
dd3eec7374 | ||
|
|
d33c9005cc | ||
|
|
23c98d86f0 | ||
|
|
e5de19ba15 | ||
|
|
d72a4523b1 | ||
|
|
439ecfcfdb | ||
|
|
12d52d247e | ||
|
|
f8049e323b | ||
|
|
5ab121d559 | ||
|
|
cba7c41716 | ||
|
|
564751b570 | ||
|
|
192b5bd8ad | ||
|
|
69f706a106 | ||
|
|
17a8ea14ac | ||
|
|
36cf63a735 | ||
|
|
0a285c2031 | ||
|
|
1eae5baec1 | ||
|
|
c634b8cd67 | ||
|
|
59a0b3727b | ||
|
|
4e6e715037 | ||
|
|
197b995b2d | ||
|
|
9bf0388ef2 | ||
|
|
b8153b8d01 | ||
|
|
db2a58f0e3 | ||
|
|
eec55f72c9 | ||
|
|
1388aca8a3 | ||
|
|
cebb2a1884 | ||
|
|
474b80c589 | ||
|
|
85fb533e05 | ||
|
|
cc117fb31b | ||
|
|
30802498d6 | ||
|
|
5e6cc3155d | ||
|
|
07692c0033 | ||
|
|
8795612730 | ||
|
|
22143c7c68 | ||
|
|
88cb1bef47 | ||
|
|
d485ae12fe | ||
|
|
e48c7949fd | ||
|
|
c49ee7347c | ||
|
|
7992e24b69 | ||
|
|
8aec741c90 | ||
|
|
3a24d66b9e | ||
|
|
551ccc0fb1 | ||
|
|
7665ed4ef9 | ||
|
|
c31eef93ac | ||
|
|
37e8b599ee | ||
|
|
f404404643 | ||
|
|
4b55f4683f | ||
|
|
3300770426 | ||
|
|
7636fd53b9 | ||
|
|
2a4bc14da4 | ||
|
|
0f88c4231d | ||
|
|
a54473db52 | ||
|
|
d935940e99 | ||
|
|
d46f62f273 | ||
|
|
9a08ad80ee | ||
|
|
e15a279ed8 | ||
|
|
869f895d83 | ||
|
|
051836e832 | ||
|
|
7fa790a939 | ||
|
|
e89c1a6d09 | ||
|
|
295e649465 | ||
|
|
da684ca6d2 | ||
|
|
582bbb9c15 | ||
|
|
137d0ed83d | ||
|
|
1850dfc713 | ||
|
|
c110803508 | ||
|
|
7a96efa872 | ||
|
|
3b1c7f3c1d | ||
|
|
325094ef86 | ||
|
|
f4cc7331d9 | ||
|
|
fcf7cd18d4 | ||
|
|
cbea23f931 | ||
|
|
c7276710b3 | ||
|
|
24a5edcdc8 | ||
|
|
e72f29bfc8 | ||
|
|
fbd6c33be3 | ||
|
|
a89507e2af | ||
|
|
cea9d0e0d1 | ||
|
|
abe90c1619 | ||
|
|
a74e63c6b1 | ||
|
|
d7ed5cb7b0 | ||
|
|
00959b266e | ||
|
|
36ab778536 | ||
|
|
e088ddba06 | ||
|
|
49f0b7160b |
@@ -39,13 +39,15 @@ body:
|
||||
- label: Ubuntu 20.04
|
||||
- label: Ubuntu 22.04
|
||||
- label: Ubuntu 24.04
|
||||
- label: macOS 12
|
||||
- label: macOS 13
|
||||
- label: macOS 13 Arm64
|
||||
- label: macOS 14
|
||||
- label: macOS 14 Arm64
|
||||
- label: macOS 15
|
||||
- label: macOS 15 Arm64
|
||||
- label: Windows Server 2019
|
||||
- label: Windows Server 2022
|
||||
- label: Windows Server 2025
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Mitigation ways
|
||||
|
||||
@@ -22,13 +22,15 @@ body:
|
||||
- label: Ubuntu 20.04
|
||||
- label: Ubuntu 22.04
|
||||
- label: Ubuntu 24.04
|
||||
- label: macOS 12
|
||||
- label: macOS 13
|
||||
- label: macOS 13 Arm64
|
||||
- label: macOS 14
|
||||
- label: macOS 14 Arm64
|
||||
- label: macOS 15
|
||||
- label: macOS 15 Arm64
|
||||
- label: Windows Server 2019
|
||||
- label: Windows Server 2022
|
||||
- label: Windows Server 2025
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Image version and build link
|
||||
|
||||
@@ -60,13 +60,15 @@ body:
|
||||
- label: Ubuntu 20.04
|
||||
- label: Ubuntu 22.04
|
||||
- label: Ubuntu 24.04
|
||||
- label: macOS 12
|
||||
- label: macOS 13
|
||||
- label: macOS 13 Arm64
|
||||
- label: macOS 14
|
||||
- label: macOS 14 Arm64
|
||||
- label: macOS 15
|
||||
- label: macOS 15 Arm64
|
||||
- label: Windows Server 2019
|
||||
- label: Windows Server 2022
|
||||
- label: Windows Server 2025
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Can this tool be installed during the build?
|
||||
|
||||
@@ -34,7 +34,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'python', 'ruby' ]
|
||||
language: [ 'python' ]
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||
# Learn more about CodeQL language support at https://git.io/codeql-language-support
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ name: Create SBOM for the release
|
||||
#
|
||||
# Current SYFT tool issues:
|
||||
# macOS (major): prompt privilegies that blocking process indefinetely (https://github.com/anchore/syft/issues/1367)
|
||||
run-name: Collecting SBOM for ${{ github.event.client_payload.ReleaseBranchName || 'unknown release' }}
|
||||
on:
|
||||
repository_dispatch:
|
||||
types: [generate-sbom]
|
||||
@@ -58,7 +59,7 @@ jobs:
|
||||
run: curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b D:/syft
|
||||
- name: Install SYFT tool on Ubuntu or macOS
|
||||
if: ${{ runner.os != 'Windows' }}
|
||||
run: curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin v0.100.0
|
||||
run: curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
|
||||
#Running section.
|
||||
- name: Run SYFT on Windows
|
||||
if: ${{ runner.os == 'Windows' }}
|
||||
|
||||
@@ -13,7 +13,7 @@ defaults:
|
||||
|
||||
jobs:
|
||||
Ubuntu_2004:
|
||||
if: contains(github.event.pull_request.labels.*.name, 'CI ubuntu-all') || contains(github.event.pull_request.labels.*.name, 'CI ubuntu-2004')
|
||||
if: github.event.label.name == 'CI ubuntu-all' || github.event.label.name == 'CI ubuntu-2004'
|
||||
uses: ./.github/workflows/trigger-ubuntu-win-build.yml
|
||||
with:
|
||||
image_type: 'ubuntu2004'
|
||||
|
||||
@@ -13,7 +13,7 @@ defaults:
|
||||
|
||||
jobs:
|
||||
Ubuntu_2204:
|
||||
if: contains(github.event.pull_request.labels.*.name, 'CI ubuntu-all') || contains(github.event.pull_request.labels.*.name, 'CI ubuntu-2204')
|
||||
if: github.event.label.name == 'CI ubuntu-all' || github.event.label.name == 'CI ubuntu-2204'
|
||||
uses: ./.github/workflows/trigger-ubuntu-win-build.yml
|
||||
with:
|
||||
image_type: 'ubuntu2204'
|
||||
|
||||
@@ -13,7 +13,7 @@ defaults:
|
||||
|
||||
jobs:
|
||||
Ubuntu_2404:
|
||||
if: contains(github.event.pull_request.labels.*.name, 'CI ubuntu-all') || contains(github.event.pull_request.labels.*.name, 'CI ubuntu-2404')
|
||||
if: github.event.label.name == 'CI ubuntu-all' || github.event.label.name == 'CI ubuntu-2404'
|
||||
uses: ./.github/workflows/trigger-ubuntu-win-build.yml
|
||||
with:
|
||||
image_type: 'ubuntu2404'
|
||||
|
||||
@@ -13,7 +13,7 @@ defaults:
|
||||
|
||||
jobs:
|
||||
Windows_2019:
|
||||
if: contains(github.event.pull_request.labels.*.name, 'CI windows-all') || contains(github.event.pull_request.labels.*.name, 'CI windows-2019')
|
||||
if: github.event.label.name == 'CI windows-all' || github.event.label.name == 'CI windows-2019'
|
||||
uses: ./.github/workflows/trigger-ubuntu-win-build.yml
|
||||
with:
|
||||
image_type: 'windows2019'
|
||||
|
||||
@@ -13,7 +13,7 @@ defaults:
|
||||
|
||||
jobs:
|
||||
Windows_2022:
|
||||
if: contains(github.event.pull_request.labels.*.name, 'CI windows-all') || contains(github.event.pull_request.labels.*.name, 'CI windows-2022')
|
||||
if: github.event.label.name == 'CI windows-all' || github.event.label.name == 'CI windows-2022'
|
||||
uses: ./.github/workflows/trigger-ubuntu-win-build.yml
|
||||
with:
|
||||
image_type: 'windows2022'
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
name: Trigger Windows25 CI
|
||||
run-name: Windows2025 - ${{ github.event.pull_request.title }}
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: labeled
|
||||
paths:
|
||||
- 'images/windows/**'
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: pwsh
|
||||
|
||||
jobs:
|
||||
Windows_2022:
|
||||
if: github.event.label.name == 'CI windows-all' || github.event.label.name == 'CI windows-2025'
|
||||
uses: ./.github/workflows/trigger-ubuntu-win-build.yml
|
||||
with:
|
||||
image_type: 'windows2025'
|
||||
secrets: inherit
|
||||
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2024 GitHub
|
||||
Copyright (c) 2025 GitHub
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
# GitHub Actions Runner Images
|
||||
|
||||
**Table of Contents**
|
||||
@@ -21,16 +20,18 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
|
||||
|
||||
| Image | YAML Label | Included Software | Rollout Status of Latest Image Release |
|
||||
| --------------------|---------------------|--------------------|--------------------|
|
||||
| Ubuntu 24.04 <sup>beta</sup> | `ubuntu-24.04` | [ubuntu-24.04] |  |
|
||||
| Ubuntu 22.04 | `ubuntu-latest` or `ubuntu-22.04` | [ubuntu-22.04] |  |
|
||||
| Ubuntu 20.04 | `ubuntu-20.04` | [ubuntu-20.04] |  |
|
||||
| macOS 14 | `macos-latest-large` or `macos-14-large`| [macOS-14] |  |
|
||||
| macOS 14 Arm64 |`macos-latest`, `macos-14`, `macos-latest-xlarge` or `macos-14-xlarge`| [macOS-14-arm64] |  |
|
||||
| macOS 13 | `macos-13` or `macos-13-large` | [macOS-13] |  |
|
||||
| macOS 13 Arm64 | `macos-13-xlarge` | [macOS-13-arm64] |  |
|
||||
| macOS 12 | `macos-12` or `macos-12-large`| [macOS-12] |  |
|
||||
| Windows Server 2022 | `windows-latest` or `windows-2022` | [windows-2022] |  |
|
||||
| Windows Server 2019 | `windows-2019` | [windows-2019] |  |
|
||||
| Ubuntu 24.04 | `ubuntu-latest` or `ubuntu-24.04` | [ubuntu-24.04] |  |
|
||||
| Ubuntu 22.04 | `ubuntu-22.04` | [ubuntu-22.04] |  |
|
||||
| Ubuntu 20.04 | `ubuntu-20.04` | [ubuntu-20.04] |  |
|
||||
| macOS 15 <sup>beta</sup> | `macos-15-large`| [macOS-15] |  |
|
||||
| macOS 15 Arm64 <sup>beta</sup> | `macos-15` or `macos-15-xlarge` | [macOS-15-arm64] |  |
|
||||
| macOS 14 | `macos-latest-large` or `macos-14-large`| [macOS-14] |  |
|
||||
| macOS 14 Arm64 |`macos-latest`, `macos-14`, `macos-latest-xlarge` or `macos-14-xlarge`| [macOS-14-arm64] |  |
|
||||
| macOS 13 | `macos-13` or `macos-13-large` | [macOS-13] |  |
|
||||
| macOS 13 Arm64 | `macos-13-xlarge` | [macOS-13-arm64] |  |
|
||||
| Windows Server 2025 <sup>beta</sup> | `windows-2025` | [windows-2025] |  |
|
||||
| Windows Server 2022 | `windows-latest` or `windows-2022` | [windows-2022] |  |
|
||||
| Windows Server 2019 | `windows-2019` | [windows-2019] |  |
|
||||
|
||||
### Label scheme
|
||||
|
||||
@@ -40,13 +41,15 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
|
||||
[ubuntu-24.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md
|
||||
[ubuntu-22.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md
|
||||
[ubuntu-20.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2004-Readme.md
|
||||
[windows-2025]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md
|
||||
[windows-2022]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md
|
||||
[windows-2019]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2019-Readme.md
|
||||
[macOS-12]: https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md
|
||||
[macOS-13]: https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md
|
||||
[macOS-13-arm64]: https://github.com/actions/runner-images/blob/main/images/macos/macos-13-arm64-Readme.md
|
||||
[macOS-14]: https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md
|
||||
[macOS-14-arm64]: https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md
|
||||
[macOS-15]: https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md
|
||||
[macOS-15-arm64]: https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md
|
||||
[self-hosted runners]: https://help.github.com/en/actions/hosting-your-own-runners
|
||||
|
||||
## Announcements
|
||||
@@ -79,7 +82,7 @@ latest 2 versions of an OS.
|
||||
GitHub Actions and Azure DevOps use the `-latest` YAML label (ex: `ubuntu-latest`, `windows-latest`, and `macos-latest`). These labels point towards the newest stable OS version available.
|
||||
|
||||
|
||||
The `-latest` migration process is gradual and happens over 1-2 months in order to allow customers to adapt their workflows to the newest OS version. During this process, any workflow using the `-latest` label, may see changes in the OS version in their workflows or pipelines. To avoid unwanted migration, users can specify a specific OS version in the yaml file (ex: macos-12, windows-2022, ubuntu-22.04).
|
||||
The `-latest` migration process is gradual and happens over 1-2 months in order to allow customers to adapt their workflows to the newest OS version. During this process, any workflow using the `-latest` label, may see changes in the OS version in their workflows or pipelines. To avoid unwanted migration, users can specify a specific OS version in the yaml file (ex: macos-14, windows-2022, ubuntu-22.04).
|
||||
|
||||
## Image Releases
|
||||
|
||||
@@ -115,15 +118,16 @@ The `-latest` migration process is gradual and happens over 1-2 months in order
|
||||
| Go | 3 latest minor versions |
|
||||
| Python <br/> Ruby | 5 most popular `major.minor` versions |
|
||||
| PyPy | 3 most popular `major.minor` versions |
|
||||
| .NET Core | 2 latest LTS versions and 1 latest version. For each feature version only latest patch is installed |
|
||||
| .NET Core | 2 latest LTS versions and 1 latest version. For each feature version only latest patch is installed. Note for [Ubuntu images see details.](./docs/dotnet-ubuntu.md) |
|
||||
| GCC <br/> GNU Fortran <br/> Clang <br/> GNU C++ | 3 latest major versions |
|
||||
| Android NDK | 1 latest non-LTS, 2 latest LTS versions |
|
||||
| Xcode | - all OS compatible versions side-by-side <br/> - for beta, GM versions - latest beta only <br/> - old patch versions are deprecated in 3 months |
|
||||
| Xcode | - only one major version of Xcode will be supported per macOS version <br/> - all minor versions of the supported major version will be available <br/> - beta and RC versions will be provided "as-is" in the latest available macOS image only no matter of beta/GA status of the image <br/> - when a new patch version is released, the previous patch version will be replaced |
|
||||
|
||||
### Package managers usage
|
||||
|
||||
We use third-party package managers to install software during the image generation process. The table below lists the package managers and the software installed.
|
||||
> **Note**: third-party repositories are re-evaluated every year to identify if they are still useful and secure.
|
||||
> [!NOTE]
|
||||
> Third-party repositories are re-evaluated every year to identify if they are still useful and secure.
|
||||
|
||||
| Operating system | Package manager | Third-party repos and packages |
|
||||
| :--- | :---: | ---: |
|
||||
|
||||
@@ -98,7 +98,7 @@ Finally, run the `GenerateResourcesAndImage` function, setting the mandatory arg
|
||||
- `SubscriptionId` - your Azure Subscription ID;
|
||||
- `ResourceGroupName` - the name of the resource group that will be created within your subscription (e.g., "imagegen-test");
|
||||
- `AzureLocation` - the location where resources will be created (e.g., "East US");
|
||||
- `ImageType` - the type of image to build (we suggest choosing "UbuntuMinimal" here; other valid options are "Windows2019", "Windows2022", "Ubuntu2004", "Ubuntu2204").
|
||||
- `ImageType` - the type of image to build (we suggest choosing "UbuntuMinimal" here; other valid options are "Windows2019", "Windows2022", "Windows2025", "Ubuntu2004", "Ubuntu2204", "Ubuntu2404").
|
||||
|
||||
This function automatically creates all required Azure resources and initiates the Packer image generation for the selected image type.
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
# Ubuntu .NET Core Versions
|
||||
|
||||
.NET has changed the recommended install methods for Ubuntu from 2404.
|
||||
|
||||
This document gives an overview of these change and the impact this has on the `runner-images`.
|
||||
|
||||
## .NET Core for Ubuntu 2004 and 2204
|
||||
|
||||
2004 and 2204 use the [Microsoft Package repository](https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu-install?tabs=dotnet8&pivots=os-linux-ubuntu-2004) to install .NET deb files built and published by the .NET team.
|
||||
|
||||
## .NET Core Versions from Ubuntu 2404
|
||||
|
||||
The .NET Core team have worked with Canonical and Ubuntu now provides its own .NET packages.
|
||||
|
||||
These are the recommended install path and, as-such what is installed on the image.
|
||||
|
||||
> The release of Ubuntu 24.04 is just around the corner. Canonical-produced .NET 6, 7, and 8 packages will be available on day one, for "Noble Numbat". Microsoft will not be publishing .NET packages to the 24.04 feed at packages.microsoft.com.
|
||||
|
||||
You can read the [full announcement from .NET team here](https://github.com/dotnet/core/discussions/9258). We'll briefly summarize how this change may impact users of the image.
|
||||
|
||||
### [`Feature Bands`](https://learn.microsoft.com/dotnet/core/porting/versioning-sdk-msbuild-vs)
|
||||
|
||||
Going forward only the `1xx` feature band will be present in the image as Ubuntu only build and publish this band.
|
||||
|
||||
> Most distros, including Ubuntu, stick to the .1xx feature band for the lifetime of a major .NET version. They make this choice because .1xx is (effectively) the "compatibility band". Higher bands can have breaking changes.
|
||||
> This means there will no longer be packages available for .2xx and later feature bands. Such packages have been exclusively available from Microsoft. If users see an incompatibility between .1xx and higher feature bands, we ask that you please report it in the dotnet/sdk repo. [link: dotnet/core discussion](https://github.com/dotnet/core/discussions/9258)
|
||||
|
||||
If you need a higher feature band for your Actions the recommendation is to use the [`setup-dotnet`](https://github.com/actions/setup-dotnet) action to install the desired version.
|
||||
|
||||
### .NET MAUI
|
||||
|
||||
.NET MAUI is [not included](https://github.com/dotnet/core/discussions/9258#discussioncomment-9548857) in the Ubuntu .NET package. There is work [ongoing to fix.](https://github.com/dotnet/core/discussions/9258#discussioncomment-9548857)
|
||||
|
||||
You should be able to resolve this by using the [`setup-dotnet`](https://github.com/actions/setup-dotnet) action to install the desired version.
|
||||
@@ -3,10 +3,11 @@ $ErrorActionPreference = 'Stop'
|
||||
enum ImageType {
|
||||
Windows2019 = 1
|
||||
Windows2022 = 2
|
||||
Ubuntu2004 = 3
|
||||
Ubuntu2204 = 4
|
||||
Ubuntu2404 = 5
|
||||
UbuntuMinimal = 6
|
||||
Windows2025 = 3
|
||||
Ubuntu2004 = 4
|
||||
Ubuntu2204 = 5
|
||||
Ubuntu2404 = 6
|
||||
UbuntuMinimal = 7
|
||||
}
|
||||
|
||||
Function Get-PackerTemplatePath {
|
||||
@@ -25,6 +26,9 @@ Function Get-PackerTemplatePath {
|
||||
([ImageType]::Windows2022) {
|
||||
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "windows-2022.pkr.hcl"
|
||||
}
|
||||
([ImageType]::Windows2025) {
|
||||
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "windows-2025.pkr.hcl"
|
||||
}
|
||||
([ImageType]::Ubuntu2004) {
|
||||
$relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "ubuntu-20.04.pkr.hcl"
|
||||
}
|
||||
@@ -81,7 +85,7 @@ Function GenerateResourcesAndImage {
|
||||
.PARAMETER ResourceGroupName
|
||||
The name of the resource group to create the Azure resources in.
|
||||
.PARAMETER ImageType
|
||||
The type of image to generate. Valid values are: Windows2019, Windows2022, Ubuntu2004, Ubuntu2204, UbuntuMinimal.
|
||||
The type of image to generate. Valid values are: Windows2019, Windows2022, Windows2025, Ubuntu2004, Ubuntu2204, Ubuntu2404, UbuntuMinimal.
|
||||
.PARAMETER ManagedImageName
|
||||
The name of the managed image to create. The default is "Runner-Image-{{ImageType}}".
|
||||
.PARAMETER AzureLocation
|
||||
|
||||
@@ -89,7 +89,7 @@ class HeaderNode: BaseNode {
|
||||
}
|
||||
|
||||
[void] AddTable([PSCustomObject[]] $Table) {
|
||||
$this.AddNode([TableNode]::FromObjectsArray($Table))
|
||||
$this.AddNode([TableNode]::FromObjectsArray($Table))
|
||||
}
|
||||
|
||||
[void] AddNote([String] $Content) {
|
||||
|
||||
@@ -10,7 +10,9 @@ param(
|
||||
[String] [Parameter (Mandatory=$true)] $TenantId,
|
||||
[String] [Parameter (Mandatory=$false)] $VirtualNetworkName,
|
||||
[String] [Parameter (Mandatory=$false)] $VirtualNetworkRG,
|
||||
[String] [Parameter (Mandatory=$false)] $VirtualNetworkSubnet
|
||||
[String] [Parameter (Mandatory=$false)] $VirtualNetworkSubnet,
|
||||
[String] [Parameter (Mandatory=$false)] $AllowedInboundIpAddresses = "[]",
|
||||
[hashtable] [Parameter (Mandatory=$False)] $Tags = @{}
|
||||
)
|
||||
|
||||
if (-not (Test-Path $TemplatePath))
|
||||
@@ -32,6 +34,8 @@ $SensitiveData = @(
|
||||
': ->'
|
||||
)
|
||||
|
||||
$azure_tags = ($Tags.GetEnumerator() | ForEach-Object { "{0}={1}" -f $_.Key, $_.Value }) -join ","
|
||||
|
||||
Write-Host "Show Packer Version"
|
||||
packer --version
|
||||
|
||||
@@ -54,6 +58,8 @@ packer build -var "client_id=$ClientId" `
|
||||
-var "virtual_network_name=$VirtualNetworkName" `
|
||||
-var "virtual_network_resource_group_name=$VirtualNetworkRG" `
|
||||
-var "virtual_network_subnet_name=$VirtualNetworkSubnet" `
|
||||
-var "allowed_inbound_ip_addresses=$($AllowedInboundIpAddresses)" `
|
||||
-var "azure_tags={$azure_tags}" `
|
||||
-color=false `
|
||||
$TemplatePath `
|
||||
| Where-Object {
|
||||
|
||||
@@ -139,10 +139,7 @@ function Set-AnkaVMVideoController {
|
||||
)
|
||||
|
||||
$command = "anka modify $VMName set display -c $Controller"
|
||||
# Apple Metal is available starting from Big Sur
|
||||
if (-not $ShortMacOSVersion.StartsWith("10.")) {
|
||||
$null = Invoke-AnkaCommand -Command $command
|
||||
}
|
||||
$null = Invoke-AnkaCommand -Command $command
|
||||
}
|
||||
|
||||
function Set-AnkaVMDisplayResolution {
|
||||
|
||||
@@ -25,7 +25,7 @@ param(
|
||||
[bool] $EnableAutoLogon = $true,
|
||||
[int] $CPUCount = 6,
|
||||
[int] $RamSizeGb = 7,
|
||||
[int] $DiskSizeGb = 300,
|
||||
[int] $DiskSizeGb = 325,
|
||||
[string] $DisplayResolution = "1920x1080",
|
||||
[string] $TagName = [DateTimeOffset]::Now.ToUnixTimeSeconds(),
|
||||
[string] $Uuid = "4203018E-580F-C1B5-9525-B745CECA79EB"
|
||||
@@ -93,8 +93,9 @@ function Invoke-SoftwareUpdate {
|
||||
$command = "sw_vers"
|
||||
$guestMacosVersion = Invoke-SSHPassCommand -HostName $ipAddress -Command $command
|
||||
switch -regex ($guestMacosVersion[1]) {
|
||||
'12.\d' { $nextOSVersion = 'macOS Ventura|macOS Sonoma' }
|
||||
'13.\d' { $nextOSVersion = 'macOS Sonoma' }
|
||||
'12.\d' { $nextOSVersion = 'macOS Ventura|macOS Sonoma|macOS Sequoia' }
|
||||
'13.\d' { $nextOSVersion = 'macOS Sonoma|macOS Sequoia' }
|
||||
'14.\d' { $nextOSVersion = 'macOS Sequoia' }
|
||||
}
|
||||
|
||||
Write-Host "`t[*] Fetching Software Updates ready to install on '$TemplateName' VM:"
|
||||
@@ -175,10 +176,10 @@ if ([string]::IsNullOrEmpty($TemplateName)) {
|
||||
$osArch = $(arch)
|
||||
if ($osArch -eq "arm64") {
|
||||
$macOSInstaller = Get-MacOSIPSWInstaller -MacOSVersion $MacOSVersion -DownloadLatestVersion $DownloadLatestVersion -BetaSearch $BetaSearch
|
||||
$TemplateName = "clean_macos_${shortMacOSVersion}_${osArch}_${DiskSizeGb}gb"
|
||||
$TemplateName = "clean_macos_${shortMacOSVersion}_${osArch}"
|
||||
} else {
|
||||
$macOSInstaller = Get-MacOSInstaller -MacOSVersion $MacOSVersion -DownloadLatestVersion $DownloadLatestVersion -BetaSearch $BetaSearch
|
||||
$TemplateName = "clean_macos_${shortMacOSVersion}_${DiskSizeGb}gb"
|
||||
$TemplateName = "clean_macos_${shortMacOSVersion}"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -39,14 +39,15 @@ function Invoke-SoftwareUpdateArm64 {
|
||||
$command = "sw_vers"
|
||||
$guestMacosVersion = Invoke-SSHPassCommand -HostName $HostName -Command $command
|
||||
switch -regex ($guestMacosVersion[1]) {
|
||||
'13.\d' { $nextOSVersion = 'Sonoma' }
|
||||
'14.\d' { $nextOSVersion = 'NotYetDefined' }
|
||||
'12.\d' { $nextOSVersion = 'macOS Ventura|macOS Sonoma|macOS Sequoia' }
|
||||
'13.\d' { $nextOSVersion = 'macOS Sonoma|macOS Sequoia' }
|
||||
'14.\d' { $nextOSVersion = 'macOS Sequoia' }
|
||||
}
|
||||
|
||||
$url = "https://raw.githubusercontent.com/actions/runner-images/main/images/macos/assets/auto-software-update-arm64.exp"
|
||||
$script = Invoke-RestMethod -Uri $url
|
||||
foreach ($update in $listOfUpdates) {
|
||||
if ($update -notmatch "$nextOSVersion") {
|
||||
foreach ($update in $ListOfUpdates) {
|
||||
if ($update -notmatch $nextOSVersion) {
|
||||
$updatedScript = $script.Replace("MACOSUPDATE", $($($update.trim()).Replace(" ","\ ")))
|
||||
$base64 = [Convert]::ToBase64String($updatedScript.ToCharArray())
|
||||
$command = "echo $base64 | base64 --decode > ./auto-software-update-arm64.exp;chmod +x ./auto-software-update-arm64.exp; ./auto-software-update-arm64.exp ${Password};rm ./auto-software-update-arm64.exp"
|
||||
@@ -109,9 +110,7 @@ function Get-MacOSIPSWInstaller {
|
||||
[bool] $BetaSearch = $false
|
||||
)
|
||||
|
||||
if ($MacOSVersion -eq [version] "12.0") {
|
||||
$MacOSName = "macOS Monterey"
|
||||
} elseif ($MacOSVersion -eq [version] "13.0") {
|
||||
if ($MacOSVersion -eq [version] "13.0") {
|
||||
$MacOSName = "macOS Ventura"
|
||||
} elseif ($MacOSVersion -eq [version] "14.0") {
|
||||
$MacOSName = "macOS Sonoma"
|
||||
|
||||
@@ -1,151 +0,0 @@
|
||||
jobs:
|
||||
- job: Image_generation
|
||||
displayName: Image Generation (${{ parameters.image_label }})
|
||||
timeoutInMinutes: 1200
|
||||
pool:
|
||||
name: Mac-Cloud Image Generation
|
||||
demands:
|
||||
- PrimaryRackAgent -equals ${{ parameters.primary_agent }}
|
||||
variables:
|
||||
- group: ${{ parameters.variable_group_name }}
|
||||
|
||||
steps:
|
||||
- pwsh: |
|
||||
$cleanBuildNumber = "$(Build.BuildNumber)" -replace "(.+_unstable)(\.\d+)", '$1'
|
||||
$virtualMachineName = "${cleanBuildNumber}.$(System.JobAttempt)"
|
||||
echo "##vso[task.setvariable variable=VirtualMachineName;]$virtualMachineName"
|
||||
echo "##vso[build.updatebuildnumber]$virtualMachineName"
|
||||
displayName: Update BuildNumber
|
||||
|
||||
- checkout: self
|
||||
clean: true
|
||||
fetchDepth: 1
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: 'Validate contributor permissions'
|
||||
condition: startsWith(variables['Build.SourceBranch'], 'refs/pull/')
|
||||
inputs:
|
||||
targetType: 'filePath'
|
||||
filePath: ./images.CI/macos/validate-contributor.ps1
|
||||
pwsh: true
|
||||
arguments: -RepositoryName "$(Build.Repository.Name)" `
|
||||
-AccessToken "$(github-feed-token)" `
|
||||
-SourceBranch "$(Build.SourceBranch)" `
|
||||
-ContributorAllowList "$(CONTRIBUTOR_ALLOWLIST)"
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: 'Download custom repository'
|
||||
condition: and(ne(variables['CUSTOM_REPOSITORY_URL'], ''), ne(variables['CUSTOM_REPOSITORY_BRANCH'], ''))
|
||||
inputs:
|
||||
targetType: 'filePath'
|
||||
filePath: ./images.CI/download-repo.ps1
|
||||
arguments: -RepoUrl $(CUSTOM_REPOSITORY_URL) `
|
||||
-RepoBranch $(CUSTOM_REPOSITORY_BRANCH)
|
||||
|
||||
- task: DeleteFiles@1
|
||||
displayName: Clean up self-hosted machine
|
||||
inputs:
|
||||
SourceFolder: 'images/macos/provision/log/'
|
||||
RemoveSourceFolder: true
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: 'Select datastore'
|
||||
inputs:
|
||||
targetType: 'filePath'
|
||||
filePath: ./images.CI/macos/select-datastore.ps1
|
||||
arguments: -VMName "$(VirtualMachineName)" `
|
||||
-VIServer "$(vcenter-server-v2)" `
|
||||
-VIUserName "$(vcenter-username-v2)" `
|
||||
-VIPassword '$(vcenter-password-v2)' `
|
||||
-Cluster "$(esxi-cluster-v2)"
|
||||
|
||||
- pwsh: |
|
||||
$SensitiveData = @(
|
||||
'IP address:',
|
||||
'Using ssh communicator to connect:'
|
||||
)
|
||||
|
||||
packer init ${{ parameters.template_path }}
|
||||
packer build -on-error=abort `
|
||||
-var="vcenter_server=$(vcenter-server-v2)" `
|
||||
-var="vcenter_username=$(vcenter-username-v2)" `
|
||||
-var='vcenter_password=$(vcenter-password-v2)' `
|
||||
-var="vcenter_datacenter=$(vcenter-datacenter-v2)" `
|
||||
-var="cluster_or_esxi_host=$(esxi-cluster-v2)" `
|
||||
-var="esxi_datastore=$(buildDatastore)" `
|
||||
-var="output_folder=$(output-folder)" `
|
||||
-var="vm_username=$(vm-username)" `
|
||||
-var="vm_password=$(vm-password)" `
|
||||
-var="github_api_pat=$(github_api_pat)" `
|
||||
-var="build_id=$(VirtualMachineName)" `
|
||||
-var="baseimage_name=${{ parameters.base_image_name }}" `
|
||||
-var="xcode_install_storage_url=$(xcode_install_storage_url)" `
|
||||
-var="xcode_install_sas=$(xcode_install_sas)" `
|
||||
-color=false `
|
||||
${{ parameters.template_path }} `
|
||||
| Where-Object {
|
||||
#Filter sensitive data from Packer logs
|
||||
$currentString = $_
|
||||
$sensitiveString = $SensitiveData | Where-Object { $currentString -match $_ }
|
||||
$sensitiveString -eq $null
|
||||
}
|
||||
displayName: 'Build VM'
|
||||
workingDirectory: 'images/macos'
|
||||
env:
|
||||
PACKER_LOG: 1
|
||||
PACKER_LOG_PATH: $(Agent.TempDirectory)/packer-log.txt
|
||||
|
||||
- bash: |
|
||||
echo "Copy software report files"
|
||||
cp -vR "images/image-output/software-report/." "$(Build.ArtifactStagingDirectory)/"
|
||||
|
||||
echo "Put VM name to 'VM_Done_Name' file"
|
||||
echo "$(VirtualMachineName)" > "$(Build.ArtifactStagingDirectory)/VM_Done_Name"
|
||||
displayName: Prepare artifact
|
||||
|
||||
- bash: |
|
||||
cat "$(Build.ArtifactStagingDirectory)/systeminfo.md"
|
||||
displayName: Print markdown software report
|
||||
|
||||
- bash: |
|
||||
cat "$(Build.ArtifactStagingDirectory)/systeminfo.json"
|
||||
displayName: Print json software report
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
inputs:
|
||||
ArtifactName: 'Built_VM_Artifacts'
|
||||
displayName: Publish Artifacts
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: 'Print provisioners duration'
|
||||
inputs:
|
||||
targetType: 'filePath'
|
||||
filePath: ./images.CI/measure-provisioners-duration.ps1
|
||||
arguments: -PackerLogPath "$(Agent.TempDirectory)/packer-log.txt" `
|
||||
-PrintTopNLongest 25
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: 'Move vm to cold storage and clear datastore tag'
|
||||
condition: always()
|
||||
inputs:
|
||||
targetType: 'filePath'
|
||||
filePath: ./images.CI/macos/move-vm.ps1
|
||||
arguments: -VMName "$(VirtualMachineName)" `
|
||||
-TargetDataStore "${{ parameters.target_datastore }}" `
|
||||
-VIServer "$(vcenter-server-v2)" `
|
||||
-VIUserName "$(vcenter-username-v2)" `
|
||||
-VIPassword '$(vcenter-password-v2)' `
|
||||
-CpuCount "$(cpu-count)" `
|
||||
-CoresPerSocketCount "$(cores-per-socket-count)" `
|
||||
-Memory "$(memory)"
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: 'Destroy VM (if build canceled only)'
|
||||
condition: eq(variables['Agent.JobStatus'], 'Canceled')
|
||||
inputs:
|
||||
targetType: 'filePath'
|
||||
filePath: ./images.CI/macos/destroy-vm.ps1
|
||||
arguments: -VMName "$(VirtualMachineName)" `
|
||||
-VIServer "$(vcenter-server-v2)" `
|
||||
-VIUserName "$(vcenter-username-v2)" `
|
||||
-VIPassword '$(vcenter-password-v2)'
|
||||
@@ -1,28 +0,0 @@
|
||||
name: macOS-11_$(date:yyyyMMdd)$(rev:.r)_unstable
|
||||
schedules:
|
||||
- cron: '45 0 * * *'
|
||||
displayName: Daily
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
always: true
|
||||
|
||||
trigger: none
|
||||
pr:
|
||||
autoCancel: true
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
|
||||
variables:
|
||||
- group: Mac-Cloud Image Generation
|
||||
|
||||
jobs:
|
||||
- template: image-generation.yml
|
||||
parameters:
|
||||
image_label: 'macOS Big Sur'
|
||||
base_image_name: 'clean-macOS-11-380Gb-runner'
|
||||
template_path: 'templates/macOS-11.pkr.hcl'
|
||||
target_datastore: 'ds-image'
|
||||
variable_group_name: 'Mac-Cloud Image Generation'
|
||||
primary_agent: 'true'
|
||||
@@ -1,28 +0,0 @@
|
||||
name: macOS-12_$(date:yyyyMMdd)$(rev:.r)_unstable
|
||||
schedules:
|
||||
- cron: "0 0 * * *"
|
||||
displayName: Daily
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
always: true
|
||||
|
||||
trigger: none
|
||||
pr:
|
||||
autoCancel: true
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
|
||||
variables:
|
||||
- group: Mac-Cloud Image Generation
|
||||
|
||||
jobs:
|
||||
- template: image-generation.yml
|
||||
parameters:
|
||||
image_label: 'macOS Monterey'
|
||||
base_image_name: 'clean-macOS-12-380Gb-runner'
|
||||
template_path: 'templates/macOS-12.pkr.hcl'
|
||||
target_datastore: 'ds-image'
|
||||
variable_group_name: 'Mac-Cloud Image Generation'
|
||||
primary_agent: 'true'
|
||||
@@ -1,23 +0,0 @@
|
||||
name: macOS-11_$(date:yyyyMMdd)$(rev:.r)_unstable
|
||||
schedules:
|
||||
- cron: '45 0 * * 1'
|
||||
displayName: Weekly
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
always: true
|
||||
|
||||
trigger: none
|
||||
|
||||
variables:
|
||||
- group: Mac-Cloud Image Generation
|
||||
|
||||
jobs:
|
||||
- template: image-generation.yml
|
||||
parameters:
|
||||
image_label: 'macOS Big Sur'
|
||||
base_image_name: 'clean-macOS-11-380Gb-runner'
|
||||
template_path: 'templates/macOS-11.pkr.hcl'
|
||||
target_datastore: 'ds-image'
|
||||
variable_group_name: 'Mac-Cloud Secondary Image Generation'
|
||||
primary_agent: 'false'
|
||||
@@ -1,23 +0,0 @@
|
||||
name: macOS-12_$(date:yyyyMMdd)$(rev:.r)_unstable
|
||||
schedules:
|
||||
- cron: '45 1 * * 1'
|
||||
displayName: Weekly
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
always: true
|
||||
|
||||
trigger: none
|
||||
|
||||
variables:
|
||||
- group: Mac-Cloud Image Generation
|
||||
|
||||
jobs:
|
||||
- template: image-generation.yml
|
||||
parameters:
|
||||
image_label: 'macOS Monterey'
|
||||
base_image_name: 'clean-macOS-12-380Gb-runner'
|
||||
template_path: 'templates/macOS-12.pkr.hcl'
|
||||
target_datastore: 'ds-image'
|
||||
variable_group_name: 'Mac-Cloud Secondary Image Generation'
|
||||
primary_agent: 'false'
|
||||
@@ -1,95 +0,0 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
|
||||
This script deletes vm from vCenter
|
||||
|
||||
.PARAMETER VMName
|
||||
VM name to delete (Example "macOS-10.15_20201012.4")
|
||||
|
||||
.PARAMETER VIServer
|
||||
vCenter address (Example "10.0.1.16")
|
||||
|
||||
.PARAMETER VIUserName
|
||||
vCenter username (Example "Administrator")
|
||||
|
||||
.PARAMETER VIPassword
|
||||
vCenter password (Example "12345678")
|
||||
#>
|
||||
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VMName,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIServer,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIUserName,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIPassword
|
||||
)
|
||||
|
||||
# Import helpers module
|
||||
Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking
|
||||
|
||||
# Connection to a vCenter Server system
|
||||
Connect-VCServer -VIServer $VIServer -VIUserName $VIUserName -VIPassword $VIPassword
|
||||
|
||||
# Check vm clone status
|
||||
$chainId = (Get-VIEvent -Entity $VMName).ChainId
|
||||
if ($chainId)
|
||||
{
|
||||
$task = Get-Task -Status Running | Where-Object { ($_.Name -eq 'CloneVM_Task') -and ($_.ExtensionData.Info.EventChainId -in $chainId) }
|
||||
if ($task)
|
||||
{
|
||||
try
|
||||
{
|
||||
Stop-Task -Task $task -Confirm:$false -ErrorAction Stop
|
||||
Write-Host "The vm '$VMName' clone task has been canceled"
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-Host "##vso[task.LogIssue type=error;]Failed to cancel the task"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Remove a vm
|
||||
$vm = Get-VM -Name $VMName -ErrorAction SilentlyContinue
|
||||
|
||||
if ($vm)
|
||||
{
|
||||
$vmState = $vm.PowerState
|
||||
if ($vmState -ne "PoweredOff")
|
||||
{
|
||||
try
|
||||
{
|
||||
$null = Stop-VM -VM $vm -Confirm:$false -ErrorAction Stop
|
||||
Write-Host "The vm '$VMName' has been powered off"
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-Host "##vso[task.LogIssue type=error;]Failed to shutdown '$VMName'"
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
Remove-VM -VM $vm -DeletePermanently -Confirm:$false -ErrorAction Stop
|
||||
Write-Host "The vm '$VMName' has been removed"
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-Host "##vso[task.LogIssue type=error;]Failed to remove '$VMName'"
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "VM '$VMName' not found"
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
|
||||
Helper functions to use in images.CI scripts
|
||||
#>
|
||||
|
||||
Function Connect-VCServer
|
||||
{
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
[System.String]$VIUserName,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[System.String]$VIPassword,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[System.String]$VIServer
|
||||
)
|
||||
|
||||
try
|
||||
{
|
||||
# Preference
|
||||
$global:ProgressPreference = 'SilentlyContinue'
|
||||
$global:WarningPreference = 'SilentlyContinue'
|
||||
# Ignore SSL
|
||||
$null = Set-PowerCLIConfiguration -Scope Session -InvalidCertificateAction Ignore -ParticipateInCEIP $false -Confirm:$false -WebOperationTimeoutSeconds 600
|
||||
$securePassword = ConvertTo-SecureString -String $VIPassword -AsPlainText -Force
|
||||
$cred = New-Object System.Management.Automation.PSCredential($VIUserName, $securePassword)
|
||||
$null = Connect-VIServer -Server $VIServer -Credential $cred -ErrorAction Stop
|
||||
Write-Host "Connection to the vSphere server has been established"
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-Host "##vso[task.LogIssue type=error;]Failed to connect to the vSphere server"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
@@ -1,86 +0,0 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
|
||||
This script migrates given VM to another datastore
|
||||
|
||||
.PARAMETER VMName
|
||||
VM name to migrate (Example "macOS-10.15_20201012.4")
|
||||
|
||||
.PARAMETER TargetDataStore
|
||||
Target datastore (Example "ds-image")
|
||||
|
||||
.PARAMETER VIServer
|
||||
vCenter address (Example "10.0.1.16")
|
||||
|
||||
.PARAMETER VIUserName
|
||||
vCenter username (Example "Administrator")
|
||||
|
||||
.PARAMETER VIPassword
|
||||
vCenter password (Example "12345678")
|
||||
#>
|
||||
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VMName,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$TargetDataStore,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIServer,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIUserName,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIPassword,
|
||||
|
||||
[string]$JobStatus,
|
||||
|
||||
[int32]$CpuCount,
|
||||
|
||||
[int32]$CoresPerSocketCount,
|
||||
|
||||
[int64]$Memory
|
||||
)
|
||||
|
||||
# Import helpers module
|
||||
Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking
|
||||
|
||||
# Connection to a vCenter Server system
|
||||
Connect-VCServer -VIServer $VIServer -VIUserName $VIUserName -VIPassword $VIPassword
|
||||
|
||||
# Clear previously assigned tag with VM Name
|
||||
try {
|
||||
Remove-Tag $VMName -Confirm:$false
|
||||
} catch {
|
||||
Write-Host "Tag with $VMName doesn't exist"
|
||||
}
|
||||
|
||||
$vm = Get-VM $VMName
|
||||
if (($env:AGENT_JOBSTATUS -and $env:AGENT_JOBSTATUS -eq 'Failed') -or ($JobStatus -and $JobStatus -eq 'failure')) {
|
||||
try {
|
||||
if ($vm.PowerState -ne "PoweredOff") {
|
||||
Stop-VM -VM $vm -Confirm:$false -ErrorAction Stop | Out-Null
|
||||
}
|
||||
Set-VM -VM $vm -Name "${VMName}_failed" -Confirm:$false -ErrorAction Stop | Out-Null
|
||||
Write-Host "VM has been successfully powered off and renamed to [${VMName}_failed]"
|
||||
} catch {
|
||||
Write-Host "##vso[task.LogIssue type=error;]Failed to power off and rename VM '$VMName'"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
Move-VM -Vm $vm -Datastore $TargetDataStore -ErrorAction Stop | Out-Null
|
||||
Write-Host "VM has been moved successfully to target datastore '$TargetDataStore'"
|
||||
} catch {
|
||||
Write-Host "##vso[task.LogIssue type=error;]Failed to move VM '$VMName' to target datastore '$TargetDataStore'"
|
||||
exit 1
|
||||
}
|
||||
@@ -1,117 +0,0 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
|
||||
This script selects local datastore based on the following rules:
|
||||
|
||||
- Name starts with ds-local-Datastore
|
||||
- Datastore FreespaceGB > 400 Gb
|
||||
- VM count on the datastore < 2
|
||||
|
||||
.PARAMETER VIServer
|
||||
vCenter address (Example "10.0.1.16")
|
||||
|
||||
.PARAMETER VIUserName
|
||||
vCenter username (Example "Administrator")
|
||||
|
||||
.PARAMETER VIPassword
|
||||
vCenter password (Example "12345678")
|
||||
#>
|
||||
|
||||
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VMName,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIServer,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIUserName,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIPassword,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$Cluster,
|
||||
|
||||
[string]$TagCategory = "Busy"
|
||||
)
|
||||
|
||||
# Import helpers module
|
||||
Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking
|
||||
|
||||
function Select-DataStore {
|
||||
param (
|
||||
[string]$VMName,
|
||||
[string]$TagCategory,
|
||||
[string]$TemplateDatastore = "ds-local-Datastore-*",
|
||||
[string]$Cluster,
|
||||
[int]$ThresholdInGb = 400,
|
||||
[int]$VMCount = 2,
|
||||
[int]$Retries = 5
|
||||
)
|
||||
|
||||
# 1. Name starts with ds-local-Datastore
|
||||
# 2. FreespaceGB > 400 Gb
|
||||
# 3. Choose a datastore with the minimal VM count < 2
|
||||
|
||||
Write-Host "Start Datastore selection process..."
|
||||
$clusterHosts = Get-Cluster -Name $Cluster | Get-VMHost
|
||||
$availableClusterDatastores = $clusterHosts | Get-Datastore -Name $TemplateDatastore | Where-Object -Property State -eq "Available"
|
||||
$availableDatastores = $availableClusterDatastores `
|
||||
| Where-Object { $_.FreeSpaceGB -ge $thresholdInGb } `
|
||||
| Where-Object {
|
||||
$vmOnDatastore = @((Get-ChildItem -Path $_.DatastoreBrowserPath).Name -notmatch '(^\.|vmkdump)').Count
|
||||
$vmOnDatastore -lt $vmCount } `
|
||||
| Group-Object -Property { $vmOnDatastore }
|
||||
|
||||
$datastore = $availableDatastores | Select-Object @{n="VmCount";e={$_.Name}},@{n="DatastoreName";e={$_.Group | Get-Random}} -First 1
|
||||
$buildDatastore = $datastore.DatastoreName
|
||||
|
||||
$tag = Get-Tag -Category $TagCategory -Name $VMName -ErrorAction Ignore
|
||||
if (-not $tag)
|
||||
{
|
||||
$tag = New-Tag -Name $VMName -Category $TagCategory
|
||||
}
|
||||
|
||||
New-TagAssignment -Tag $tag -Entity $buildDatastore | Out-Null
|
||||
|
||||
# Wait for 60 seconds to check if any other tags are assigned to the same datastore
|
||||
Start-Sleep -Seconds 60
|
||||
# If there are no datastores with 0 VMs, take a datastore with 1 VM (index 1 if datastore has 0 VMs and 2 if 1 VM)
|
||||
$index = 1 + [int]$datastore.VmCount
|
||||
$tagAssignments = (Get-TagAssignment -Entity $buildDatastore).Tag.Name | Select-Object -First $index
|
||||
$isAllow = $tagAssignments -contains $VMName
|
||||
|
||||
if ($isAllow)
|
||||
{
|
||||
Write-Host "Datastore selected successfully"
|
||||
Write-Host "##vso[task.setvariable variable=buildDatastore;issecret=true]$buildDatastore"
|
||||
return
|
||||
}
|
||||
|
||||
# Remove the tag if datastore wasn't selected
|
||||
Remove-Tag $tag -Confirm:$false
|
||||
|
||||
$retries--
|
||||
if ($retries -le 0)
|
||||
{
|
||||
Write-Host "##vso[task.LogIssue type=error;]No datastores found for the condition"
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host "Datastore select failed, $retries left"
|
||||
Select-DataStore -VMName $VMName -Cluster $Cluster -TagCategory $TagCategory -Retries $retries
|
||||
}
|
||||
|
||||
# Connection to a vCenter Server system
|
||||
Connect-VCServer -VIServer $VIServer -VIUserName $VIUserName -VIPassword $VIPassword
|
||||
|
||||
# Get a target datastore for current deployment
|
||||
Select-DataStore -VMName $VMName -Cluster $Cluster -TagCategory $TagCategory
|
||||
@@ -1,73 +0,0 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
|
||||
This script sets resources for VM
|
||||
|
||||
.PARAMETER VMName
|
||||
VM name to resize (Example "macOS-10.15_20201012.4")
|
||||
|
||||
.PARAMETER VIServer
|
||||
vCenter address (Example "10.0.1.16")
|
||||
|
||||
.PARAMETER VIUserName
|
||||
vCenter username (Example "Administrator")
|
||||
|
||||
.PARAMETER VIPassword
|
||||
vCenter password (Example "12345678")
|
||||
|
||||
.PARAMETER CpuCount
|
||||
Target number of CPUs (Example "3")
|
||||
|
||||
.PARAMETER CoresPerSocketCount
|
||||
Target number of cores per socket (Example "3")
|
||||
|
||||
.PARAMETER Memory
|
||||
Target amount of memory in MB (Example "14336")
|
||||
|
||||
#>
|
||||
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VMName,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIServer,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIUserName,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIPassword,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[int32]$CpuCount,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[int32]$CoresPerSocketCount,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[int64]$Memory
|
||||
)
|
||||
|
||||
# Import helpers module
|
||||
Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking
|
||||
|
||||
# Connection to a vCenter Server system
|
||||
Connect-VCServer -VIServer $VIServer -VIUserName $VIUserName -VIPassword $VIPassword
|
||||
|
||||
$vm = Get-VM $VMName
|
||||
try {
|
||||
Write-Host "Change CPU count to $CpuCount, cores count to $CoresPerSocketCount, amount of RAM to $Memory"
|
||||
$vm | Set-VM -NumCPU $CpuCount -CoresPerSocket $CoresPerSocketCount -MemoryMB $Memory -Confirm:$false -ErrorAction Stop | Out-Null
|
||||
} catch {
|
||||
Write-Host "##vso[task.LogIssue type=error;]Failed to change specs for VM '$VMName'"
|
||||
exit 1
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
param(
|
||||
[Parameter(Mandatory)] [string] $RepositoryName,
|
||||
[Parameter(Mandatory)] [string] $AccessToken,
|
||||
[Parameter(Mandatory)] [string] $SourceBranch,
|
||||
[Parameter(Mandatory)] [string] $ContributorAllowList
|
||||
)
|
||||
|
||||
function Build-AuthHeader {
|
||||
param(
|
||||
[Parameter(Mandatory)] [string] $AccessToken
|
||||
)
|
||||
|
||||
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("'':${AccessToken}"))
|
||||
return "Basic ${base64AuthInfo}"
|
||||
}
|
||||
|
||||
function Get-PullRequest {
|
||||
param(
|
||||
[Parameter(Mandatory)] [string] $RepositoryName,
|
||||
[Parameter(Mandatory)] [string] $AccessToken,
|
||||
[Parameter(Mandatory)] [UInt32] $PullRequestNumber
|
||||
)
|
||||
|
||||
$requestUrl = "https://api.github.com/repos/$RepositoryName/pulls/$PullRequestNumber"
|
||||
$authHeader = Build-AuthHeader -AccessToken $AccessToken
|
||||
|
||||
$params = @{
|
||||
Method = "GET"
|
||||
ContentType = "application/json"
|
||||
Uri = $requestUrl
|
||||
Headers = @{ Authorization = $authHeader }
|
||||
}
|
||||
|
||||
return Invoke-RestMethod @params
|
||||
}
|
||||
|
||||
function Validate-ContributorPermissions {
|
||||
param(
|
||||
[Parameter(Mandatory)] [string] $ContributorAllowList,
|
||||
[Parameter(Mandatory)] [string] $ContributorName
|
||||
)
|
||||
|
||||
$allowedContributors = $ContributorAllowList.Split(",").Trim()
|
||||
$validСontributor = $allowedContributors | Where-Object { $_ -eq $ContributorName } `
|
||||
| Select-Object -First 1
|
||||
|
||||
if (-not $validСontributor) {
|
||||
Write-Host "Failed to start this build. '$ContributorName' is an unknown contributor"
|
||||
Write-Host "Please add '$ContributorName' to the allowed list to run builds"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
$pullRequestNumber = $SourceBranch.Split("/")[2]
|
||||
|
||||
$pullRequestInfo = Get-PullRequest -RepositoryName $RepositoryName `
|
||||
-AccessToken $AccessToken `
|
||||
-PullRequestNumber $pullRequestNumber
|
||||
|
||||
$contributorName = $pullRequestInfo.user.login
|
||||
|
||||
Validate-ContributorPermissions -ContributorAllowList $ContributorAllowList `
|
||||
-ContributorName $contributorName
|
||||
@@ -1,53 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
|
||||
# Select any Xamarin SDK versions as the default ones independently by specifying only those versions that need to be changed.
|
||||
# Examples:
|
||||
# 1. Change all versions: $VM_ASSETS/select-xamarin-sdkv-v2.sh --mono=6.12 --ios=14.8 --android=10.2 --mac=7.8
|
||||
# 2. Change default Mono and iOS only: $VM_ASSETS/select-xamarin-sdkv-v2.sh --mono=6.12 --ios=14.8
|
||||
# 3. Change default Android only: $VM_ASSETS/select-xamarin-sdkv-v2.sh --android=11.1
|
||||
|
||||
get_framework_path() {
|
||||
case $1 in
|
||||
--mono) echo '/Library/Frameworks/Mono.framework/Versions' ;;
|
||||
--ios) echo '/Library/Frameworks/Xamarin.iOS.framework/Versions' ;;
|
||||
--android) echo '/Library/Frameworks/Xamarin.Android.framework/Versions' ;;
|
||||
--mac) echo '/Library/Frameworks/Xamarin.Mac.framework/Versions' ;;
|
||||
*) ;;
|
||||
esac
|
||||
}
|
||||
|
||||
change_framework_version() {
|
||||
local framework=$1
|
||||
local version=$2
|
||||
|
||||
echo "Select $framework $version"
|
||||
|
||||
local countDigit=$(echo "${version}" | grep -o "\." | grep -c "\.")
|
||||
|
||||
if [[ countDigit -gt 1 ]]; then
|
||||
echo "[WARNING] It is not recommended to specify the exact framework version because your build can be broken with the next patch update. Consider using "major.minor" only format."
|
||||
fi
|
||||
|
||||
local framework_path=$(get_framework_path "$framework")
|
||||
|
||||
if [ -d "${framework_path}/${version}" ]; then
|
||||
sudo rm -f ${framework_path}/Current
|
||||
sudo ln -s "${framework_path}/${version}" "${framework_path}/Current"
|
||||
else
|
||||
echo "Invalid framework version ${framework_path}/${version}"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
for arg in "$@"; do
|
||||
key=$(echo $arg | cut -f1 -d=)
|
||||
value=$(echo $arg | cut -f2 -d=)
|
||||
|
||||
case $key in
|
||||
--mono | --ios | --android | --mac) change_framework_version $key $value ;;
|
||||
*)
|
||||
echo "Invalid parameter <${key}>"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
@@ -1,22 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
if [ -z "$1" ]; then
|
||||
echo "No Xamarin SDK specified."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
XAMARIN_SDK=$1
|
||||
|
||||
echo "Set Xamarin SDK to ${XAMARIN_SDK}"
|
||||
FOLDERS_LIST=(
|
||||
'/Library/Frameworks/Mono.framework/Versions'
|
||||
'/Library/Frameworks/Xamarin.iOS.framework/Versions'
|
||||
'/Library/Frameworks/Xamarin.Android.framework/Versions'
|
||||
'/Library/Frameworks/Xamarin.Mac.framework/Versions'
|
||||
)
|
||||
|
||||
for FOLDER in "${FOLDERS_LIST[@]}"
|
||||
do
|
||||
echo "Set Current folder for ${FOLDER}"
|
||||
sudo rm -f ${FOLDER}/Current
|
||||
sudo ln -s ${FOLDER}/${XAMARIN_SDK} ${FOLDER}/Current
|
||||
done
|
||||
@@ -1,377 +0,0 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[macOS] GCC 11 will be removed from all macOS images on August 12](https://github.com/actions/runner-images/issues/10213) |
|
||||
| [[macOS] Default Xcode on macOS 14 Sonoma will be set to Xcode 15.4 on July, 22](https://github.com/actions/runner-images/issues/10121) |
|
||||
| [[macOS] Default Xcode on macOS 13 Ventura will be set to Xcode 15.2 on July, 15](https://github.com/actions/runner-images/issues/10120) |
|
||||
***
|
||||
# macOS 12
|
||||
- OS Version: macOS 12.7.5 (21H1222)
|
||||
- Kernel Version: Darwin 21.6.0
|
||||
- Image Version: 20240714.2
|
||||
|
||||
## Installed Software
|
||||
|
||||
### Language and Runtime
|
||||
- .NET Core SDK: 6.0.424, 7.0.102, 7.0.202, 7.0.306, 7.0.410, 8.0.101, 8.0.204, 8.0.303
|
||||
- Bash 3.2.57(1)-release
|
||||
- Clang/LLVM 14.0.0
|
||||
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
|
||||
- GCC 11 (Homebrew GCC 11.4.0) - available by `gcc-11` alias
|
||||
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
|
||||
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
|
||||
- GCC 14 (Homebrew GCC 14.1.0_2) - available by `gcc-14` alias
|
||||
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
|
||||
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
|
||||
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
|
||||
- GNU Fortran 14 (Homebrew GCC 14.1.0_2) - available by `gfortran-14` alias
|
||||
- Julia 1.10.4
|
||||
- Kotlin 2.0.0-release-341
|
||||
- Go 1.21.12
|
||||
- Mono 6.12.0.188
|
||||
- Node.js 18.20.4
|
||||
- MSBuild 16.10.1.51301 (Mono 6.12.0.188)
|
||||
- NVM 0.39.7
|
||||
- NVM - Cached node versions: 16.20.2, 18.20.4, 20.15.1
|
||||
- Perl 5.38.2
|
||||
- PHP 8.3.9
|
||||
- Python 2.7.18
|
||||
- Python3 3.12.4
|
||||
- R 4.4.1
|
||||
- Ruby 3.0.7p220
|
||||
|
||||
### Package Management
|
||||
- Bundler 2.5.15
|
||||
- Carthage 0.39.1
|
||||
- CocoaPods 1.15.2
|
||||
- Composer 2.7.7
|
||||
- Homebrew 4.3.9
|
||||
- Miniconda 24.5.0
|
||||
- NPM 10.7.0
|
||||
- NuGet 6.3.1.1
|
||||
- Pip 20.3.4 (python 2.7)
|
||||
- Pip3 24.1.2 (python 3.12)
|
||||
- Pipx 1.6.0
|
||||
- RubyGems 3.5.15
|
||||
- Vcpkg 2024 (build from commit 7aeffc910)
|
||||
- Yarn 1.22.22
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| ----------------------- | ---------------------- |
|
||||
| CONDA | /usr/local/miniconda |
|
||||
| VCPKG_INSTALLATION_ROOT | /usr/local/share/vcpkg |
|
||||
|
||||
### Project Management
|
||||
- Apache Ant 1.10.14
|
||||
- Apache Maven 3.9.8
|
||||
- Gradle 8.9
|
||||
- Sbt 1.10.1
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.05
|
||||
- aria2 1.37.0
|
||||
- azcopy 10.25.1
|
||||
- bazel 7.2.1
|
||||
- bazelisk 1.20.0
|
||||
- bsdtar 3.5.1 - available by 'tar' alias
|
||||
- Curl 8.8.0
|
||||
- Git 2.45.2
|
||||
- Git LFS 3.5.1
|
||||
- GitHub CLI 2.52.0
|
||||
- GNU Tar 1.35 - available by 'gtar' alias
|
||||
- GNU Wget 1.24.5
|
||||
- gpg (GnuPG) 2.4.5
|
||||
- ImageMagick 7.1.1-34
|
||||
- jq 1.7.1
|
||||
- mongo 5.0.28
|
||||
- mongod 5.0.28
|
||||
- OpenSSL 1.1.1w 11 Sep 2023
|
||||
- Packer 1.9.4
|
||||
- pkg-config 0.29.2
|
||||
- PostgreSQL 14.12 (Homebrew)
|
||||
- psql (PostgreSQL) 14.12 (Homebrew)
|
||||
- Sox 14.4.2
|
||||
- Subversion (SVN) 1.14.3
|
||||
- Switchaudio-osx 1.2.2
|
||||
- Vagrant 2.4.1
|
||||
- VirtualBox 6.1.38r153438
|
||||
- yq 4.44.2
|
||||
- zstd 1.5.6
|
||||
|
||||
### Tools
|
||||
- App Center CLI 3.0.1
|
||||
- AWS CLI 2.17.13
|
||||
- AWS SAM CLI 1.120.0
|
||||
- AWS Session Manager CLI 1.2.650.0
|
||||
- Azure CLI 2.62.0
|
||||
- Azure CLI (azure-devops) 1.0.1
|
||||
- Bicep CLI 0.28.1
|
||||
- Cabal 3.10.3.0
|
||||
- Cmake 3.30.0
|
||||
- CodeQL Action Bundle 2.18.0
|
||||
- Colima 0.6.9
|
||||
- Fastlane 2.221.1
|
||||
- GHC 9.10.1
|
||||
- GHCup 0.1.30.0
|
||||
- Jazzy 0.15.1
|
||||
- Stack 2.15.7
|
||||
- SwiftFormat 0.54.1
|
||||
- Swig 4.2.1
|
||||
- Xcbeautify 1.6.0
|
||||
- Xcode Command Line Tools 14.2.0.0.1.1668646533
|
||||
- Xcodes 1.5.0
|
||||
|
||||
### Linters
|
||||
- SwiftLint 0.53.0
|
||||
- Yamllint 1.35.1
|
||||
|
||||
### Browsers
|
||||
- Safari 17.5 (17618.2.12.111.5)
|
||||
- SafariDriver 17.5 (17618.2.12.111.5)
|
||||
- Google Chrome 126.0.6478.127
|
||||
- Google Chrome for Testing 126.0.6478.126
|
||||
- ChromeDriver 126.0.6478.126
|
||||
- Microsoft Edge 126.0.2592.102
|
||||
- Microsoft Edge WebDriver 126.0.2592.102
|
||||
- Mozilla Firefox 128.0
|
||||
- geckodriver 0.34.0
|
||||
- Selenium server 4.22.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| --------------- | ------------------------------------- |
|
||||
| CHROMEWEBDRIVER | /usr/local/share/chromedriver-mac-x64 |
|
||||
| EDGEWEBDRIVER | /usr/local/share/edge_driver |
|
||||
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
|
||||
|
||||
### Java
|
||||
| Version | Environment Variable |
|
||||
| ------------------- | -------------------- |
|
||||
| 8.0.412+8 (default) | JAVA_HOME_8_X64 |
|
||||
| 11.0.23+9 | JAVA_HOME_11_X64 |
|
||||
| 17.0.11+9 | JAVA_HOME_17_X64 |
|
||||
| 21.0.3+9.0 | JAVA_HOME_21_X64 |
|
||||
|
||||
### Cached Tools
|
||||
|
||||
#### PyPy
|
||||
- 2.7.18 [PyPy 7.3.16]
|
||||
- 3.7.13 [PyPy 7.3.9]
|
||||
- 3.8.16 [PyPy 7.3.11]
|
||||
- 3.9.19 [PyPy 7.3.16]
|
||||
- 3.10.14 [PyPy 7.3.16]
|
||||
|
||||
#### Ruby
|
||||
- 3.0.7
|
||||
- 3.1.6
|
||||
|
||||
#### Python
|
||||
- 3.7.17
|
||||
- 3.8.18
|
||||
- 3.9.19
|
||||
- 3.10.14
|
||||
- 3.11.9
|
||||
- 3.12.4
|
||||
|
||||
#### Node.js
|
||||
- 16.20.2
|
||||
- 18.20.4
|
||||
- 20.15.1
|
||||
|
||||
#### Go
|
||||
- 1.20.14
|
||||
- 1.21.12
|
||||
- 1.22.5
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.79.0
|
||||
- Rust 1.79.0
|
||||
- Rustdoc 1.79.0
|
||||
- Rustup 1.27.1
|
||||
|
||||
#### Packages
|
||||
- Bindgen 0.69.4
|
||||
- Cargo-audit 0.20.0
|
||||
- Cargo-outdated 0.15.0
|
||||
- Cbindgen 0.26.0
|
||||
- Clippy 0.1.79
|
||||
- Rustfmt 1.7.0-stable
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.4.3
|
||||
|
||||
#### PowerShell Modules
|
||||
- Az: 12.1.0
|
||||
- MarkdownPS: 1.10
|
||||
- Pester: 5.6.1
|
||||
- PSScriptAnalyzer: 1.22.0
|
||||
|
||||
### Web Servers
|
||||
| Name | Version | ConfigFile | ServiceStatus | ListenPort |
|
||||
| ----- | ------- | ------------------------------- | ------------- | ---------- |
|
||||
| httpd | 2.4.61 | /usr/local/etc/httpd/httpd.conf | none | 80 |
|
||||
| nginx | 1.27.0 | /usr/local/etc/nginx/nginx.conf | none | 80 |
|
||||
|
||||
### Xamarin
|
||||
|
||||
#### Visual Studio for Mac
|
||||
| Version | Build | Path |
|
||||
| -------------- | ----------- | ------------------------------------ |
|
||||
| 2019 | 8.10.25.2 | /Applications/Visual Studio 2019.app |
|
||||
| 2022 (default) | 17.6.13.424 | /Applications/Visual Studio.app |
|
||||
|
||||
##### Notes
|
||||
```
|
||||
To use Visual Studio 2019 by default rename the app:
|
||||
mv "/Applications/Visual Studio.app" "/Applications/Visual Studio 2022.app"
|
||||
mv "/Applications/Visual Studio 2019.app" "/Applications/Visual Studio.app"
|
||||
```
|
||||
|
||||
#### Xamarin bundles
|
||||
| symlink | Xamarin.Mono | Xamarin.iOS | Xamarin.Mac | Xamarin.Android |
|
||||
| ----------------- | ------------ | ----------- | ----------- | --------------- |
|
||||
| 6_12_25 | 6.12 | 16.4 | 9.3 | 13.2 |
|
||||
| 6_12_24 | 6.12 | 16.2 | 9.1 | 13.2 |
|
||||
| 6_12_23 | 6.12 | 16.2 | 9.1 | 13.1 |
|
||||
| 6_12_22 | 6.12 | 16.1 | 9.0 | 13.1 |
|
||||
| 6_12_21 (default) | 6.12 | 16.0 | 8.12 | 13.1 |
|
||||
| 6_12_20 | 6.12 | 16.0 | 8.12 | 13.0 |
|
||||
| 6_12_19 | 6.12 | 15.12 | 8.12 | 13.0 |
|
||||
| 6_12_18 | 6.12 | 15.10 | 8.10 | 12.3 |
|
||||
| 6_12_17 | 6.12 | 15.10 | 8.10 | 12.2 |
|
||||
| 6_12_16 | 6.12 | 15.8 | 8.8 | 12.2 |
|
||||
| 6_12_15 | 6.12 | 15.8 | 8.8 | 12.1 |
|
||||
| 6_12_14 | 6.12 | 15.8 | 8.8 | 12.0 |
|
||||
| 6_12_13 | 6.12 | 15.6 | 8.6 | 12.0 |
|
||||
| 6_12_12 | 6.12 | 15.4 | 8.4 | 12.0 |
|
||||
| 6_12_11 | 6.12 | 15.2 | 8.2 | 12.0 |
|
||||
| 6_12_10 | 6.12 | 15.0 | 7.14 | 11.3 |
|
||||
|
||||
#### Unit Test Framework
|
||||
- NUnit 3.6.1
|
||||
|
||||
### Xcode
|
||||
| Version | Build | Path |
|
||||
| -------------- | -------- | ------------------------------ |
|
||||
| 14.2 (default) | 14C18 | /Applications/Xcode_14.2.app |
|
||||
| 14.1 | 14B47b | /Applications/Xcode_14.1.app |
|
||||
| 14.0.1 | 14A400 | /Applications/Xcode_14.0.1.app |
|
||||
| 13.4.1 | 13F100 | /Applications/Xcode_13.4.1.app |
|
||||
| 13.3.1 | 13E500a | /Applications/Xcode_13.3.1.app |
|
||||
| 13.2.1 | 13C100 | /Applications/Xcode_13.2.1.app |
|
||||
| 13.1 | 13A1030d | /Applications/Xcode_13.1.app |
|
||||
|
||||
#### Xcode Support Tools
|
||||
- xcpretty 0.3.0
|
||||
- xcversion 2.8.1
|
||||
|
||||
#### Installed SDKs
|
||||
| SDK | SDK Name | Xcode Version |
|
||||
| ----------------------- | -------------------- | ---------------------- |
|
||||
| macOS 12.0 | macosx12.0 | 13.1 |
|
||||
| macOS 12.1 | macosx12.1 | 13.2.1 |
|
||||
| macOS 12.3 | macosx12.3 | 13.3.1, 13.4.1, 14.0.1 |
|
||||
| macOS 13.0 | macosx13.0 | 14.1 |
|
||||
| macOS 13.1 | macosx13.1 | 14.2 |
|
||||
| iOS 15.0 | iphoneos15.0 | 13.1 |
|
||||
| iOS 15.2 | iphoneos15.2 | 13.2.1 |
|
||||
| iOS 15.4 | iphoneos15.4 | 13.3.1 |
|
||||
| iOS 15.5 | iphoneos15.5 | 13.4.1 |
|
||||
| iOS 16.0 | iphoneos16.0 | 14.0.1 |
|
||||
| iOS 16.1 | iphoneos16.1 | 14.1 |
|
||||
| iOS 16.2 | iphoneos16.2 | 14.2 |
|
||||
| Simulator - iOS 15.0 | iphonesimulator15.0 | 13.1 |
|
||||
| Simulator - iOS 15.2 | iphonesimulator15.2 | 13.2.1 |
|
||||
| Simulator - iOS 15.4 | iphonesimulator15.4 | 13.3.1 |
|
||||
| Simulator - iOS 15.5 | iphonesimulator15.5 | 13.4.1 |
|
||||
| Simulator - iOS 16.0 | iphonesimulator16.0 | 14.0.1 |
|
||||
| Simulator - iOS 16.1 | iphonesimulator16.1 | 14.1 |
|
||||
| Simulator - iOS 16.2 | iphonesimulator16.2 | 14.2 |
|
||||
| tvOS 15.0 | appletvos15.0 | 13.1 |
|
||||
| tvOS 15.2 | appletvos15.2 | 13.2.1 |
|
||||
| tvOS 15.4 | appletvos15.4 | 13.3.1, 13.4.1 |
|
||||
| tvOS 16.0 | appletvos16.0 | 14.0.1 |
|
||||
| tvOS 16.1 | appletvos16.1 | 14.1, 14.2 |
|
||||
| Simulator - tvOS 15.0 | appletvsimulator15.0 | 13.1 |
|
||||
| Simulator - tvOS 15.2 | appletvsimulator15.2 | 13.2.1 |
|
||||
| Simulator - tvOS 15.4 | appletvsimulator15.4 | 13.3.1, 13.4.1 |
|
||||
| Simulator - tvOS 16.0 | appletvsimulator16.0 | 14.0.1 |
|
||||
| Simulator - tvOS 16.1 | appletvsimulator16.1 | 14.1, 14.2 |
|
||||
| watchOS 8.0 | watchos8.0 | 13.1 |
|
||||
| watchOS 8.3 | watchos8.3 | 13.2.1 |
|
||||
| watchOS 8.5 | watchos8.5 | 13.3.1, 13.4.1 |
|
||||
| watchOS 9.0 | watchos9.0 | 14.0.1 |
|
||||
| watchOS 9.1 | watchos9.1 | 14.1, 14.2 |
|
||||
| Simulator - watchOS 8.0 | watchsimulator8.0 | 13.1 |
|
||||
| Simulator - watchOS 8.3 | watchsimulator8.3 | 13.2.1 |
|
||||
| Simulator - watchOS 8.5 | watchsimulator8.5 | 13.3.1, 13.4.1 |
|
||||
| Simulator - watchOS 9.0 | watchsimulator9.0 | 14.0.1 |
|
||||
| Simulator - watchOS 9.1 | watchsimulator9.1 | 14.1, 14.2 |
|
||||
| DriverKit 21.0.1 | driverkit21.0.1 | 13.1 |
|
||||
| DriverKit 21.2 | driverkit21.2 | 13.2.1 |
|
||||
| DriverKit 21.4 | driverkit21.4 | 13.3.1, 13.4.1, 14.0.1 |
|
||||
| DriverKit 22.1 | driverkit22.1 | 14.1 |
|
||||
| DriverKit 22.2 | driverkit22.2 | 14.2 |
|
||||
|
||||
#### Installed Simulators
|
||||
| OS | Xcode Version | Simulators |
|
||||
| ----------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| iOS 15.0 | 13.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 15.2 | 13.2.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 15.4 | 13.3.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPhone SE (3rd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 15.5 | 13.4.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPhone SE (3rd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 16.0 | 14.0.1 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPhone SE (3rd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 16.1 | 14.1 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (12.9-inch) (6th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 16.2 | 14.2 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (12.9-inch) (6th generation)<br>iPad Pro (9.7-inch) |
|
||||
| tvOS 15.0 | 13.1 | Apple TV<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p) (2nd generation) |
|
||||
| tvOS 15.2 | 13.2.1 | Apple TV<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p) (2nd generation) |
|
||||
| tvOS 15.4 | 13.3.1<br>13.4.1 | Apple TV<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p) (2nd generation) |
|
||||
| tvOS 16.0 | 13.1<br>13.2.1<br>13.3.1<br>13.4.1<br>14.0.1<br>14.1<br>14.2 | Apple TV<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p) (2nd generation) |
|
||||
| tvOS 16.1 | 13.1<br>13.2.1<br>13.3.1<br>13.4.1<br>14.0.1<br>14.1<br>14.2 | Apple TV<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p)<br>Apple TV 4K (at 1080p) (2nd generation) |
|
||||
| watchOS 8.0 | 13.1 | Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm<br>Apple Watch Series 7 - 41mm<br>Apple Watch Series 7 - 45mm |
|
||||
| watchOS 8.3 | 13.2.1 | Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm<br>Apple Watch Series 7 - 41mm<br>Apple Watch Series 7 - 45mm |
|
||||
| watchOS 8.5 | 13.3.1<br>13.4.1 | Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm<br>Apple Watch Series 6 - 40mm<br>Apple Watch Series 6 - 44mm<br>Apple Watch Series 7 - 41mm<br>Apple Watch Series 7 - 45mm |
|
||||
| watchOS 9.0 | 13.1<br>13.2.1<br>13.3.1<br>13.4.1<br>14.0.1<br>14.1<br>14.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
|
||||
| watchOS 9.1 | 13.1<br>13.2.1<br>13.3.1<br>13.4.1<br>14.0.1<br>14.1<br>14.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
|
||||
|
||||
### Android
|
||||
| Package Name | Version |
|
||||
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 8.0 |
|
||||
| Android Emulator | 34.2.16 |
|
||||
| Android SDK Build-tools | 35.0.0<br>34.0.0<br>33.0.0 33.0.1 33.0.2 33.0.3<br>32.0.0<br>31.0.0 |
|
||||
| Android SDK Platforms | android-35 (rev 1)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3)<br>android-32 (rev 1)<br>android-31 (rev 1) |
|
||||
| Android SDK Platform-Tools | 35.0.1 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.18.1<br>3.22.1 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 24.0.8215888<br>25.2.9519653 (default)<br>26.3.11579264 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| ----------------------- | --------------------------------------------------- |
|
||||
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
|
||||
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/25.2.9519653 |
|
||||
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/25.2.9519653 |
|
||||
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/25.2.9519653 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
### Miscellaneous
|
||||
- libXext 1.3.6
|
||||
- libXft 2.3.8
|
||||
- Tcl/Tk 8.6.14
|
||||
- Zlib 1.3.1
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| ----------------- | ----------------------------------------------------------------------------------------- |
|
||||
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v19/19.4.1-54985/ParallelsDesktop-19.4.1-54985.dmg |
|
||||
|
||||
##### Notes
|
||||
```
|
||||
If you want to use Parallels Desktop you should download a package from URL stored in
|
||||
PARALLELS_DMG_URL environment variable. A system extension is allowed for this version.
|
||||
```
|
||||
|
||||
+141
-124
@@ -1,106 +1,105 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[macOS] GCC 11 will be removed from all macOS images on August 12](https://github.com/actions/runner-images/issues/10213) |
|
||||
| [[macOS] Default Xcode on macOS 14 Sonoma will be set to Xcode 15.4 on July, 22](https://github.com/actions/runner-images/issues/10121) |
|
||||
| [[macOS] Default Xcode on macOS 13 Ventura will be set to Xcode 15.2 on July, 15](https://github.com/actions/runner-images/issues/10120) |
|
||||
| [[macOS] Ruby version 3.0 will be removed from the images on Feb 10, 2025 and 3.3 will be set as default. ](https://github.com/actions/runner-images/issues/11345) |
|
||||
| [[macOS] The macOS 12 Actions runner image will begin deprecation on 10/7/24 and will be fully unsupported by 12/3/24 for GitHub and by 01/13/25 for ADO](https://github.com/actions/runner-images/issues/10721) |
|
||||
| [macOS 15 (Sequoia) is now available as a public beta in GitHub Actions](https://github.com/actions/runner-images/issues/10686) |
|
||||
***
|
||||
# macOS 13
|
||||
- OS Version: macOS 13.6.7 (22G720)
|
||||
- OS Version: macOS 13.7.2 (22H313)
|
||||
- Kernel Version: Darwin 22.6.0
|
||||
- Image Version: 20240714.1
|
||||
- Image Version: 20250120.597
|
||||
|
||||
## Installed Software
|
||||
|
||||
### Language and Runtime
|
||||
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.410, 8.0.101, 8.0.204, 8.0.303
|
||||
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.410, 8.0.101, 8.0.204, 8.0.303, 8.0.405, 9.0.102
|
||||
- Bash 3.2.57(1)-release
|
||||
- Clang/LLVM 14.0.0
|
||||
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
|
||||
- GCC 11 (Homebrew GCC 11.4.0) - available by `gcc-11` alias
|
||||
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
|
||||
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
|
||||
- GCC 14 (Homebrew GCC 14.1.0_2) - available by `gcc-14` alias
|
||||
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
|
||||
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
|
||||
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
|
||||
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
|
||||
- GNU Fortran 14 (Homebrew GCC 14.1.0_2) - available by `gfortran-14` alias
|
||||
- Kotlin 2.0.0-release-341
|
||||
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
|
||||
- Kotlin 2.1.0-release-394
|
||||
- Mono 6.12.0.188
|
||||
- Node.js 20.15.1
|
||||
- Perl 5.38.2
|
||||
- PHP 8.3.9
|
||||
- Python3 3.12.4
|
||||
- Node.js 20.18.1
|
||||
- Perl 5.40.1
|
||||
- PHP 8.4.3
|
||||
- Python3 3.13.1
|
||||
- Ruby 3.0.7p220
|
||||
|
||||
### Package Management
|
||||
- Bundler 2.5.15
|
||||
- Carthage 0.39.1
|
||||
- CocoaPods 1.15.2
|
||||
- Composer 2.7.7
|
||||
- Homebrew 4.3.9
|
||||
- NPM 10.7.0
|
||||
- Bundler 2.5.23
|
||||
- Carthage 0.40.0
|
||||
- CocoaPods 1.16.2
|
||||
- Composer 2.8.4
|
||||
- Homebrew 4.4.16
|
||||
- NPM 10.8.2
|
||||
- NuGet 6.3.1.1
|
||||
- Pip3 24.1.2 (python 3.12)
|
||||
- Pipx 1.6.0
|
||||
- RubyGems 3.5.15
|
||||
- Vcpkg 2024 (build from commit 7aeffc910)
|
||||
- Pip3 24.3.1 (python 3.13)
|
||||
- Pipx 1.7.1
|
||||
- RubyGems 3.5.23
|
||||
- Vcpkg 2025 (build from commit cf035d991)
|
||||
- Yarn 1.22.22
|
||||
|
||||
### Project Management
|
||||
- Apache Ant 1.10.14
|
||||
- Apache Maven 3.9.8
|
||||
- Gradle 8.9
|
||||
- Apache Ant 1.10.15
|
||||
- Apache Maven 3.9.9
|
||||
- Gradle 8.12
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.05
|
||||
- aria2 1.37.0
|
||||
- azcopy 10.25.1
|
||||
- bazel 7.2.1
|
||||
- bazelisk 1.20.0
|
||||
- azcopy 10.27.1
|
||||
- bazel 8.0.1
|
||||
- bazelisk 1.25.0
|
||||
- bsdtar 3.5.3 - available by 'tar' alias
|
||||
- Curl 8.8.0
|
||||
- Git 2.45.2
|
||||
- Git LFS 3.5.1
|
||||
- GitHub CLI 2.52.0
|
||||
- Curl 8.11.1
|
||||
- Git 2.48.1
|
||||
- Git LFS 3.6.1
|
||||
- GitHub CLI 2.65.0
|
||||
- GNU Tar 1.35 - available by 'gtar' alias
|
||||
- GNU Wget 1.24.5
|
||||
- gpg (GnuPG) 2.4.5
|
||||
- GNU Wget 1.25.0
|
||||
- gpg (GnuPG) 2.4.7
|
||||
- jq 1.7.1
|
||||
- OpenSSL 1.1.1w 11 Sep 2023
|
||||
- Packer 1.9.4
|
||||
- pkg-config 0.29.2
|
||||
- yq 4.44.2
|
||||
- Packer 1.11.2
|
||||
- pkgconf 2.3.0
|
||||
- Unxip 3.1
|
||||
- yq 4.45.1
|
||||
- zstd 1.5.6
|
||||
|
||||
### Tools
|
||||
- AWS CLI 2.17.13
|
||||
- AWS SAM CLI 1.120.0
|
||||
- AWS Session Manager CLI 1.2.650.0
|
||||
- Azure CLI 2.62.0
|
||||
- AWS CLI 2.23.2
|
||||
- AWS SAM CLI 1.132.0
|
||||
- AWS Session Manager CLI 1.2.694.0
|
||||
- Azure CLI 2.68.0
|
||||
- Azure CLI (azure-devops) 1.0.1
|
||||
- Bicep CLI 0.28.1
|
||||
- Cmake 3.30.0
|
||||
- CodeQL Action Bundle 2.18.0
|
||||
- Fastlane 2.221.1
|
||||
- SwiftFormat 0.54.1
|
||||
- Xcbeautify 2.4.1
|
||||
- Bicep CLI 0.32.4
|
||||
- Cmake 3.31.4
|
||||
- CodeQL Action Bundle 2.20.1
|
||||
- Fastlane 2.226.0
|
||||
- SwiftFormat 0.55.4
|
||||
- Xcbeautify 2.17.0
|
||||
- Xcode Command Line Tools 14.3.1.0.1.1683849156
|
||||
- Xcodes 1.5.0
|
||||
- Xcodes 1.6.0
|
||||
|
||||
### Linters
|
||||
- SwiftLint 0.55.1
|
||||
- SwiftLint 0.58.2
|
||||
|
||||
### Browsers
|
||||
- Safari 17.5 (18618.2.12.111.5)
|
||||
- SafariDriver 17.5 (18618.2.12.111.5)
|
||||
- Google Chrome 126.0.6478.127
|
||||
- Google Chrome for Testing 126.0.6478.126
|
||||
- ChromeDriver 126.0.6478.126
|
||||
- Microsoft Edge 126.0.2592.102
|
||||
- Microsoft Edge WebDriver 126.0.2592.102
|
||||
- Mozilla Firefox 128.0
|
||||
- geckodriver 0.34.0
|
||||
- Selenium server 4.22.0
|
||||
- Safari 18.2 (18620.1.16.111.6)
|
||||
- SafariDriver 18.2 (18620.1.16.111.6)
|
||||
- Google Chrome 132.0.6834.84
|
||||
- Google Chrome for Testing 132.0.6834.83
|
||||
- ChromeDriver 132.0.6834.83
|
||||
- Microsoft Edge 132.0.2957.115
|
||||
- Microsoft Edge WebDriver 132.0.2957.115
|
||||
- Mozilla Firefox 134.0.1
|
||||
- geckodriver 0.35.0
|
||||
- Selenium server 4.27.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -110,70 +109,74 @@
|
||||
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
|
||||
|
||||
### Java
|
||||
| Version | Environment Variable |
|
||||
| ------------------- | -------------------- |
|
||||
| 8.0.412+8 | JAVA_HOME_8_X64 |
|
||||
| 11.0.23+9 | JAVA_HOME_11_X64 |
|
||||
| 17.0.11+9 (default) | JAVA_HOME_17_X64 |
|
||||
| 21.0.3+9.0 | JAVA_HOME_21_X64 |
|
||||
| Version | Environment Variable |
|
||||
| -------------------- | -------------------- |
|
||||
| 8.0.432+6 | JAVA_HOME_8_X64 |
|
||||
| 11.0.25+9 | JAVA_HOME_11_X64 |
|
||||
| 17.0.13+11 (default) | JAVA_HOME_17_X64 |
|
||||
| 21.0.5+11.0 | JAVA_HOME_21_X64 |
|
||||
|
||||
### Cached Tools
|
||||
|
||||
#### PyPy
|
||||
- 2.7.18 [PyPy 7.3.16]
|
||||
- 2.7.18 [PyPy 7.3.17]
|
||||
- 3.7.13 [PyPy 7.3.9]
|
||||
- 3.8.16 [PyPy 7.3.11]
|
||||
- 3.9.19 [PyPy 7.3.16]
|
||||
- 3.10.14 [PyPy 7.3.16]
|
||||
- 3.10.14 [PyPy 7.3.17]
|
||||
|
||||
#### Ruby
|
||||
- 3.0.7
|
||||
- 3.1.6
|
||||
- 3.2.6
|
||||
- 3.3.7
|
||||
- 3.4.1
|
||||
|
||||
#### Python
|
||||
- 3.8.18
|
||||
- 3.9.19
|
||||
- 3.10.14
|
||||
- 3.9.21
|
||||
- 3.10.16
|
||||
- 3.11.9
|
||||
- 3.12.4
|
||||
- 3.12.8
|
||||
- 3.13.1
|
||||
|
||||
#### Node.js
|
||||
- 16.20.2
|
||||
- 18.20.4
|
||||
- 20.15.1
|
||||
- 18.20.5
|
||||
- 20.18.1
|
||||
- 22.13.0
|
||||
|
||||
#### Go
|
||||
- 1.20.14
|
||||
- 1.21.12
|
||||
- 1.22.5
|
||||
- 1.21.13
|
||||
- 1.22.10
|
||||
- 1.23.4
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.79.0
|
||||
- Rust 1.79.0
|
||||
- Rustdoc 1.79.0
|
||||
- Cargo 1.84.0
|
||||
- Rust 1.84.0
|
||||
- Rustdoc 1.84.0
|
||||
- Rustup 1.27.1
|
||||
|
||||
#### Packages
|
||||
- Clippy 0.1.79
|
||||
- Rustfmt 1.7.0-stable
|
||||
- Clippy 0.1.84
|
||||
- Rustfmt 1.8.0-stable
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.4.3
|
||||
- PowerShell 7.4.6
|
||||
|
||||
#### PowerShell Modules
|
||||
- Az: 12.1.0
|
||||
- Pester: 5.6.1
|
||||
- PSScriptAnalyzer: 1.22.0
|
||||
- Az: 12.4.0
|
||||
- Pester: 5.7.1
|
||||
- PSScriptAnalyzer: 1.23.0
|
||||
|
||||
### Xcode
|
||||
| Version | Build | Path |
|
||||
| -------------- | ------- | ------------------------------ |
|
||||
| 15.2 (default) | 15C500b | /Applications/Xcode_15.2.app |
|
||||
| 15.1 | 15C65 | /Applications/Xcode_15.1.app |
|
||||
| 15.0.1 | 15A507 | /Applications/Xcode_15.0.1.app |
|
||||
| 14.3.1 | 14E300c | /Applications/Xcode_14.3.1.app |
|
||||
| 14.2 | 14C18 | /Applications/Xcode_14.2.app |
|
||||
| 14.1 | 14B47b | /Applications/Xcode_14.1.app |
|
||||
| Version | Build | Path | Symlinks |
|
||||
| -------------- | ------- | ------------------------------ | --------------------------------------------------------- |
|
||||
| 15.2 (default) | 15C500b | /Applications/Xcode_15.2.app | /Applications/Xcode_15.2.0.app<br>/Applications/Xcode.app |
|
||||
| 15.1 | 15C65 | /Applications/Xcode_15.1.app | /Applications/Xcode_15.1.0.app |
|
||||
| 15.0.1 | 15A507 | /Applications/Xcode_15.0.1.app | /Applications/Xcode_15.0.app |
|
||||
| 14.3.1 | 14E300c | /Applications/Xcode_14.3.1.app | /Applications/Xcode_14.3.app |
|
||||
| 14.2 | 14C18 | /Applications/Xcode_14.2.app | /Applications/Xcode_14.2.0.app |
|
||||
| 14.1 | 14B47b | /Applications/Xcode_14.1.app | /Applications/Xcode_14.1.0.app |
|
||||
|
||||
#### Installed SDKs
|
||||
| SDK | SDK Name | Xcode Version |
|
||||
@@ -221,35 +224,35 @@
|
||||
| DriverKit 23.2 | driverkit23.2 | 15.1, 15.2 |
|
||||
|
||||
#### Installed Simulators
|
||||
| OS | Xcode Version | Simulators |
|
||||
| ------------ | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 16.1 | 14.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 16.2 | 14.2 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 16.4 | 14.3.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.0 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.2 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| tvOS 16.1 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 16.4 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.0 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.2 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| watchOS 9.1 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
|
||||
| watchOS 9.4 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
|
||||
| watchOS 10.0 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.2 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| OS | Simulators |
|
||||
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 16.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 16.2 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 16.4 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.0 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.2 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| tvOS 16.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 16.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| watchOS 9.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
|
||||
| watchOS 9.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
|
||||
| watchOS 10.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
|
||||
### Android
|
||||
| Package Name | Version |
|
||||
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 11.0 |
|
||||
| Android Emulator | 34.2.16 |
|
||||
| Android SDK Build-tools | 35.0.0<br>34.0.0<br>33.0.2 33.0.3 |
|
||||
| Android SDK Platforms | android-35 (rev 1)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
|
||||
| Android SDK Platform-Tools | 35.0.1 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.22.1 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 24.0.8215888<br>25.2.9519653<br>26.3.11579264 (default) |
|
||||
| Package Name | Version |
|
||||
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 11.0 |
|
||||
| Android Emulator | 35.3.11 |
|
||||
| Android SDK Build-tools | 35.0.0 35.0.1<br>34.0.0<br>33.0.2 33.0.3 |
|
||||
| Android SDK Platforms | android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
|
||||
| Android SDK Platform-Tools | 35.0.2 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.31.0 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 26.3.11579264 (default)<br>27.2.12479018 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -257,7 +260,21 @@
|
||||
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
|
||||
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
### Miscellaneous
|
||||
- Tcl/Tk 8.6.16
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| ----------------- | ----------------------------------------------------------------------------------------- |
|
||||
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v20/20.2.0-55872/ParallelsDesktop-20.2.0-55872.dmg |
|
||||
|
||||
##### Notes
|
||||
```
|
||||
If you want to use Parallels Desktop you should download a package from URL stored in
|
||||
PARALLELS_DMG_URL environment variable. A system extension is allowed for this version.
|
||||
```
|
||||
|
||||
|
||||
@@ -1,98 +1,97 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[macOS] GCC 11 will be removed from all macOS images on August 12](https://github.com/actions/runner-images/issues/10213) |
|
||||
| [[macOS] Default Xcode on macOS 14 Sonoma will be set to Xcode 15.4 on July, 22](https://github.com/actions/runner-images/issues/10121) |
|
||||
| [[macOS] Default Xcode on macOS 13 Ventura will be set to Xcode 15.2 on July, 15](https://github.com/actions/runner-images/issues/10120) |
|
||||
| [[macOS] Ruby version 3.0 will be removed from the images on Feb 10, 2025 and 3.3 will be set as default. ](https://github.com/actions/runner-images/issues/11345) |
|
||||
| [[macOS] The macOS 12 Actions runner image will begin deprecation on 10/7/24 and will be fully unsupported by 12/3/24 for GitHub and by 01/13/25 for ADO](https://github.com/actions/runner-images/issues/10721) |
|
||||
| [macOS 15 (Sequoia) is now available as a public beta in GitHub Actions](https://github.com/actions/runner-images/issues/10686) |
|
||||
***
|
||||
# macOS 13
|
||||
- OS Version: macOS 13.6.7 (22G720)
|
||||
- OS Version: macOS 13.7.2 (22H313)
|
||||
- Kernel Version: Darwin 22.6.0
|
||||
- Image Version: 20240714.1
|
||||
- Image Version: 20250120.653
|
||||
|
||||
## Installed Software
|
||||
|
||||
### Language and Runtime
|
||||
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.410, 8.0.101, 8.0.204, 8.0.303
|
||||
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.410, 8.0.101, 8.0.204, 8.0.303, 8.0.405, 9.0.102
|
||||
- Bash 3.2.57(1)-release
|
||||
- Clang/LLVM 14.0.0
|
||||
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
|
||||
- GCC 11 (Homebrew GCC 11.4.0) - available by `gcc-11` alias
|
||||
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
|
||||
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
|
||||
- GCC 14 (Homebrew GCC 14.1.0_2) - available by `gcc-14` alias
|
||||
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
|
||||
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
|
||||
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
|
||||
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
|
||||
- GNU Fortran 14 (Homebrew GCC 14.1.0_2) - available by `gfortran-14` alias
|
||||
- Kotlin 2.0.0-release-341
|
||||
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
|
||||
- Kotlin 2.1.0-release-394
|
||||
- Mono 6.12.0.188
|
||||
- Node.js 20.15.1
|
||||
- Perl 5.38.2
|
||||
- Python3 3.12.4
|
||||
- Node.js 20.18.1
|
||||
- Perl 5.40.1
|
||||
- Python3 3.13.1
|
||||
- Ruby 3.0.7p220
|
||||
|
||||
### Package Management
|
||||
- Bundler 2.5.15
|
||||
- Carthage 0.39.1
|
||||
- CocoaPods 1.15.2
|
||||
- Homebrew 4.3.9
|
||||
- NPM 10.7.0
|
||||
- Bundler 2.5.23
|
||||
- Carthage 0.40.0
|
||||
- CocoaPods 1.16.2
|
||||
- Homebrew 4.4.16
|
||||
- NPM 10.8.2
|
||||
- NuGet 6.3.1.1
|
||||
- Pip3 24.0 (python 3.12)
|
||||
- Pipx 1.6.0
|
||||
- RubyGems 3.5.15
|
||||
- Pip3 24.3.1 (python 3.13)
|
||||
- Pipx 1.7.1
|
||||
- RubyGems 3.5.23
|
||||
- Yarn 1.22.22
|
||||
|
||||
### Project Management
|
||||
- Apache Ant 1.10.14
|
||||
- Apache Maven 3.9.8
|
||||
- Gradle 8.9
|
||||
- Apache Ant 1.10.15
|
||||
- Apache Maven 3.9.9
|
||||
- Gradle 8.12
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.05
|
||||
- aria2 1.37.0
|
||||
- azcopy 10.25.1
|
||||
- bazel 7.2.1
|
||||
- bazelisk 1.20.0
|
||||
- azcopy 10.27.1
|
||||
- bazel 8.0.1
|
||||
- bazelisk 1.25.0
|
||||
- bsdtar 3.5.3 - available by 'tar' alias
|
||||
- Curl 8.4.0
|
||||
- Git 2.45.2
|
||||
- Git LFS 3.5.1
|
||||
- GitHub CLI 2.52.0
|
||||
- Curl 8.7.1
|
||||
- Git 2.48.1
|
||||
- Git LFS 3.6.1
|
||||
- GitHub CLI 2.65.0
|
||||
- GNU Tar 1.35 - available by 'gtar' alias
|
||||
- GNU Wget 1.24.5
|
||||
- gpg (GnuPG) 2.4.5
|
||||
- GNU Wget 1.25.0
|
||||
- gpg (GnuPG) 2.4.7
|
||||
- jq 1.7.1
|
||||
- OpenSSL 1.1.1w 11 Sep 2023
|
||||
- Packer 1.9.4
|
||||
- pkg-config 0.29.2
|
||||
- yq 4.44.2
|
||||
- Packer 1.11.2
|
||||
- pkgconf 2.3.0
|
||||
- Unxip 3.1
|
||||
- yq 4.45.1
|
||||
- zstd 1.5.6
|
||||
|
||||
### Tools
|
||||
- AWS CLI 2.17.13
|
||||
- AWS SAM CLI 1.120.0
|
||||
- AWS Session Manager CLI 1.2.650.0
|
||||
- Azure CLI 2.62.0
|
||||
- AWS CLI 2.23.2
|
||||
- AWS SAM CLI 1.132.0
|
||||
- AWS Session Manager CLI 1.2.694.0
|
||||
- Azure CLI 2.68.0
|
||||
- Azure CLI (azure-devops) 1.0.1
|
||||
- Bicep CLI 0.28.1
|
||||
- Cmake 3.30.0
|
||||
- CodeQL Action Bundle 2.18.0
|
||||
- Fastlane 2.221.1
|
||||
- SwiftFormat 0.54.1
|
||||
- Xcbeautify 2.4.1
|
||||
- Bicep CLI 0.32.4
|
||||
- Cmake 3.31.4
|
||||
- CodeQL Action Bundle 2.20.1
|
||||
- Fastlane 2.226.0
|
||||
- SwiftFormat 0.55.4
|
||||
- Xcbeautify 2.17.0
|
||||
- Xcode Command Line Tools 14.3.1.0.1.1683849156
|
||||
- Xcodes 1.5.0
|
||||
- Xcodes 1.6.0
|
||||
|
||||
### Linters
|
||||
|
||||
### Browsers
|
||||
- Safari 17.5 (18618.2.12.111.5)
|
||||
- SafariDriver 17.5 (18618.2.12.111.5)
|
||||
- Google Chrome 126.0.6478.127
|
||||
- Google Chrome for Testing 126.0.6478.126
|
||||
- ChromeDriver 126.0.6478.126
|
||||
- Selenium server 4.22.0
|
||||
- Safari 18.2 (18620.1.16.111.6)
|
||||
- SafariDriver 18.2 (18620.1.16.111.6)
|
||||
- Google Chrome 132.0.6834.84
|
||||
- Google Chrome for Testing 132.0.6834.83
|
||||
- ChromeDriver 132.0.6834.83
|
||||
- Selenium server 4.27.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -102,57 +101,63 @@
|
||||
| GECKOWEBDRIVER | |
|
||||
|
||||
### Java
|
||||
| Version | Environment Variable |
|
||||
| ------------------- | -------------------- |
|
||||
| 11.0.23+9 | JAVA_HOME_11_arm64 |
|
||||
| 17.0.11+9 (default) | JAVA_HOME_17_arm64 |
|
||||
| 21.0.3+9.0 | JAVA_HOME_21_arm64 |
|
||||
| Version | Environment Variable |
|
||||
| -------------------- | -------------------- |
|
||||
| 11.0.25+9 | JAVA_HOME_11_arm64 |
|
||||
| 17.0.13+11 (default) | JAVA_HOME_17_arm64 |
|
||||
| 21.0.5+11.0 | JAVA_HOME_21_arm64 |
|
||||
|
||||
### Cached Tools
|
||||
|
||||
#### Ruby
|
||||
- 3.0.7
|
||||
- 3.1.6
|
||||
- 3.2.6
|
||||
- 3.3.7
|
||||
- 3.4.1
|
||||
|
||||
#### Python
|
||||
- 3.9.13
|
||||
- 3.10.11
|
||||
- 3.11.9
|
||||
- 3.12.4
|
||||
- 3.12.8
|
||||
- 3.13.1
|
||||
|
||||
#### Node.js
|
||||
- 16.20.1
|
||||
- 18.20.4
|
||||
- 20.15.1
|
||||
- 18.20.5
|
||||
- 20.18.1
|
||||
- 22.13.0
|
||||
|
||||
#### Go
|
||||
- 1.20.14
|
||||
- 1.21.12
|
||||
- 1.22.5
|
||||
- 1.21.13
|
||||
- 1.22.10
|
||||
- 1.23.4
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.79.0
|
||||
- Rust 1.79.0
|
||||
- Rustdoc 1.79.0
|
||||
- Cargo 1.84.0
|
||||
- Rust 1.84.0
|
||||
- Rustdoc 1.84.0
|
||||
- Rustup 1.27.1
|
||||
|
||||
#### Packages
|
||||
- Clippy 0.1.79
|
||||
- Rustfmt 1.7.0-stable
|
||||
- Clippy 0.1.84
|
||||
- Rustfmt 1.8.0-stable
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.4.3
|
||||
- PowerShell 7.4.6
|
||||
|
||||
#### PowerShell Modules
|
||||
- Az: 12.1.0
|
||||
- Pester: 5.6.1
|
||||
- PSScriptAnalyzer: 1.22.0
|
||||
- Az: 12.4.0
|
||||
- Pester: 5.7.1
|
||||
- PSScriptAnalyzer: 1.23.0
|
||||
|
||||
### Xcode
|
||||
| Version | Build | Path |
|
||||
| -------------- | ------- | ------------------------------ |
|
||||
| 15.2 (default) | 15C500b | /Applications/Xcode_15.2.app |
|
||||
| 15.1 | 15C65 | /Applications/Xcode_15.1.app |
|
||||
| 15.0.1 | 15A507 | /Applications/Xcode_15.0.1.app |
|
||||
| 14.3.1 | 14E300c | /Applications/Xcode_14.3.1.app |
|
||||
| 14.2 | 14C18 | /Applications/Xcode_14.2.app |
|
||||
| 14.1 | 14B47b | /Applications/Xcode_14.1.app |
|
||||
| Version | Build | Path | Symlinks |
|
||||
| -------------- | ------- | ------------------------------ | --------------------------------------------------------- |
|
||||
| 15.2 (default) | 15C500b | /Applications/Xcode_15.2.app | /Applications/Xcode_15.2.0.app<br>/Applications/Xcode.app |
|
||||
| 15.1 | 15C65 | /Applications/Xcode_15.1.app | /Applications/Xcode_15.1.0.app |
|
||||
| 15.0.1 | 15A507 | /Applications/Xcode_15.0.1.app | /Applications/Xcode_15.0.app |
|
||||
| 14.3.1 | 14E300c | /Applications/Xcode_14.3.1.app | /Applications/Xcode_14.3.app |
|
||||
| 14.2 | 14C18 | /Applications/Xcode_14.2.app | /Applications/Xcode_14.2.0.app |
|
||||
| 14.1 | 14B47b | /Applications/Xcode_14.1.app | /Applications/Xcode_14.1.0.app |
|
||||
|
||||
#### Installed SDKs
|
||||
| SDK | SDK Name | Xcode Version |
|
||||
@@ -191,8 +196,8 @@
|
||||
| Simulator - visionOS 1.0 | xrsimulator1.0 | 15.2 |
|
||||
| visionOS 1.0 | xros1.0 | 15.2 |
|
||||
| Asset Runtime SDK for macOS hosts targeting watchOS 9.4 | assetruntime.host.macosx.target.watchos9.4 | 14.3.1 |
|
||||
| Asset Runtime SDK for macOS hosts targeting tvOS 16.4 | assetruntime.host.macosx.target.appletvos16.4 | 14.3.1 |
|
||||
| Asset Runtime SDK for macOS hosts targeting iOS 16.4 | assetruntime.host.macosx.target.iphoneos16.4 | 14.3.1 |
|
||||
| Asset Runtime SDK for macOS hosts targeting tvOS 16.4 | assetruntime.host.macosx.target.appletvos16.4 | 14.3.1 |
|
||||
| DriverKit 22.1 | driverkit22.1 | 14.1 |
|
||||
| DriverKit 22.2 | driverkit22.2 | 14.2 |
|
||||
| DriverKit 22.4 | driverkit22.4 | 14.3.1 |
|
||||
@@ -200,36 +205,36 @@
|
||||
| DriverKit 23.2 | driverkit23.2 | 15.1, 15.2 |
|
||||
|
||||
#### Installed Simulators
|
||||
| OS | Xcode Version | Simulators |
|
||||
| ------------ | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 16.1 | 14.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 16.2 | 14.2 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 16.4 | 14.3.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.0 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.2 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| tvOS 16.1 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 16.4 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.0 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.2 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| watchOS 9.1 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
|
||||
| watchOS 9.4 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
|
||||
| watchOS 10.0 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.2 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| visionOS 1.0 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple Vision Pro |
|
||||
| OS | Simulators |
|
||||
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 16.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 16.2 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 16.4 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.0 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.2 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| tvOS 16.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 16.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| watchOS 9.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
|
||||
| watchOS 9.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
|
||||
| watchOS 10.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| visionOS 1.0 | Apple Vision Pro |
|
||||
|
||||
### Android
|
||||
| Package Name | Version |
|
||||
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 11.0 |
|
||||
| Android Emulator | 34.2.16 |
|
||||
| Android SDK Build-tools | 35.0.0<br>34.0.0<br>33.0.2 33.0.3 |
|
||||
| Android SDK Platforms | android-35 (rev 1)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
|
||||
| Android SDK Platform-Tools | 35.0.1 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.22.1 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 24.0.8215888<br>25.2.9519653<br>26.3.11579264 (default) |
|
||||
| Package Name | Version |
|
||||
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 11.0 |
|
||||
| Android Emulator | 35.3.11 |
|
||||
| Android SDK Build-tools | 35.0.0 35.0.1<br>34.0.0<br>33.0.2 33.0.3 |
|
||||
| Android SDK Platforms | android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
|
||||
| Android SDK Platform-Tools | 35.0.2 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.31.0 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 26.3.11579264 (default)<br>27.2.12479018 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -237,7 +242,10 @@
|
||||
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
|
||||
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
### Miscellaneous
|
||||
- Tcl/Tk 8.6.16
|
||||
|
||||
|
||||
+202
-186
@@ -1,105 +1,104 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[macOS] GCC 11 will be removed from all macOS images on August 12](https://github.com/actions/runner-images/issues/10213) |
|
||||
| [[macOS] Default Xcode on macOS 14 Sonoma will be set to Xcode 15.4 on July, 22](https://github.com/actions/runner-images/issues/10121) |
|
||||
| [[macOS] Default Xcode on macOS 13 Ventura will be set to Xcode 15.2 on July, 15](https://github.com/actions/runner-images/issues/10120) |
|
||||
| [[macOS 14] Xcode 16.0 will be replaced by Xcode 16.2 in macOS-14 images on January 6, 2025](https://github.com/actions/runner-images/issues/11203) |
|
||||
| [[macOS] The macOS 12 Actions runner image will begin deprecation on 10/7/24 and will be fully unsupported by 12/3/24 for GitHub and by 01/13/25 for ADO](https://github.com/actions/runner-images/issues/10721) |
|
||||
| [macOS 15 (Sequoia) is now available as a public beta in GitHub Actions](https://github.com/actions/runner-images/issues/10686) |
|
||||
***
|
||||
# macOS 14
|
||||
- OS Version: macOS 14.5 (23F79)
|
||||
- Kernel Version: Darwin 23.5.0
|
||||
- Image Version: 20240714.2
|
||||
- OS Version: macOS 14.7.2 (23H311)
|
||||
- Kernel Version: Darwin 23.6.0
|
||||
- Image Version: 20250106.587
|
||||
|
||||
## Installed Software
|
||||
|
||||
### Language and Runtime
|
||||
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.410, 8.0.101, 8.0.204, 8.0.303
|
||||
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.410, 8.0.101, 8.0.204, 8.0.303, 8.0.404
|
||||
- Bash 3.2.57(1)-release
|
||||
- Clang/LLVM 14.0.3
|
||||
- Clang/LLVM 15.0.0
|
||||
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
|
||||
- GCC 11 (Homebrew GCC 11.4.0) - available by `gcc-11` alias
|
||||
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
|
||||
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
|
||||
- GCC 14 (Homebrew GCC 14.1.0_2) - available by `gcc-14` alias
|
||||
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
|
||||
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
|
||||
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
|
||||
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
|
||||
- GNU Fortran 14 (Homebrew GCC 14.1.0_2) - available by `gfortran-14` alias
|
||||
- Kotlin 2.0.0-release-341
|
||||
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
|
||||
- Kotlin 2.1.0-release-394
|
||||
- Mono 6.12.0.188
|
||||
- Node.js 20.15.1
|
||||
- Perl 5.38.2
|
||||
- PHP 8.3.9
|
||||
- Python3 3.12.4
|
||||
- Node.js 20.18.1
|
||||
- Perl 5.40.0
|
||||
- PHP 8.4.2
|
||||
- Python3 3.13.1
|
||||
- Ruby 3.0.7p220
|
||||
|
||||
### Package Management
|
||||
- Bundler 2.5.15
|
||||
- Carthage 0.39.1
|
||||
- CocoaPods 1.15.2
|
||||
- Composer 2.7.7
|
||||
- Homebrew 4.3.9
|
||||
- NPM 10.7.0
|
||||
- Bundler 2.5.23
|
||||
- Carthage 0.40.0
|
||||
- CocoaPods 1.16.2
|
||||
- Composer 2.8.4
|
||||
- Homebrew 4.4.15
|
||||
- NPM 10.8.2
|
||||
- NuGet 6.3.1.1
|
||||
- Pip3 24.1.2 (python 3.12)
|
||||
- Pipx 1.6.0
|
||||
- RubyGems 3.5.15
|
||||
- Pip3 24.3.1 (python 3.13)
|
||||
- Pipx 1.7.1
|
||||
- RubyGems 3.5.23
|
||||
- Yarn 1.22.22
|
||||
|
||||
### Project Management
|
||||
- Apache Ant 1.10.14
|
||||
- Apache Maven 3.9.8
|
||||
- Gradle 8.9
|
||||
- Apache Ant 1.10.15
|
||||
- Apache Maven 3.9.9
|
||||
- Gradle 8.12
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.05
|
||||
- aria2 1.37.0
|
||||
- azcopy 10.25.1
|
||||
- bazel 7.2.1
|
||||
- bazelisk 1.20.0
|
||||
- azcopy 10.27.1
|
||||
- bazel 8.0.0
|
||||
- bazelisk 1.25.0
|
||||
- bsdtar 3.5.3 - available by 'tar' alias
|
||||
- Curl 8.8.0
|
||||
- Git 2.45.2
|
||||
- Git LFS 3.5.1
|
||||
- GitHub CLI 2.52.0
|
||||
- Curl 8.11.1
|
||||
- Git 2.47.1
|
||||
- Git LFS 3.6.0
|
||||
- GitHub CLI 2.64.0
|
||||
- GNU Tar 1.35 - available by 'gtar' alias
|
||||
- GNU Wget 1.24.5
|
||||
- gpg (GnuPG) 2.4.5
|
||||
- GNU Wget 1.25.0
|
||||
- gpg (GnuPG) 2.4.7
|
||||
- jq 1.7.1
|
||||
- OpenSSL 1.1.1w 11 Sep 2023
|
||||
- Packer 1.9.4
|
||||
- pkg-config 0.29.2
|
||||
- yq 4.44.2
|
||||
- Packer 1.11.2
|
||||
- pkgconf 2.3.0
|
||||
- Unxip 3.1
|
||||
- yq 4.44.6
|
||||
- zstd 1.5.6
|
||||
|
||||
### Tools
|
||||
- AWS CLI 2.17.13
|
||||
- AWS SAM CLI 1.120.0
|
||||
- AWS Session Manager CLI 1.2.650.0
|
||||
- Azure CLI 2.62.0
|
||||
- AWS CLI 2.22.28
|
||||
- AWS SAM CLI 1.132.0
|
||||
- AWS Session Manager CLI 1.2.694.0
|
||||
- Azure CLI 2.67.0
|
||||
- Azure CLI (azure-devops) 1.0.1
|
||||
- Bicep CLI 0.28.1
|
||||
- Cmake 3.30.0
|
||||
- CodeQL Action Bundle 2.18.0
|
||||
- Fastlane 2.221.1
|
||||
- SwiftFormat 0.54.1
|
||||
- Xcbeautify 2.4.1
|
||||
- Xcode Command Line Tools 15.3.0.0.1.1708646388
|
||||
- Xcodes 1.5.0
|
||||
- Bicep CLI 0.32.4
|
||||
- Cmake 3.31.3
|
||||
- CodeQL Action Bundle 2.20.0
|
||||
- Fastlane 2.226.0
|
||||
- SwiftFormat 0.55.4
|
||||
- Xcbeautify 2.17.0
|
||||
- Xcode Command Line Tools 16.2.0.0.1.1733547573
|
||||
- Xcodes 1.6.0
|
||||
|
||||
### Linters
|
||||
- SwiftLint 0.55.1
|
||||
- SwiftLint 0.57.1
|
||||
|
||||
### Browsers
|
||||
- Safari 17.5 (19618.2.12.11.6)
|
||||
- SafariDriver 17.5 (19618.2.12.11.6)
|
||||
- Google Chrome 126.0.6478.127
|
||||
- Google Chrome for Testing 126.0.6478.126
|
||||
- ChromeDriver 126.0.6478.126
|
||||
- Microsoft Edge 126.0.2592.102
|
||||
- Microsoft Edge WebDriver 126.0.2592.102
|
||||
- Mozilla Firefox 128.0
|
||||
- geckodriver 0.34.0
|
||||
- Selenium server 4.22.0
|
||||
- Safari 18.2 (19620.1.16.111.6)
|
||||
- SafariDriver 18.2 (19620.1.16.111.6)
|
||||
- Google Chrome 131.0.6778.205
|
||||
- Google Chrome for Testing 131.0.6778.204
|
||||
- ChromeDriver 131.0.6778.204
|
||||
- Microsoft Edge 131.0.2903.112
|
||||
- Microsoft Edge WebDriver 131.0.2903.112
|
||||
- Mozilla Firefox 133.0.3
|
||||
- geckodriver 0.35.0
|
||||
- Selenium server 4.27.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -109,158 +108,161 @@
|
||||
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
|
||||
|
||||
### Java
|
||||
| Version | Environment Variable |
|
||||
| -------------------- | -------------------- |
|
||||
| 8.0.412+8 | JAVA_HOME_8_X64 |
|
||||
| 11.0.23+9 | JAVA_HOME_11_X64 |
|
||||
| 17.0.11+9 | JAVA_HOME_17_X64 |
|
||||
| 21.0.3+9.0 (default) | JAVA_HOME_21_X64 |
|
||||
| Version | Environment Variable |
|
||||
| --------------------- | -------------------- |
|
||||
| 8.0.432+6 | JAVA_HOME_8_X64 |
|
||||
| 11.0.25+9 | JAVA_HOME_11_X64 |
|
||||
| 17.0.13+11 | JAVA_HOME_17_X64 |
|
||||
| 21.0.5+11.0 (default) | JAVA_HOME_21_X64 |
|
||||
|
||||
### Cached Tools
|
||||
|
||||
#### Ruby
|
||||
- 3.0.7
|
||||
- 3.1.6
|
||||
- 3.2.6
|
||||
- 3.3.6
|
||||
|
||||
#### Python
|
||||
- 3.9.19
|
||||
- 3.10.14
|
||||
- 3.9.21
|
||||
- 3.10.16
|
||||
- 3.11.9
|
||||
- 3.12.4
|
||||
- 3.12.8
|
||||
- 3.13.1
|
||||
|
||||
#### Node.js
|
||||
- 18.20.4
|
||||
- 20.15.1
|
||||
- 18.20.5
|
||||
- 20.18.1
|
||||
- 22.12.0
|
||||
|
||||
#### Go
|
||||
- 1.20.14
|
||||
- 1.21.12
|
||||
- 1.22.5
|
||||
- 1.21.13
|
||||
- 1.22.10
|
||||
- 1.23.4
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.79.0
|
||||
- Rust 1.79.0
|
||||
- Rustdoc 1.79.0
|
||||
- Cargo 1.83.0
|
||||
- Rust 1.83.0
|
||||
- Rustdoc 1.83.0
|
||||
- Rustup 1.27.1
|
||||
|
||||
#### Packages
|
||||
- Clippy 0.1.79
|
||||
- Rustfmt 1.7.0-stable
|
||||
- Clippy 0.1.83
|
||||
- Rustfmt 1.8.0-stable
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.4.3
|
||||
- PowerShell 7.4.6
|
||||
|
||||
#### PowerShell Modules
|
||||
- Az: 12.1.0
|
||||
- Az: 12.4.0
|
||||
- Pester: 5.6.1
|
||||
- PSScriptAnalyzer: 1.22.0
|
||||
- PSScriptAnalyzer: 1.23.0
|
||||
|
||||
### Xcode
|
||||
| Version | Build | Path |
|
||||
| ---------------- | -------- | ------------------------------ |
|
||||
| 16.0 (beta) | 16A5171r | /Applications/Xcode_16.0.app |
|
||||
| 15.4 | 15F31d | /Applications/Xcode_15.4.app |
|
||||
| 15.3 | 15E204a | /Applications/Xcode_15.3.app |
|
||||
| 15.2 | 15C500b | /Applications/Xcode_15.2.app |
|
||||
| 15.1 | 15C65 | /Applications/Xcode_15.1.app |
|
||||
| 15.0.1 (default) | 15A507 | /Applications/Xcode_15.0.1.app |
|
||||
| 14.3.1 | 14E300c | /Applications/Xcode_14.3.1.app |
|
||||
| Version | Build | Path | Symlinks |
|
||||
| -------------- | -------- | ------------------------------ | --------------------------------------------------------- |
|
||||
| 16.2 | 16C5032a | /Applications/Xcode_16.2.app | /Applications/Xcode_16.2.0.app |
|
||||
| 16.1 | 16B40 | /Applications/Xcode_16.1.app | /Applications/Xcode_16.1.0.app |
|
||||
| 15.4 (default) | 15F31d | /Applications/Xcode_15.4.app | /Applications/Xcode_15.4.0.app<br>/Applications/Xcode.app |
|
||||
| 15.3 | 15E204a | /Applications/Xcode_15.3.app | /Applications/Xcode_15.3.0.app |
|
||||
| 15.2 | 15C500b | /Applications/Xcode_15.2.app | /Applications/Xcode_15.2.0.app |
|
||||
| 15.1 | 15C65 | /Applications/Xcode_15.1.app | /Applications/Xcode_15.1.0.app |
|
||||
| 15.0.1 | 15A507 | /Applications/Xcode_15.0.1.app | /Applications/Xcode_15.0.app |
|
||||
|
||||
#### Installed SDKs
|
||||
| SDK | SDK Name | Xcode Version |
|
||||
| ------------------------------------------------------- | --------------------------------------------- | ------------- |
|
||||
| macOS 13.3 | macosx13.3 | 14.3.1 |
|
||||
| macOS 14.0 | macosx14.0 | 15.0.1 |
|
||||
| macOS 14.2 | macosx14.2 | 15.1, 15.2 |
|
||||
| macOS 14.4 | macosx14.4 | 15.3 |
|
||||
| macOS 14.5 | macosx14.5 | 15.4 |
|
||||
| macOS 15.0 | macosx15.0 | 16.0 |
|
||||
| iOS 16.4 | iphoneos16.4 | 14.3.1 |
|
||||
| iOS 17.0 | iphoneos17.0 | 15.0.1 |
|
||||
| iOS 17.2 | iphoneos17.2 | 15.1, 15.2 |
|
||||
| iOS 17.4 | iphoneos17.4 | 15.3 |
|
||||
| iOS 17.5 | iphoneos17.5 | 15.4 |
|
||||
| iOS 18.0 | iphoneos18.0 | 16.0 |
|
||||
| Simulator - iOS 16.4 | iphonesimulator16.4 | 14.3.1 |
|
||||
| Simulator - iOS 17.0 | iphonesimulator17.0 | 15.0.1 |
|
||||
| Simulator - iOS 17.2 | iphonesimulator17.2 | 15.1, 15.2 |
|
||||
| Simulator - iOS 17.4 | iphonesimulator17.4 | 15.3 |
|
||||
| Simulator - iOS 17.5 | iphonesimulator17.5 | 15.4 |
|
||||
| Simulator - iOS 18.0 | iphonesimulator18.0 | 16.0 |
|
||||
| tvOS 16.4 | appletvos16.4 | 14.3.1 |
|
||||
| tvOS 17.0 | appletvos17.0 | 15.0.1 |
|
||||
| tvOS 17.2 | appletvos17.2 | 15.1, 15.2 |
|
||||
| tvOS 17.4 | appletvos17.4 | 15.3 |
|
||||
| tvOS 17.5 | appletvos17.5 | 15.4 |
|
||||
| tvOS 18.0 | appletvos18.0 | 16.0 |
|
||||
| Simulator - tvOS 16.4 | appletvsimulator16.4 | 14.3.1 |
|
||||
| Simulator - tvOS 17.0 | appletvsimulator17.0 | 15.0.1 |
|
||||
| Simulator - tvOS 17.2 | appletvsimulator17.2 | 15.1, 15.2 |
|
||||
| Simulator - tvOS 17.4 | appletvsimulator17.4 | 15.3 |
|
||||
| Simulator - tvOS 17.5 | appletvsimulator17.5 | 15.4 |
|
||||
| Simulator - tvOS 18.0 | appletvsimulator18.0 | 16.0 |
|
||||
| watchOS 9.4 | watchos9.4 | 14.3.1 |
|
||||
| watchOS 10.0 | watchos10.0 | 15.0.1 |
|
||||
| watchOS 10.2 | watchos10.2 | 15.1, 15.2 |
|
||||
| watchOS 10.4 | watchos10.4 | 15.3 |
|
||||
| watchOS 10.5 | watchos10.5 | 15.4 |
|
||||
| watchOS 11.0 | watchos11.0 | 16.0 |
|
||||
| Simulator - watchOS 9.4 | watchsimulator9.4 | 14.3.1 |
|
||||
| Simulator - watchOS 10.0 | watchsimulator10.0 | 15.0.1 |
|
||||
| Simulator - watchOS 10.2 | watchsimulator10.2 | 15.1, 15.2 |
|
||||
| Simulator - watchOS 10.4 | watchsimulator10.4 | 15.3 |
|
||||
| Simulator - watchOS 10.5 | watchsimulator10.5 | 15.4 |
|
||||
| Simulator - watchOS 11.0 | watchsimulator11.0 | 16.0 |
|
||||
| visionOS 1.0 | xros1.0 | 15.2 |
|
||||
| Simulator - visionOS 1.0 | xrsimulator1.0 | 15.2 |
|
||||
| Simulator - visionOS 1.1 | xrsimulator1.1 | 15.3 |
|
||||
| visionOS 1.1 | xros1.1 | 15.3 |
|
||||
| visionOS 1.2 | xros1.2 | 15.4 |
|
||||
| Simulator - visionOS 1.2 | xrsimulator1.2 | 15.4 |
|
||||
| visionOS 2.0 | xros2.0 | 16.0 |
|
||||
| Simulator - visionOS 2.0 | xrsimulator2.0 | 16.0 |
|
||||
| Asset Runtime SDK for macOS hosts targeting watchOS 9.4 | assetruntime.host.macosx.target.watchos9.4 | 14.3.1 |
|
||||
| Asset Runtime SDK for macOS hosts targeting iOS 16.4 | assetruntime.host.macosx.target.iphoneos16.4 | 14.3.1 |
|
||||
| Asset Runtime SDK for macOS hosts targeting tvOS 16.4 | assetruntime.host.macosx.target.appletvos16.4 | 14.3.1 |
|
||||
| DriverKit 22.4 | driverkit22.4 | 14.3.1 |
|
||||
| DriverKit 23.0 | driverkit23.0 | 15.0.1 |
|
||||
| DriverKit 23.2 | driverkit23.2 | 15.1, 15.2 |
|
||||
| DriverKit 23.4 | driverkit23.4 | 15.3 |
|
||||
| DriverKit 23.5 | driverkit23.5 | 15.4 |
|
||||
| DriverKit 24.0 | driverkit24.0 | 16.0 |
|
||||
| SDK | SDK Name | Xcode Version |
|
||||
| ------------------------ | -------------------- | ------------- |
|
||||
| macOS 14.0 | macosx14.0 | 15.0.1 |
|
||||
| macOS 14.2 | macosx14.2 | 15.1, 15.2 |
|
||||
| macOS 14.4 | macosx14.4 | 15.3 |
|
||||
| macOS 14.5 | macosx14.5 | 15.4 |
|
||||
| macOS 15.1 | macosx15.1 | 16.1 |
|
||||
| macOS 15.2 | macosx15.2 | 16.2 |
|
||||
| iOS 17.0 | iphoneos17.0 | 15.0.1 |
|
||||
| iOS 17.2 | iphoneos17.2 | 15.1, 15.2 |
|
||||
| iOS 17.4 | iphoneos17.4 | 15.3 |
|
||||
| iOS 17.5 | iphoneos17.5 | 15.4 |
|
||||
| iOS 18.1 | iphoneos18.1 | 16.1 |
|
||||
| iOS 18.2 | iphoneos18.2 | 16.2 |
|
||||
| Simulator - iOS 17.0 | iphonesimulator17.0 | 15.0.1 |
|
||||
| Simulator - iOS 17.2 | iphonesimulator17.2 | 15.1, 15.2 |
|
||||
| Simulator - iOS 17.4 | iphonesimulator17.4 | 15.3 |
|
||||
| Simulator - iOS 17.5 | iphonesimulator17.5 | 15.4 |
|
||||
| Simulator - iOS 18.1 | iphonesimulator18.1 | 16.1 |
|
||||
| Simulator - iOS 18.2 | iphonesimulator18.2 | 16.2 |
|
||||
| tvOS 17.0 | appletvos17.0 | 15.0.1 |
|
||||
| tvOS 17.2 | appletvos17.2 | 15.1, 15.2 |
|
||||
| tvOS 17.4 | appletvos17.4 | 15.3 |
|
||||
| tvOS 17.5 | appletvos17.5 | 15.4 |
|
||||
| tvOS 18.1 | appletvos18.1 | 16.1 |
|
||||
| tvOS 18.2 | appletvos18.2 | 16.2 |
|
||||
| Simulator - tvOS 17.0 | appletvsimulator17.0 | 15.0.1 |
|
||||
| Simulator - tvOS 17.2 | appletvsimulator17.2 | 15.1, 15.2 |
|
||||
| Simulator - tvOS 17.4 | appletvsimulator17.4 | 15.3 |
|
||||
| Simulator - tvOS 17.5 | appletvsimulator17.5 | 15.4 |
|
||||
| Simulator - tvOS 18.1 | appletvsimulator18.1 | 16.1 |
|
||||
| Simulator - tvOS 18.2 | appletvsimulator18.2 | 16.2 |
|
||||
| watchOS 10.0 | watchos10.0 | 15.0.1 |
|
||||
| watchOS 10.2 | watchos10.2 | 15.1, 15.2 |
|
||||
| watchOS 10.4 | watchos10.4 | 15.3 |
|
||||
| watchOS 10.5 | watchos10.5 | 15.4 |
|
||||
| watchOS 11.1 | watchos11.1 | 16.1 |
|
||||
| watchOS 11.2 | watchos11.2 | 16.2 |
|
||||
| Simulator - watchOS 10.0 | watchsimulator10.0 | 15.0.1 |
|
||||
| Simulator - watchOS 10.2 | watchsimulator10.2 | 15.1, 15.2 |
|
||||
| Simulator - watchOS 10.4 | watchsimulator10.4 | 15.3 |
|
||||
| Simulator - watchOS 10.5 | watchsimulator10.5 | 15.4 |
|
||||
| Simulator - watchOS 11.1 | watchsimulator11.1 | 16.1 |
|
||||
| Simulator - watchOS 11.2 | watchsimulator11.2 | 16.2 |
|
||||
| Simulator - visionOS 1.0 | xrsimulator1.0 | 15.2 |
|
||||
| visionOS 1.0 | xros1.0 | 15.2 |
|
||||
| visionOS 1.1 | xros1.1 | 15.3 |
|
||||
| Simulator - visionOS 1.1 | xrsimulator1.1 | 15.3 |
|
||||
| visionOS 1.2 | xros1.2 | 15.4 |
|
||||
| Simulator - visionOS 1.2 | xrsimulator1.2 | 15.4 |
|
||||
| Simulator - visionOS 2.1 | xrsimulator2.1 | 16.1 |
|
||||
| visionOS 2.1 | xros2.1 | 16.1 |
|
||||
| visionOS 2.2 | xros2.2 | 16.2 |
|
||||
| Simulator - visionOS 2.2 | xrsimulator2.2 | 16.2 |
|
||||
| DriverKit 23.0 | driverkit23.0 | 15.0.1 |
|
||||
| DriverKit 23.2 | driverkit23.2 | 15.1, 15.2 |
|
||||
| DriverKit 23.4 | driverkit23.4 | 15.3 |
|
||||
| DriverKit 23.5 | driverkit23.5 | 15.4 |
|
||||
| DriverKit 24.1 | driverkit24.1 | 16.1 |
|
||||
| DriverKit 24.2 | driverkit24.2 | 16.2 |
|
||||
|
||||
#### Installed Simulators
|
||||
| OS | Xcode Version | Simulators |
|
||||
| ------------ | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 16.4 | 14.3.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.2 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 17.5 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| tvOS 16.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.2 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.5 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| watchOS 9.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
|
||||
| watchOS 10.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.2 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.5 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| OS | Simulators |
|
||||
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 17.0 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.2 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.4 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 17.5 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.1 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| tvOS 17.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| watchOS 10.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
|
||||
### Android
|
||||
| Package Name | Version |
|
||||
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 11.0 |
|
||||
| Android Emulator | 34.2.16 |
|
||||
| Android SDK Build-tools | 35.0.0<br>34.0.0<br>33.0.2 33.0.3 |
|
||||
| Android SDK Platforms | android-35 (rev 1)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
|
||||
| Android SDK Platform-Tools | 35.0.1 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.22.1 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 24.0.8215888<br>25.2.9519653<br>26.3.11579264 (default) |
|
||||
| Package Name | Version |
|
||||
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 11.0 |
|
||||
| Android Emulator | 35.2.10 |
|
||||
| Android SDK Build-tools | 35.0.0<br>34.0.0<br>33.0.2 33.0.3 |
|
||||
| Android SDK Platforms | android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
|
||||
| Android SDK Platform-Tools | 35.0.2 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.31.0 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 26.3.11579264 (default)<br>27.2.12479018 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -268,7 +270,21 @@
|
||||
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
|
||||
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
### Miscellaneous
|
||||
- Tcl/Tk 8.6.16
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| ----------------- | ----------------------------------------------------------------------------------------- |
|
||||
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v20/20.1.3-55743/ParallelsDesktop-20.1.3-55743.dmg |
|
||||
|
||||
##### Notes
|
||||
```
|
||||
If you want to use Parallels Desktop you should download a package from URL stored in
|
||||
PARALLELS_DMG_URL environment variable. A system extension is allowed for this version.
|
||||
```
|
||||
|
||||
|
||||
@@ -1,98 +1,96 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[macOS] GCC 11 will be removed from all macOS images on August 12](https://github.com/actions/runner-images/issues/10213) |
|
||||
| [[macOS] Default Xcode on macOS 14 Sonoma will be set to Xcode 15.4 on July, 22](https://github.com/actions/runner-images/issues/10121) |
|
||||
| [[macOS] Default Xcode on macOS 13 Ventura will be set to Xcode 15.2 on July, 15](https://github.com/actions/runner-images/issues/10120) |
|
||||
| [macOS 15 (Sequoia) will be generally available in GitHub Actions and Azure DevOps from February, 17](https://github.com/actions/runner-images/issues/11486) |
|
||||
| [[macOS] Ruby version 3.0 will be removed from the images on Feb 10, 2025 and 3.3 will be set as default. ](https://github.com/actions/runner-images/issues/11345) |
|
||||
***
|
||||
# macOS 14
|
||||
- OS Version: macOS 14.5 (23F79)
|
||||
- Kernel Version: Darwin 23.5.0
|
||||
- Image Version: 20240714.2
|
||||
- OS Version: macOS 14.7.2 (23H311)
|
||||
- Kernel Version: Darwin 23.6.0
|
||||
- Image Version: 20250127.794
|
||||
|
||||
## Installed Software
|
||||
|
||||
### Language and Runtime
|
||||
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.410, 8.0.101, 8.0.204, 8.0.303
|
||||
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.410, 8.0.101, 8.0.204, 8.0.303, 8.0.405, 9.0.102
|
||||
- Bash 3.2.57(1)-release
|
||||
- Clang/LLVM 14.0.3
|
||||
- Clang/LLVM 15.0.0
|
||||
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
|
||||
- GCC 11 (Homebrew GCC 11.4.0) - available by `gcc-11` alias
|
||||
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
|
||||
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
|
||||
- GCC 14 (Homebrew GCC 14.1.0_2) - available by `gcc-14` alias
|
||||
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
|
||||
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
|
||||
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
|
||||
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
|
||||
- GNU Fortran 14 (Homebrew GCC 14.1.0_2) - available by `gfortran-14` alias
|
||||
- Kotlin 2.0.0-release-341
|
||||
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
|
||||
- Kotlin 2.1.0-release-394
|
||||
- Mono 6.12.0.188
|
||||
- Node.js 20.15.1
|
||||
- Perl 5.38.2
|
||||
- Python3 3.12.4
|
||||
- Node.js 20.18.2
|
||||
- Perl 5.40.1
|
||||
- Python3 3.13.1
|
||||
- Ruby 3.0.7p220
|
||||
|
||||
### Package Management
|
||||
- Bundler 2.5.15
|
||||
- Carthage 0.39.1
|
||||
- CocoaPods 1.15.2
|
||||
- Homebrew 4.3.9
|
||||
- NPM 10.7.0
|
||||
- Bundler 2.5.23
|
||||
- Carthage 0.40.0
|
||||
- CocoaPods 1.16.2
|
||||
- Homebrew 4.4.17
|
||||
- NPM 10.8.2
|
||||
- NuGet 6.3.1.1
|
||||
- Pip3 24.0 (python 3.12)
|
||||
- Pipx 1.6.0
|
||||
- RubyGems 3.5.15
|
||||
- Pip3 24.3.1 (python 3.13)
|
||||
- Pipx 1.7.1
|
||||
- RubyGems 3.5.23
|
||||
- Yarn 1.22.22
|
||||
|
||||
### Project Management
|
||||
- Apache Ant 1.10.14
|
||||
- Apache Maven 3.9.8
|
||||
- Gradle 8.9
|
||||
- Apache Ant 1.10.15
|
||||
- Apache Maven 3.9.9
|
||||
- Gradle 8.12.1
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.05
|
||||
- aria2 1.37.0
|
||||
- azcopy 10.25.1
|
||||
- bazel 7.2.1
|
||||
- bazelisk 1.20.0
|
||||
- azcopy 10.27.1
|
||||
- bazel 8.0.1
|
||||
- bazelisk 1.25.0
|
||||
- bsdtar 3.5.3 - available by 'tar' alias
|
||||
- Curl 8.6.0
|
||||
- Git 2.45.2
|
||||
- Git LFS 3.5.1
|
||||
- GitHub CLI 2.52.0
|
||||
- Curl 8.7.1
|
||||
- Git 2.48.1
|
||||
- Git LFS 3.6.1
|
||||
- GitHub CLI 2.65.0
|
||||
- GNU Tar 1.35 - available by 'gtar' alias
|
||||
- GNU Wget 1.24.5
|
||||
- gpg (GnuPG) 2.4.5
|
||||
- GNU Wget 1.25.0
|
||||
- gpg (GnuPG) 2.4.7
|
||||
- jq 1.7.1
|
||||
- OpenSSL 1.1.1w 11 Sep 2023
|
||||
- Packer 1.9.4
|
||||
- pkg-config 0.29.2
|
||||
- yq 4.44.2
|
||||
- Packer 1.12.0
|
||||
- pkgconf 2.3.0
|
||||
- Unxip 3.1
|
||||
- yq 4.45.1
|
||||
- zstd 1.5.6
|
||||
|
||||
### Tools
|
||||
- AWS CLI 2.17.13
|
||||
- AWS SAM CLI 1.120.0
|
||||
- AWS Session Manager CLI 1.2.650.0
|
||||
- Azure CLI 2.62.0
|
||||
- AWS CLI 2.23.6
|
||||
- AWS SAM CLI 1.132.0
|
||||
- AWS Session Manager CLI 1.2.694.0
|
||||
- Azure CLI 2.68.0
|
||||
- Azure CLI (azure-devops) 1.0.1
|
||||
- Bicep CLI 0.28.1
|
||||
- Cmake 3.30.0
|
||||
- CodeQL Action Bundle 2.18.0
|
||||
- Fastlane 2.221.1
|
||||
- SwiftFormat 0.54.1
|
||||
- Xcbeautify 2.4.1
|
||||
- Xcode Command Line Tools 15.3.0.0.1.1708646388
|
||||
- Xcodes 1.5.0
|
||||
- Bicep CLI 0.33.13
|
||||
- Cmake 3.31.5
|
||||
- CodeQL Action Bundle 2.20.1
|
||||
- Fastlane 2.226.0
|
||||
- SwiftFormat 0.55.5
|
||||
- Xcbeautify 2.23.0
|
||||
- Xcode Command Line Tools 16.2.0.0.1.1733547573
|
||||
- Xcodes 1.6.0
|
||||
|
||||
### Linters
|
||||
|
||||
### Browsers
|
||||
- Safari 17.5 (19618.2.12.11.6)
|
||||
- SafariDriver 17.5 (19618.2.12.11.6)
|
||||
- Google Chrome 126.0.6478.127
|
||||
- Google Chrome for Testing 126.0.6478.126
|
||||
- ChromeDriver 126.0.6478.126
|
||||
- Selenium server 4.22.0
|
||||
- Safari 18.2 (19620.1.16.111.6)
|
||||
- SafariDriver 18.2 (19620.1.16.111.6)
|
||||
- Google Chrome 132.0.6834.111
|
||||
- Google Chrome for Testing 132.0.6834.110
|
||||
- ChromeDriver 132.0.6834.110
|
||||
- Selenium server 4.28.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -104,158 +102,163 @@
|
||||
### Java
|
||||
| Version | Environment Variable |
|
||||
| -------------------- | -------------------- |
|
||||
| 11.0.23+9 | JAVA_HOME_11_arm64 |
|
||||
| 17.0.11+9 | JAVA_HOME_17_arm64 |
|
||||
| 21.0.3+9.0 (default) | JAVA_HOME_21_arm64 |
|
||||
| 11.0.26+4 | JAVA_HOME_11_arm64 |
|
||||
| 17.0.14+7 | JAVA_HOME_17_arm64 |
|
||||
| 21.0.6+7.0 (default) | JAVA_HOME_21_arm64 |
|
||||
|
||||
### Cached Tools
|
||||
|
||||
#### Ruby
|
||||
- 3.0.7
|
||||
- 3.1.6
|
||||
- 3.2.6
|
||||
- 3.3.7
|
||||
- 3.4.1
|
||||
|
||||
#### Python
|
||||
- 3.9.13
|
||||
- 3.10.11
|
||||
- 3.11.9
|
||||
- 3.12.4
|
||||
- 3.12.8
|
||||
- 3.13.1
|
||||
|
||||
#### Node.js
|
||||
- 18.20.4
|
||||
- 20.15.1
|
||||
- 18.20.6
|
||||
- 20.18.2
|
||||
- 22.13.1
|
||||
|
||||
#### Go
|
||||
- 1.20.14
|
||||
- 1.21.12
|
||||
- 1.22.5
|
||||
- 1.21.13
|
||||
- 1.22.11
|
||||
- 1.23.5
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.79.0
|
||||
- Rust 1.79.0
|
||||
- Rustdoc 1.79.0
|
||||
- Cargo 1.84.0
|
||||
- Rust 1.84.0
|
||||
- Rustdoc 1.84.0
|
||||
- Rustup 1.27.1
|
||||
|
||||
#### Packages
|
||||
- Clippy 0.1.79
|
||||
- Rustfmt 1.7.0-stable
|
||||
- Clippy 0.1.84
|
||||
- Rustfmt 1.8.0-stable
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.4.3
|
||||
- PowerShell 7.4.7
|
||||
|
||||
#### PowerShell Modules
|
||||
- Az: 12.1.0
|
||||
- Pester: 5.6.1
|
||||
- PSScriptAnalyzer: 1.22.0
|
||||
- Az: 12.4.0
|
||||
- Pester: 5.7.1
|
||||
- PSScriptAnalyzer: 1.23.0
|
||||
|
||||
### Xcode
|
||||
| Version | Build | Path |
|
||||
| ---------------- | -------- | ------------------------------ |
|
||||
| 16.0 (beta) | 16A5171r | /Applications/Xcode_16.0.app |
|
||||
| 15.4 | 15F31d | /Applications/Xcode_15.4.app |
|
||||
| 15.3 | 15E204a | /Applications/Xcode_15.3.app |
|
||||
| 15.2 | 15C500b | /Applications/Xcode_15.2.app |
|
||||
| 15.1 | 15C65 | /Applications/Xcode_15.1.app |
|
||||
| 15.0.1 (default) | 15A507 | /Applications/Xcode_15.0.1.app |
|
||||
| 14.3.1 | 14E300c | /Applications/Xcode_14.3.1.app |
|
||||
| Version | Build | Path | Symlinks |
|
||||
| -------------- | -------- | ------------------------------ | --------------------------------------------------------- |
|
||||
| 16.2 | 16C5032a | /Applications/Xcode_16.2.app | /Applications/Xcode_16.2.0.app |
|
||||
| 16.1 | 16B40 | /Applications/Xcode_16.1.app | /Applications/Xcode_16.1.0.app |
|
||||
| 15.4 (default) | 15F31d | /Applications/Xcode_15.4.app | /Applications/Xcode_15.4.0.app<br>/Applications/Xcode.app |
|
||||
| 15.3 | 15E204a | /Applications/Xcode_15.3.app | /Applications/Xcode_15.3.0.app |
|
||||
| 15.2 | 15C500b | /Applications/Xcode_15.2.app | /Applications/Xcode_15.2.0.app |
|
||||
| 15.1 | 15C65 | /Applications/Xcode_15.1.app | /Applications/Xcode_15.1.0.app |
|
||||
| 15.0.1 | 15A507 | /Applications/Xcode_15.0.1.app | /Applications/Xcode_15.0.app |
|
||||
|
||||
#### Installed SDKs
|
||||
| SDK | SDK Name | Xcode Version |
|
||||
| ------------------------------------------------------- | --------------------------------------------- | ------------- |
|
||||
| macOS 13.3 | macosx13.3 | 14.3.1 |
|
||||
| macOS 14.0 | macosx14.0 | 15.0.1 |
|
||||
| macOS 14.2 | macosx14.2 | 15.1, 15.2 |
|
||||
| macOS 14.4 | macosx14.4 | 15.3 |
|
||||
| macOS 14.5 | macosx14.5 | 15.4 |
|
||||
| macOS 15.0 | macosx15.0 | 16.0 |
|
||||
| iOS 16.4 | iphoneos16.4 | 14.3.1 |
|
||||
| iOS 17.0 | iphoneos17.0 | 15.0.1 |
|
||||
| iOS 17.2 | iphoneos17.2 | 15.1, 15.2 |
|
||||
| iOS 17.4 | iphoneos17.4 | 15.3 |
|
||||
| iOS 17.5 | iphoneos17.5 | 15.4 |
|
||||
| iOS 18.0 | iphoneos18.0 | 16.0 |
|
||||
| Simulator - iOS 16.4 | iphonesimulator16.4 | 14.3.1 |
|
||||
| Simulator - iOS 17.0 | iphonesimulator17.0 | 15.0.1 |
|
||||
| Simulator - iOS 17.2 | iphonesimulator17.2 | 15.1, 15.2 |
|
||||
| Simulator - iOS 17.4 | iphonesimulator17.4 | 15.3 |
|
||||
| Simulator - iOS 17.5 | iphonesimulator17.5 | 15.4 |
|
||||
| Simulator - iOS 18.0 | iphonesimulator18.0 | 16.0 |
|
||||
| tvOS 16.4 | appletvos16.4 | 14.3.1 |
|
||||
| tvOS 17.0 | appletvos17.0 | 15.0.1 |
|
||||
| tvOS 17.2 | appletvos17.2 | 15.1, 15.2 |
|
||||
| tvOS 17.4 | appletvos17.4 | 15.3 |
|
||||
| tvOS 17.5 | appletvos17.5 | 15.4 |
|
||||
| tvOS 18.0 | appletvos18.0 | 16.0 |
|
||||
| Simulator - tvOS 16.4 | appletvsimulator16.4 | 14.3.1 |
|
||||
| Simulator - tvOS 17.0 | appletvsimulator17.0 | 15.0.1 |
|
||||
| Simulator - tvOS 17.2 | appletvsimulator17.2 | 15.1, 15.2 |
|
||||
| Simulator - tvOS 17.4 | appletvsimulator17.4 | 15.3 |
|
||||
| Simulator - tvOS 17.5 | appletvsimulator17.5 | 15.4 |
|
||||
| Simulator - tvOS 18.0 | appletvsimulator18.0 | 16.0 |
|
||||
| watchOS 9.4 | watchos9.4 | 14.3.1 |
|
||||
| watchOS 10.0 | watchos10.0 | 15.0.1 |
|
||||
| watchOS 10.2 | watchos10.2 | 15.1, 15.2 |
|
||||
| watchOS 10.4 | watchos10.4 | 15.3 |
|
||||
| watchOS 10.5 | watchos10.5 | 15.4 |
|
||||
| watchOS 11.0 | watchos11.0 | 16.0 |
|
||||
| Simulator - watchOS 9.4 | watchsimulator9.4 | 14.3.1 |
|
||||
| Simulator - watchOS 10.0 | watchsimulator10.0 | 15.0.1 |
|
||||
| Simulator - watchOS 10.2 | watchsimulator10.2 | 15.1, 15.2 |
|
||||
| Simulator - watchOS 10.4 | watchsimulator10.4 | 15.3 |
|
||||
| Simulator - watchOS 10.5 | watchsimulator10.5 | 15.4 |
|
||||
| Simulator - watchOS 11.0 | watchsimulator11.0 | 16.0 |
|
||||
| visionOS 1.0 | xros1.0 | 15.2 |
|
||||
| Simulator - visionOS 1.0 | xrsimulator1.0 | 15.2 |
|
||||
| visionOS 1.1 | xros1.1 | 15.3 |
|
||||
| Simulator - visionOS 1.1 | xrsimulator1.1 | 15.3 |
|
||||
| Simulator - visionOS 1.2 | xrsimulator1.2 | 15.4 |
|
||||
| visionOS 1.2 | xros1.2 | 15.4 |
|
||||
| visionOS 2.0 | xros2.0 | 16.0 |
|
||||
| Simulator - visionOS 2.0 | xrsimulator2.0 | 16.0 |
|
||||
| Asset Runtime SDK for macOS hosts targeting watchOS 9.4 | assetruntime.host.macosx.target.watchos9.4 | 14.3.1 |
|
||||
| Asset Runtime SDK for macOS hosts targeting iOS 16.4 | assetruntime.host.macosx.target.iphoneos16.4 | 14.3.1 |
|
||||
| Asset Runtime SDK for macOS hosts targeting tvOS 16.4 | assetruntime.host.macosx.target.appletvos16.4 | 14.3.1 |
|
||||
| DriverKit 22.4 | driverkit22.4 | 14.3.1 |
|
||||
| DriverKit 23.0 | driverkit23.0 | 15.0.1 |
|
||||
| DriverKit 23.2 | driverkit23.2 | 15.1, 15.2 |
|
||||
| DriverKit 23.4 | driverkit23.4 | 15.3 |
|
||||
| DriverKit 23.5 | driverkit23.5 | 15.4 |
|
||||
| DriverKit 24.0 | driverkit24.0 | 16.0 |
|
||||
| SDK | SDK Name | Xcode Version |
|
||||
| ------------------------ | -------------------- | ------------- |
|
||||
| macOS 14.0 | macosx14.0 | 15.0.1 |
|
||||
| macOS 14.2 | macosx14.2 | 15.1, 15.2 |
|
||||
| macOS 14.4 | macosx14.4 | 15.3 |
|
||||
| macOS 14.5 | macosx14.5 | 15.4 |
|
||||
| macOS 15.1 | macosx15.1 | 16.1 |
|
||||
| macOS 15.2 | macosx15.2 | 16.2 |
|
||||
| iOS 17.0 | iphoneos17.0 | 15.0.1 |
|
||||
| iOS 17.2 | iphoneos17.2 | 15.1, 15.2 |
|
||||
| iOS 17.4 | iphoneos17.4 | 15.3 |
|
||||
| iOS 17.5 | iphoneos17.5 | 15.4 |
|
||||
| iOS 18.1 | iphoneos18.1 | 16.1 |
|
||||
| iOS 18.2 | iphoneos18.2 | 16.2 |
|
||||
| Simulator - iOS 17.0 | iphonesimulator17.0 | 15.0.1 |
|
||||
| Simulator - iOS 17.2 | iphonesimulator17.2 | 15.1, 15.2 |
|
||||
| Simulator - iOS 17.4 | iphonesimulator17.4 | 15.3 |
|
||||
| Simulator - iOS 17.5 | iphonesimulator17.5 | 15.4 |
|
||||
| Simulator - iOS 18.1 | iphonesimulator18.1 | 16.1 |
|
||||
| Simulator - iOS 18.2 | iphonesimulator18.2 | 16.2 |
|
||||
| tvOS 17.0 | appletvos17.0 | 15.0.1 |
|
||||
| tvOS 17.2 | appletvos17.2 | 15.1, 15.2 |
|
||||
| tvOS 17.4 | appletvos17.4 | 15.3 |
|
||||
| tvOS 17.5 | appletvos17.5 | 15.4 |
|
||||
| tvOS 18.1 | appletvos18.1 | 16.1 |
|
||||
| tvOS 18.2 | appletvos18.2 | 16.2 |
|
||||
| Simulator - tvOS 17.0 | appletvsimulator17.0 | 15.0.1 |
|
||||
| Simulator - tvOS 17.2 | appletvsimulator17.2 | 15.1, 15.2 |
|
||||
| Simulator - tvOS 17.4 | appletvsimulator17.4 | 15.3 |
|
||||
| Simulator - tvOS 17.5 | appletvsimulator17.5 | 15.4 |
|
||||
| Simulator - tvOS 18.1 | appletvsimulator18.1 | 16.1 |
|
||||
| Simulator - tvOS 18.2 | appletvsimulator18.2 | 16.2 |
|
||||
| watchOS 10.0 | watchos10.0 | 15.0.1 |
|
||||
| watchOS 10.2 | watchos10.2 | 15.1, 15.2 |
|
||||
| watchOS 10.4 | watchos10.4 | 15.3 |
|
||||
| watchOS 10.5 | watchos10.5 | 15.4 |
|
||||
| watchOS 11.1 | watchos11.1 | 16.1 |
|
||||
| watchOS 11.2 | watchos11.2 | 16.2 |
|
||||
| Simulator - watchOS 10.0 | watchsimulator10.0 | 15.0.1 |
|
||||
| Simulator - watchOS 10.2 | watchsimulator10.2 | 15.1, 15.2 |
|
||||
| Simulator - watchOS 10.4 | watchsimulator10.4 | 15.3 |
|
||||
| Simulator - watchOS 10.5 | watchsimulator10.5 | 15.4 |
|
||||
| Simulator - watchOS 11.1 | watchsimulator11.1 | 16.1 |
|
||||
| Simulator - watchOS 11.2 | watchsimulator11.2 | 16.2 |
|
||||
| visionOS 1.0 | xros1.0 | 15.2 |
|
||||
| Simulator - visionOS 1.0 | xrsimulator1.0 | 15.2 |
|
||||
| visionOS 1.1 | xros1.1 | 15.3 |
|
||||
| Simulator - visionOS 1.1 | xrsimulator1.1 | 15.3 |
|
||||
| Simulator - visionOS 1.2 | xrsimulator1.2 | 15.4 |
|
||||
| visionOS 1.2 | xros1.2 | 15.4 |
|
||||
| Simulator - visionOS 2.1 | xrsimulator2.1 | 16.1 |
|
||||
| visionOS 2.1 | xros2.1 | 16.1 |
|
||||
| visionOS 2.2 | xros2.2 | 16.2 |
|
||||
| Simulator - visionOS 2.2 | xrsimulator2.2 | 16.2 |
|
||||
| DriverKit 23.0 | driverkit23.0 | 15.0.1 |
|
||||
| DriverKit 23.2 | driverkit23.2 | 15.1, 15.2 |
|
||||
| DriverKit 23.4 | driverkit23.4 | 15.3 |
|
||||
| DriverKit 23.5 | driverkit23.5 | 15.4 |
|
||||
| DriverKit 24.1 | driverkit24.1 | 16.1 |
|
||||
| DriverKit 24.2 | driverkit24.2 | 16.2 |
|
||||
|
||||
#### Installed Simulators
|
||||
| OS | Xcode Version | Simulators |
|
||||
| ------------ | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 16.4 | 14.3.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.2 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 17.5 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| tvOS 16.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.2 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.5 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| watchOS 9.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
|
||||
| watchOS 10.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.2 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.5 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| visionOS 1.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple Vision Pro |
|
||||
| visionOS 1.1 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple Vision Pro |
|
||||
| visionOS 1.2 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple Vision Pro |
|
||||
| visionOS 2.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4<br>16.0 | Apple Vision Pro |
|
||||
| OS | Simulators |
|
||||
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 17.0 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.2 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.4 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 17.5 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.1 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.2 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| tvOS 17.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| watchOS 10.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| visionOS 1.0 | Apple Vision Pro |
|
||||
| visionOS 1.1 | Apple Vision Pro |
|
||||
| visionOS 1.2 | Apple Vision Pro |
|
||||
|
||||
### Android
|
||||
| Package Name | Version |
|
||||
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 11.0 |
|
||||
| Android Emulator | 34.2.16 |
|
||||
| Android SDK Build-tools | 35.0.0<br>34.0.0<br>33.0.2 33.0.3 |
|
||||
| Android SDK Platforms | android-35 (rev 1)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
|
||||
| Android SDK Platform-Tools | 35.0.1 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.22.1 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 24.0.8215888<br>25.2.9519653<br>26.3.11579264 (default) |
|
||||
| Package Name | Version |
|
||||
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 11.0 |
|
||||
| Android Emulator | 35.3.11 |
|
||||
| Android SDK Build-tools | 35.0.0 35.0.1<br>34.0.0<br>33.0.2 33.0.3 |
|
||||
| Android SDK Platforms | android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
|
||||
| Android SDK Platform-Tools | 35.0.2 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.31.0 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 26.3.11579264 (default)<br>27.2.12479018 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -263,7 +266,10 @@
|
||||
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
|
||||
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
### Miscellaneous
|
||||
- Tcl/Tk 8.6.16
|
||||
|
||||
|
||||
@@ -0,0 +1,249 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[macOS] Ruby version 3.0 will be removed from the images on Feb 10, 2025 and 3.3 will be set as default. ](https://github.com/actions/runner-images/issues/11345) |
|
||||
| [[macOS] The macOS 12 Actions runner image will begin deprecation on 10/7/24 and will be fully unsupported by 12/3/24 for GitHub and by 01/13/25 for ADO](https://github.com/actions/runner-images/issues/10721) |
|
||||
| [macOS 15 (Sequoia) is now available as a public beta in GitHub Actions](https://github.com/actions/runner-images/issues/10686) |
|
||||
***
|
||||
# macOS 15
|
||||
- OS Version: macOS 15.2 (24C101)
|
||||
- Kernel Version: Darwin 24.2.0
|
||||
- Image Version: 20250120.591
|
||||
|
||||
## Installed Software
|
||||
|
||||
### Language and Runtime
|
||||
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.405, 9.0.102
|
||||
- Bash 3.2.57(1)-release
|
||||
- Clang/LLVM 15.0.0
|
||||
- Clang/LLVM (Homebrew) 18.1.8 - available on `$(brew --prefix llvm@18)/bin/clang`
|
||||
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
|
||||
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
|
||||
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
|
||||
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
|
||||
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
|
||||
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
|
||||
- Kotlin 2.1.0-release-394
|
||||
- Node.js 22.13.0
|
||||
- Perl 5.40.1
|
||||
- PHP 8.4.3
|
||||
- Python3 3.13.1
|
||||
- Ruby 3.3.7
|
||||
|
||||
### Package Management
|
||||
- Bundler 2.6.3
|
||||
- Carthage 0.40.0
|
||||
- CocoaPods 1.16.2
|
||||
- Composer 2.8.4
|
||||
- Homebrew 4.4.16
|
||||
- NPM 10.9.2
|
||||
- Pip3 24.3.1 (python 3.13)
|
||||
- Pipx 1.7.1
|
||||
- RubyGems 3.6.3
|
||||
- Yarn 1.22.22
|
||||
|
||||
### Project Management
|
||||
- Apache Ant 1.10.15
|
||||
- Apache Maven 3.9.9
|
||||
- Gradle 8.12
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.05
|
||||
- aria2 1.37.0
|
||||
- azcopy 10.27.1
|
||||
- bazel 8.0.1
|
||||
- bazelisk 1.25.0
|
||||
- bsdtar 3.5.3 - available by 'tar' alias
|
||||
- Curl 8.11.1
|
||||
- Git 2.48.1
|
||||
- Git LFS 3.6.1
|
||||
- GitHub CLI 2.65.0
|
||||
- GNU Tar 1.35 - available by 'gtar' alias
|
||||
- GNU Wget 1.25.0
|
||||
- gpg (GnuPG) 2.4.7
|
||||
- jq 1.7.1
|
||||
- OpenSSL 1.1.1w 11 Sep 2023
|
||||
- Packer 1.11.2
|
||||
- pkgconf 2.3.0
|
||||
- Unxip 3.1
|
||||
- yq 4.45.1
|
||||
- zstd 1.5.6
|
||||
|
||||
### Tools
|
||||
- AWS CLI 2.23.2
|
||||
- AWS SAM CLI 1.132.0
|
||||
- AWS Session Manager CLI 1.2.694.0
|
||||
- Azure CLI 2.68.0
|
||||
- Azure CLI (azure-devops) 1.0.1
|
||||
- Bicep CLI 0.32.4
|
||||
- Cmake 3.31.4
|
||||
- CodeQL Action Bundle 2.20.1
|
||||
- Fastlane 2.226.0
|
||||
- SwiftFormat 0.55.4
|
||||
- Xcbeautify 2.17.0
|
||||
- Xcode Command Line Tools 16.2.0.0.1.1733547573
|
||||
- Xcodes 1.6.0
|
||||
|
||||
### Linters
|
||||
- SwiftLint 0.58.2
|
||||
|
||||
### Browsers
|
||||
- Safari 18.2 (20620.1.16.11.8)
|
||||
- SafariDriver 18.2 (20620.1.16.11.8)
|
||||
- Google Chrome 132.0.6834.84
|
||||
- Google Chrome for Testing 132.0.6834.83
|
||||
- ChromeDriver 132.0.6834.83
|
||||
- Microsoft Edge 132.0.2957.115
|
||||
- Microsoft Edge WebDriver 132.0.2957.115
|
||||
- Mozilla Firefox 134.0.1
|
||||
- geckodriver 0.35.0
|
||||
- Selenium server 4.27.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| --------------- | ------------------------------------- |
|
||||
| CHROMEWEBDRIVER | /usr/local/share/chromedriver-mac-x64 |
|
||||
| EDGEWEBDRIVER | /usr/local/share/edge_driver |
|
||||
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
|
||||
|
||||
### Java
|
||||
| Version | Environment Variable |
|
||||
| --------------------- | -------------------- |
|
||||
| 11.0.25+9 | JAVA_HOME_11_X64 |
|
||||
| 17.0.13+11 | JAVA_HOME_17_X64 |
|
||||
| 21.0.5+11.0 (default) | JAVA_HOME_21_X64 |
|
||||
|
||||
### Cached Tools
|
||||
|
||||
#### Ruby
|
||||
- 3.1.6
|
||||
- 3.2.6
|
||||
- 3.3.7
|
||||
- 3.4.1
|
||||
|
||||
#### Python
|
||||
- 3.9.21
|
||||
- 3.10.16
|
||||
- 3.11.9
|
||||
- 3.12.8
|
||||
- 3.13.1
|
||||
|
||||
#### Node.js
|
||||
- 18.20.5
|
||||
- 20.18.1
|
||||
- 22.13.0
|
||||
|
||||
#### Go
|
||||
- 1.21.13
|
||||
- 1.22.10
|
||||
- 1.23.4
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.84.0
|
||||
- Rust 1.84.0
|
||||
- Rustdoc 1.84.0
|
||||
- Rustup 1.27.1
|
||||
|
||||
#### Packages
|
||||
- Clippy 0.1.84
|
||||
- Rustfmt 1.8.0-stable
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.4.6
|
||||
|
||||
#### PowerShell Modules
|
||||
- Az: 12.4.0
|
||||
- Pester: 5.7.1
|
||||
- PSScriptAnalyzer: 1.23.0
|
||||
|
||||
### Xcode
|
||||
| Version | Build | Path | Symlinks |
|
||||
| -------------- | -------- | ---------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| 16.2 | 16C5032a | /Applications/Xcode_16.2.app | /Applications/Xcode_16.2.0.app |
|
||||
| 16.1 | 16B40 | /Applications/Xcode_16.1.app | /Applications/Xcode_16.1.0.app |
|
||||
| 16.0 (default) | 16A242d | /Applications/Xcode_16.app | /Applications/Xcode_16.0.0.app<br>/Applications/Xcode_16.0.app<br>/Applications/Xcode.app |
|
||||
| 15.4 | 15F31d | /Applications/Xcode_15.4.app | /Applications/Xcode_15.4.0.app |
|
||||
|
||||
#### Installed SDKs
|
||||
| SDK | SDK Name | Xcode Version |
|
||||
| ------------------------ | -------------------- | ------------- |
|
||||
| macOS 14.5 | macosx14.5 | 15.4 |
|
||||
| macOS 15.0 | macosx15.0 | 16.0 |
|
||||
| macOS 15.1 | macosx15.1 | 16.1 |
|
||||
| macOS 15.2 | macosx15.2 | 16.2 |
|
||||
| iOS 17.5 | iphoneos17.5 | 15.4 |
|
||||
| iOS 18.0 | iphoneos18.0 | 16.0 |
|
||||
| iOS 18.1 | iphoneos18.1 | 16.1 |
|
||||
| iOS 18.2 | iphoneos18.2 | 16.2 |
|
||||
| Simulator - iOS 17.5 | iphonesimulator17.5 | 15.4 |
|
||||
| Simulator - iOS 18.0 | iphonesimulator18.0 | 16.0 |
|
||||
| Simulator - iOS 18.1 | iphonesimulator18.1 | 16.1 |
|
||||
| Simulator - iOS 18.2 | iphonesimulator18.2 | 16.2 |
|
||||
| tvOS 17.5 | appletvos17.5 | 15.4 |
|
||||
| tvOS 18.0 | appletvos18.0 | 16.0 |
|
||||
| tvOS 18.1 | appletvos18.1 | 16.1 |
|
||||
| tvOS 18.2 | appletvos18.2 | 16.2 |
|
||||
| Simulator - tvOS 17.5 | appletvsimulator17.5 | 15.4 |
|
||||
| Simulator - tvOS 18.0 | appletvsimulator18.0 | 16.0 |
|
||||
| Simulator - tvOS 18.1 | appletvsimulator18.1 | 16.1 |
|
||||
| Simulator - tvOS 18.2 | appletvsimulator18.2 | 16.2 |
|
||||
| watchOS 10.5 | watchos10.5 | 15.4 |
|
||||
| watchOS 11.0 | watchos11.0 | 16.0 |
|
||||
| watchOS 11.1 | watchos11.1 | 16.1 |
|
||||
| watchOS 11.2 | watchos11.2 | 16.2 |
|
||||
| Simulator - watchOS 10.5 | watchsimulator10.5 | 15.4 |
|
||||
| Simulator - watchOS 11.0 | watchsimulator11.0 | 16.0 |
|
||||
| Simulator - watchOS 11.1 | watchsimulator11.1 | 16.1 |
|
||||
| Simulator - watchOS 11.2 | watchsimulator11.2 | 16.2 |
|
||||
| Simulator - visionOS 1.2 | xrsimulator1.2 | 15.4 |
|
||||
| visionOS 1.2 | xros1.2 | 15.4 |
|
||||
| visionOS 2.0 | xros2.0 | 16.0 |
|
||||
| Simulator - visionOS 2.0 | xrsimulator2.0 | 16.0 |
|
||||
| Simulator - visionOS 2.1 | xrsimulator2.1 | 16.1 |
|
||||
| visionOS 2.1 | xros2.1 | 16.1 |
|
||||
| Simulator - visionOS 2.2 | xrsimulator2.2 | 16.2 |
|
||||
| visionOS 2.2 | xros2.2 | 16.2 |
|
||||
| DriverKit 23.5 | driverkit23.5 | 15.4 |
|
||||
| DriverKit 24.0 | driverkit24.0 | 16.0 |
|
||||
| DriverKit 24.1 | driverkit24.1 | 16.1 |
|
||||
| DriverKit 24.2 | driverkit24.2 | 16.2 |
|
||||
|
||||
#### Installed Simulators
|
||||
| OS | Simulators |
|
||||
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 17.5 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.0 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.1 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.2 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| tvOS 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| watchOS 10.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
|
||||
### Android
|
||||
| Package Name | Version |
|
||||
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 16.0 |
|
||||
| Android Emulator | 35.3.11 |
|
||||
| Android SDK Build-tools | 35.0.0 35.0.1 |
|
||||
| Android SDK Platforms | android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1) |
|
||||
| Android SDK Platform-Tools | 35.0.2 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.31.0 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 26.3.11579264<br>27.2.12479018 (default) |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| ----------------------- | --------------------------------------------------- |
|
||||
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
|
||||
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
|
||||
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
|
||||
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
@@ -0,0 +1,245 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[macOS] Ruby version 3.0 will be removed from the images on Feb 10, 2025 and 3.3 will be set as default. ](https://github.com/actions/runner-images/issues/11345) |
|
||||
| [[macOS] The macOS 12 Actions runner image will begin deprecation on 10/7/24 and will be fully unsupported by 12/3/24 for GitHub and by 01/13/25 for ADO](https://github.com/actions/runner-images/issues/10721) |
|
||||
| [macOS 15 (Sequoia) is now available as a public beta in GitHub Actions](https://github.com/actions/runner-images/issues/10686) |
|
||||
***
|
||||
# macOS 15
|
||||
- OS Version: macOS 15.2 (24C101)
|
||||
- Kernel Version: Darwin 24.2.0
|
||||
- Image Version: 20250120.596
|
||||
|
||||
## Installed Software
|
||||
|
||||
### Language and Runtime
|
||||
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.405, 9.0.102
|
||||
- Bash 3.2.57(1)-release
|
||||
- Clang/LLVM 15.0.0
|
||||
- Clang/LLVM (Homebrew) 18.1.8 - available on `$(brew --prefix llvm@18)/bin/clang`
|
||||
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
|
||||
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
|
||||
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
|
||||
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
|
||||
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
|
||||
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
|
||||
- Kotlin 2.1.0-release-394
|
||||
- Node.js 22.13.0
|
||||
- Perl 5.40.1
|
||||
- Python3 3.13.1
|
||||
- Ruby 3.3.7
|
||||
|
||||
### Package Management
|
||||
- Bundler 2.6.3
|
||||
- Carthage 0.40.0
|
||||
- CocoaPods 1.16.2
|
||||
- Homebrew 4.4.16
|
||||
- NPM 10.9.2
|
||||
- Pip3 24.3.1 (python 3.13)
|
||||
- Pipx 1.7.1
|
||||
- RubyGems 3.6.3
|
||||
- Yarn 1.22.22
|
||||
|
||||
### Project Management
|
||||
- Apache Ant 1.10.15
|
||||
- Apache Maven 3.9.9
|
||||
- Gradle 8.12
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.05
|
||||
- aria2 1.37.0
|
||||
- azcopy 10.27.1
|
||||
- bazel 8.0.1
|
||||
- bazelisk 1.25.0
|
||||
- bsdtar 3.5.3 - available by 'tar' alias
|
||||
- Curl 8.7.1
|
||||
- Git 2.48.1
|
||||
- Git LFS 3.6.1
|
||||
- GitHub CLI 2.65.0
|
||||
- GNU Tar 1.35 - available by 'gtar' alias
|
||||
- GNU Wget 1.25.0
|
||||
- gpg (GnuPG) 2.4.7
|
||||
- jq 1.7.1
|
||||
- OpenSSL 1.1.1w 11 Sep 2023
|
||||
- Packer 1.11.2
|
||||
- pkgconf 2.3.0
|
||||
- Unxip 3.1
|
||||
- yq 4.45.1
|
||||
- zstd 1.5.6
|
||||
|
||||
### Tools
|
||||
- AWS CLI 2.23.2
|
||||
- AWS SAM CLI 1.132.0
|
||||
- AWS Session Manager CLI 1.2.694.0
|
||||
- Azure CLI 2.68.0
|
||||
- Azure CLI (azure-devops) 1.0.1
|
||||
- Bicep CLI 0.32.4
|
||||
- Cmake 3.31.4
|
||||
- CodeQL Action Bundle 2.20.1
|
||||
- Fastlane 2.226.0
|
||||
- SwiftFormat 0.55.4
|
||||
- Xcbeautify 2.17.0
|
||||
- Xcode Command Line Tools 16.2.0.0.1.1733547573
|
||||
- Xcodes 1.6.0
|
||||
|
||||
### Linters
|
||||
|
||||
### Browsers
|
||||
- Safari 18.2 (20620.1.16.11.8)
|
||||
- SafariDriver 18.2 (20620.1.16.11.8)
|
||||
- Google Chrome 132.0.6834.84
|
||||
- Google Chrome for Testing 132.0.6834.83
|
||||
- ChromeDriver 132.0.6834.83
|
||||
- Selenium server 4.27.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| --------------- | --------------------------------------- |
|
||||
| CHROMEWEBDRIVER | /usr/local/share/chromedriver-mac-arm64 |
|
||||
| EDGEWEBDRIVER | |
|
||||
| GECKOWEBDRIVER | |
|
||||
|
||||
### Java
|
||||
| Version | Environment Variable |
|
||||
| --------------------- | -------------------- |
|
||||
| 11.0.25+9 | JAVA_HOME_11_arm64 |
|
||||
| 17.0.13+11 | JAVA_HOME_17_arm64 |
|
||||
| 21.0.5+11.0 (default) | JAVA_HOME_21_arm64 |
|
||||
|
||||
### Cached Tools
|
||||
|
||||
#### Ruby
|
||||
- 3.1.6
|
||||
- 3.2.6
|
||||
- 3.3.7
|
||||
- 3.4.1
|
||||
|
||||
#### Python
|
||||
- 3.11.9
|
||||
- 3.12.8
|
||||
- 3.13.1
|
||||
|
||||
#### Node.js
|
||||
- 18.20.5
|
||||
- 20.18.1
|
||||
- 22.13.0
|
||||
|
||||
#### Go
|
||||
- 1.21.13
|
||||
- 1.22.10
|
||||
- 1.23.4
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.84.0
|
||||
- Rust 1.84.0
|
||||
- Rustdoc 1.84.0
|
||||
- Rustup 1.27.1
|
||||
|
||||
#### Packages
|
||||
- Clippy 0.1.84
|
||||
- Rustfmt 1.8.0-stable
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.4.6
|
||||
|
||||
#### PowerShell Modules
|
||||
- Az: 12.4.0
|
||||
- Pester: 5.7.1
|
||||
- PSScriptAnalyzer: 1.23.0
|
||||
|
||||
### Xcode
|
||||
| Version | Build | Path | Symlinks |
|
||||
| -------------- | -------- | ---------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| 16.2 | 16C5032a | /Applications/Xcode_16.2.app | /Applications/Xcode_16.2.0.app |
|
||||
| 16.1 | 16B40 | /Applications/Xcode_16.1.app | /Applications/Xcode_16.1.0.app |
|
||||
| 16.0 (default) | 16A242d | /Applications/Xcode_16.app | /Applications/Xcode_16.0.0.app<br>/Applications/Xcode_16.0.app<br>/Applications/Xcode.app |
|
||||
| 15.4 | 15F31d | /Applications/Xcode_15.4.app | /Applications/Xcode_15.4.0.app |
|
||||
|
||||
#### Installed SDKs
|
||||
| SDK | SDK Name | Xcode Version |
|
||||
| ------------------------ | -------------------- | ------------- |
|
||||
| macOS 14.5 | macosx14.5 | 15.4 |
|
||||
| macOS 15.0 | macosx15.0 | 16.0 |
|
||||
| macOS 15.1 | macosx15.1 | 16.1 |
|
||||
| macOS 15.2 | macosx15.2 | 16.2 |
|
||||
| iOS 17.5 | iphoneos17.5 | 15.4 |
|
||||
| iOS 18.0 | iphoneos18.0 | 16.0 |
|
||||
| iOS 18.1 | iphoneos18.1 | 16.1 |
|
||||
| iOS 18.2 | iphoneos18.2 | 16.2 |
|
||||
| Simulator - iOS 17.5 | iphonesimulator17.5 | 15.4 |
|
||||
| Simulator - iOS 18.0 | iphonesimulator18.0 | 16.0 |
|
||||
| Simulator - iOS 18.1 | iphonesimulator18.1 | 16.1 |
|
||||
| Simulator - iOS 18.2 | iphonesimulator18.2 | 16.2 |
|
||||
| tvOS 17.5 | appletvos17.5 | 15.4 |
|
||||
| tvOS 18.0 | appletvos18.0 | 16.0 |
|
||||
| tvOS 18.1 | appletvos18.1 | 16.1 |
|
||||
| tvOS 18.2 | appletvos18.2 | 16.2 |
|
||||
| Simulator - tvOS 17.5 | appletvsimulator17.5 | 15.4 |
|
||||
| Simulator - tvOS 18.0 | appletvsimulator18.0 | 16.0 |
|
||||
| Simulator - tvOS 18.1 | appletvsimulator18.1 | 16.1 |
|
||||
| Simulator - tvOS 18.2 | appletvsimulator18.2 | 16.2 |
|
||||
| watchOS 10.5 | watchos10.5 | 15.4 |
|
||||
| watchOS 11.0 | watchos11.0 | 16.0 |
|
||||
| watchOS 11.1 | watchos11.1 | 16.1 |
|
||||
| watchOS 11.2 | watchos11.2 | 16.2 |
|
||||
| Simulator - watchOS 10.5 | watchsimulator10.5 | 15.4 |
|
||||
| Simulator - watchOS 11.0 | watchsimulator11.0 | 16.0 |
|
||||
| Simulator - watchOS 11.1 | watchsimulator11.1 | 16.1 |
|
||||
| Simulator - watchOS 11.2 | watchsimulator11.2 | 16.2 |
|
||||
| Simulator - visionOS 1.2 | xrsimulator1.2 | 15.4 |
|
||||
| visionOS 1.2 | xros1.2 | 15.4 |
|
||||
| visionOS 2.0 | xros2.0 | 16.0 |
|
||||
| Simulator - visionOS 2.0 | xrsimulator2.0 | 16.0 |
|
||||
| visionOS 2.1 | xros2.1 | 16.1 |
|
||||
| Simulator - visionOS 2.1 | xrsimulator2.1 | 16.1 |
|
||||
| Simulator - visionOS 2.2 | xrsimulator2.2 | 16.2 |
|
||||
| visionOS 2.2 | xros2.2 | 16.2 |
|
||||
| Simulator - visionOS 2.2 | xrsimulator2.2 | 16.2 |
|
||||
| DriverKit 23.5 | driverkit23.5 | 15.4 |
|
||||
| DriverKit 24.0 | driverkit24.0 | 16.0 |
|
||||
| DriverKit 24.1 | driverkit24.1 | 16.1 |
|
||||
| DriverKit 24.2 | driverkit24.2 | 16.2 |
|
||||
|
||||
#### Installed Simulators
|
||||
| OS | Simulators |
|
||||
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 17.5 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.0 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.1 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.2 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| tvOS 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| watchOS 10.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| visionOS 1.2 | Apple Vision Pro |
|
||||
| visionOS 2.0 | Apple Vision Pro |
|
||||
| visionOS 2.1 | Apple Vision Pro |
|
||||
| visionOS 2.2 | Apple Vision Pro |
|
||||
|
||||
### Android
|
||||
| Package Name | Version |
|
||||
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 16.0 |
|
||||
| Android Emulator | 35.3.11 |
|
||||
| Android SDK Build-tools | 35.0.0 35.0.1 |
|
||||
| Android SDK Platforms | android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1) |
|
||||
| Android SDK Platform-Tools | 35.0.2 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.31.0 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 26.3.11579264<br>27.2.12479018 (default) |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| ----------------------- | --------------------------------------------------- |
|
||||
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
|
||||
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
|
||||
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
|
||||
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
@@ -33,17 +33,7 @@ Write-Host "Configuring Xcode versions..."
|
||||
$xcodeVersions | ForEach-Object {
|
||||
Write-Host "Configuring Xcode $($_.link) ..."
|
||||
Invoke-XcodeRunFirstLaunch -Version $_.link
|
||||
|
||||
if ($_.install_runtimes -eq 'true') {
|
||||
# Additional simulator runtimes are included by default for Xcode < 14
|
||||
Install-AdditionalSimulatorRuntimes -Version $_.link
|
||||
}
|
||||
|
||||
ForEach($runtime in $_.runtimes) {
|
||||
Write-Host "Installing Additional runtimes for Xcode '$runtime' ..."
|
||||
$xcodebuildPath = Get-XcodeToolPath -Version $_.link -ToolName 'xcodebuild'
|
||||
Invoke-ValidateCommand "sudo $xcodebuildPath -downloadPlatform $runtime" | Out-Null
|
||||
}
|
||||
Install-AdditionalSimulatorRuntimes -Version $_.link -Runtimes $_.install_runtimes
|
||||
}
|
||||
|
||||
Invoke-XcodeRunFirstLaunch -Version $defaultXcode
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
echo "Enabling automatic GUI login for the '$USERNAME' user.."
|
||||
python3 $HOME/bootstrap/kcpassword.py "$PASSWORD"
|
||||
/usr/bin/defaults write /Library/Preferences/com.apple.loginwindow autoLoginUser "$USERNAME"
|
||||
/usr/bin/defaults write /Library/Preferences/com.apple.loginwindow autoLoginUserScreenLocked -bool false
|
||||
|
||||
: '
|
||||
The MIT License (MIT)
|
||||
|
||||
@@ -17,14 +17,7 @@ sudo rm -f /var/vm/sleepimage
|
||||
defaults write NSGlobalDomain NSAppSleepDisabled -bool YES
|
||||
|
||||
# Disable Keyboard Setup Assistant window
|
||||
if is_Veertu; then
|
||||
sudo defaults write /Library/Preferences/com.apple.keyboardtype "keyboardtype" -dict-add "3-7582-0" -int 40
|
||||
fi
|
||||
|
||||
# Change screen resolution to the maximum supported for 4Mb video memory
|
||||
if [[ -d "/Library/Application Support/VMware Tools" ]]; then
|
||||
sudo "/Library/Application Support/VMware Tools/vmware-resolutionSet" 1176 885
|
||||
fi
|
||||
sudo defaults write /Library/Preferences/com.apple.keyboardtype "keyboardtype" -dict-add "3-7582-0" -int 40
|
||||
|
||||
# Update VoiceOver Utility to allow VoiceOver to be controlled with AppleScript
|
||||
# by creating a special Accessibility DB file (SIP must be disabled) and
|
||||
@@ -39,7 +32,6 @@ defaults write com.apple.VoiceOver4/default SCREnableAppleScript -bool YES
|
||||
# Rotate the certificate before expiration to ensure your apps are installed and signed with an active certificate.
|
||||
# Confirm that the correct intermediate certificate is installed by verifying the expiration date is set to 2030.
|
||||
# sudo security delete-certificate -Z FF6797793A3CD798DC5B2ABEF56F73EDC9F83A64 /Library/Keychains/System.keychain
|
||||
# Big Sur requires user interaction to add a cert https://developer.apple.com/forums/thread/671582, we need to use a workaround with SecItemAdd swift method
|
||||
|
||||
swiftc -suppress-warnings "${HOME}/image-generation/add-certificate.swift"
|
||||
|
||||
@@ -58,21 +50,18 @@ done
|
||||
rm -f ./add-certificate
|
||||
|
||||
# enable-automationmode-without-authentication
|
||||
if ! is_BigSur; then
|
||||
brew install expect
|
||||
retry=10
|
||||
while [[ $retry -gt 0 ]]; do
|
||||
{
|
||||
osascript <<EOF
|
||||
tell application "Terminal"
|
||||
activate
|
||||
do script "automationmodetool enable-automationmode-without-authentication"
|
||||
delay 2
|
||||
tell application "System Events"
|
||||
keystroke "${PASSWORD}"
|
||||
keystroke return
|
||||
end tell
|
||||
end tell
|
||||
delay 5
|
||||
/usr/bin/expect <<EOF
|
||||
spawn automationmodetool enable-automationmode-without-authentication
|
||||
expect "password"
|
||||
send "${PASSWORD}\r"
|
||||
expect {
|
||||
"succeeded." { puts "Automation mode enabled successfully"; exit 0 }
|
||||
eof
|
||||
}
|
||||
EOF
|
||||
} && break
|
||||
|
||||
@@ -84,16 +73,21 @@ EOF
|
||||
sleep 10
|
||||
done
|
||||
|
||||
echo "Getting terminal windows"
|
||||
term_service=$(launchctl list | grep -i terminal | cut -f3)
|
||||
echo "Getting terminal windows"
|
||||
launchctl_output=$(launchctl list | grep -i terminal || true)
|
||||
|
||||
if [ -n "$launchctl_output" ]; then
|
||||
term_service=$(echo "$launchctl_output" | cut -f3)
|
||||
echo "Close terminal windows: gui/501/${term_service}"
|
||||
launchctl bootout gui/501/${term_service} && sleep 5
|
||||
else
|
||||
echo "No open terminal windows found."
|
||||
fi
|
||||
|
||||
# test enable-automationmode-without-authentication
|
||||
if [[ ! "$(automationmodetool)" =~ "DOES NOT REQUIRE" ]]; then
|
||||
echo "Failed to enable enable-automationmode-without-authentication option"
|
||||
exit 1
|
||||
fi
|
||||
# test enable-automationmode-without-authentication
|
||||
if [[ ! "$(automationmodetool)" =~ "DOES NOT REQUIRE" ]]; then
|
||||
echo "Failed to enable enable-automationmode-without-authentication option"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create symlink for tests running
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
################################################################################
|
||||
## File: configure-max-files-limitation.sh
|
||||
## Desc: Configure max files limitation
|
||||
################################################################################
|
||||
|
||||
Launch_Daemons="/Library/LaunchDaemons"
|
||||
|
||||
# EOF in quotes to disable variable expansion
|
||||
echo "Creating limit.maxfiles.plist"
|
||||
cat > ${Launch_Daemons}/limit.maxfiles.plist << EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
|
||||
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Label</key>
|
||||
<string>limit.maxfiles</string>
|
||||
<key>Program</key>
|
||||
<string>/Users/runner/limit-maxfiles.sh</string>
|
||||
<key>RunAtLoad</key>
|
||||
<true/>
|
||||
<key>ServiceIPC</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</plist>
|
||||
EOF
|
||||
|
||||
# Creating script for applying workaround https://developer.apple.com/forums/thread/735798
|
||||
|
||||
cat > /Users/runner/limit-maxfiles.sh << EOF
|
||||
#!/bin/bash
|
||||
sudo launchctl limit maxfiles 256 unlimited
|
||||
sudo launchctl limit maxfiles 65536 524288
|
||||
EOF
|
||||
|
||||
echo "limit.maxfiles.sh permissions changing"
|
||||
chmod +x /Users/runner/limit-maxfiles.sh
|
||||
|
||||
echo "limit.maxfiles.plist permissions changing"
|
||||
chown root:wheel "${Launch_Daemons}/limit.maxfiles.plist"
|
||||
chmod 0644 ${Launch_Daemons}/limit.maxfiles.plist
|
||||
|
||||
echo "Done, limit.maxfiles has been updated"
|
||||
@@ -1,39 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
################################################################################
|
||||
## File: configure-network-interface-detection.sh
|
||||
## Desc: add a Daemon to re-detect the attached network interfaces after vm is booted.
|
||||
## Maintainer: @timsutton
|
||||
## script was taken from https://github.com/timsutton/osx-vm-templates/blob/master/scripts/add-network-interface-detection.sh
|
||||
################################################################################
|
||||
|
||||
PLIST=/Library/LaunchDaemons/sonoma.detectnewhardware.plist
|
||||
cat <<EOF > ${PLIST}
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Label</key>
|
||||
<string>sonoma.detectnewhardware</string>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/usr/sbin/networksetup</string>
|
||||
<string>-detectnewhardware</string>
|
||||
</array>
|
||||
<key>RunAtLoad</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
EOF
|
||||
|
||||
# These should be already set as follows, but since they're required
|
||||
# in order to load properly, we set them explicitly.
|
||||
/bin/chmod 644 ${PLIST}
|
||||
/usr/sbin/chown root:wheel ${PLIST}
|
||||
|
||||
: '
|
||||
The MIT License (MIT)
|
||||
Copyright (c) 2013-2017 Timothy Sutton
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
'
|
||||
@@ -19,15 +19,9 @@ if [[ $arch == "arm64" ]]; then
|
||||
else
|
||||
image_label="macos-${label_version}"
|
||||
fi
|
||||
release_label="macOS-${label_version}"
|
||||
|
||||
if is_Ventura || is_Sonoma || is_Monterey; then
|
||||
software_url="https://github.com/actions/runner-images/blob/${image_label}/${image_version}/images/macos/${image_label}-Readme.md"
|
||||
releaseUrl="https://github.com/actions/runner-images/releases/tag/${image_label}%2F${image_version}"
|
||||
else
|
||||
software_url="https://github.com/actions/runner-images/blob/${release_label}/${image_version}/images/macos/${image_label}-Readme.md"
|
||||
releaseUrl="https://github.com/actions/runner-images/releases/tag/${release_label}%2F${image_version}"
|
||||
fi
|
||||
software_url="https://github.com/actions/runner-images/blob/${image_label}/${image_version}/images/macos/${image_label}-Readme.md"
|
||||
releaseUrl="https://github.com/actions/runner-images/releases/tag/${image_label}%2F${image_version}"
|
||||
|
||||
cat <<EOF > $imagedata_file
|
||||
[
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
################################################################################
|
||||
## File: configure-screensaver.sh
|
||||
## Desc: Configure screensaver
|
||||
################################################################################
|
||||
|
||||
# set screensaver idleTime to 0, to prevent turning screensaver on
|
||||
macUUID=$(ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-62)
|
||||
|
||||
rm -rf /Users/$USERNAME/Library/Preferences/com.apple.screensaver.$macUUID.plist
|
||||
rm -rf /Users/$USERNAME/Library/Preferences/ByHost/com.apple.screensaver.$macUUID.plist
|
||||
rm -rf /Users/$USERNAME/Library/Preferences/com.apple.screensaver.plist
|
||||
rm -rf /Users/$USERNAME/Library/Preferences/ByHost/com.apple.screensaver.plist
|
||||
|
||||
defaults write /Users/$USERNAME/Library/Preferences/com.apple.screensaver.$macUUID.plist idleTime -string 0
|
||||
defaults write /Users/$USERNAME/Library/Preferences/com.apple.screensaver.$macUUID.plist CleanExit "YES"
|
||||
defaults write /Users/$USERNAME/Library/Preferences/ByHost/com.apple.screensaver.$macUUID.plist idleTime -string 0
|
||||
defaults write /Users/$USERNAME/Library/Preferences/ByHost/com.apple.screensaver.$macUUID.plist CleanExit "YES"
|
||||
defaults write /Users/$USERNAME/Library/Preferences/com.apple.screensaver.plist idleTime -string 0
|
||||
defaults write /Users/$USERNAME/Library/Preferences/com.apple.screensaver.plist CleanExit "YES"
|
||||
defaults write /Users/$USERNAME/Library/Preferences/ByHost/com.apple.screensaver.plist idleTime -string 0
|
||||
defaults write /Users/$USERNAME/Library/Preferences/ByHost/com.apple.screensaver.plist CleanExit "YES"
|
||||
|
||||
chown -R $USERNAME:staff /Users/$USERNAME/Library/Preferences/ByHost/
|
||||
chown -R $USERNAME:staff /Users/$USERNAME/Library/Preferences/
|
||||
|
||||
killall cfprefsd
|
||||
|
||||
# Set values to 0, to prevent sleep at all
|
||||
pmset -a displaysleep 0 sleep 0 disksleep 0
|
||||
@@ -14,5 +14,6 @@ sudo chsh -s /bin/bash root
|
||||
# Check MacOS architecture and add HOMEBREW PATH to bashrc
|
||||
if [[ $arch == "arm64" ]]; then
|
||||
echo "Adding Homebrew environment to bash"
|
||||
/opt/homebrew/bin/brew shellenv >> ~/.bashrc
|
||||
# Discussed here: https://github.com/Homebrew/brew/pull/18366
|
||||
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.bashrc
|
||||
fi
|
||||
|
||||
@@ -11,19 +11,14 @@ close_finder_window
|
||||
|
||||
# Remove Parallels Desktop
|
||||
# https://github.com/actions/runner-images/issues/6105
|
||||
if is_Monterey; then
|
||||
# https://github.com/actions/runner-images/issues/10143
|
||||
if is_SonomaX64 || is_VenturaX64; then
|
||||
brew uninstall parallels
|
||||
fi
|
||||
|
||||
# Put documentation to $HOME root
|
||||
cp $HOME/image-generation/output/software-report/systeminfo.* $HOME/
|
||||
|
||||
# Put build vm assets scripts to proper directory
|
||||
mkdir -p /usr/local/opt/$USER/scripts
|
||||
mv $HOME/image-generation/assets/* /usr/local/opt/$USER/scripts
|
||||
|
||||
find /usr/local/opt/$USER/scripts -type f -name "*\.sh" -exec chmod +x {} \;
|
||||
|
||||
# Remove fastlane cached cookie
|
||||
rm -rf ~/.fastlane
|
||||
|
||||
@@ -45,3 +40,9 @@ echo "Indexing completed"
|
||||
|
||||
# delete symlink for tests running
|
||||
sudo rm -f /usr/local/bin/invoke_tests
|
||||
|
||||
# Clean Homebrew downloads
|
||||
sudo rm -rf /Users/$USER/Library/Caches/Homebrew/downloads/*
|
||||
|
||||
# Uninstall expect used in configure-machine.sh
|
||||
brew uninstall expect
|
||||
|
||||
@@ -19,6 +19,7 @@ systemValuesArray=(
|
||||
"'kTCCServiceAccessibility','com.apple.Terminal',0,2,0,1,X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,NULL,'UNUSED',NULL,0,1591180502"
|
||||
"'kTCCServiceAccessibility','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
|
||||
"'kTCCServiceMicrophone','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576661342"
|
||||
"'kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1736467200"
|
||||
"'kTCCServiceScreenCapture','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1599831148"
|
||||
"'kTCCServiceScreenCapture','com.devexpress.testcafe-browser-tools',0,2,3,1,X'fade0c0000000068000000010000000700000007000000080000001443fa4ca5141baeda21aeca1f50894673b440d4690000000800000014f8afcf6e69791b283e55bd0b03e39e422745770e0000000800000014bf4fc1aed64c871a49fc6bc9dd3878ce5d4d17c6',NULL,0,'UNUSED',NULL,0,1687952810"
|
||||
"'kTCCServicePostEvent','/Library/Application Support/Veertu/Anka/addons/ankarund',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1644565949"
|
||||
@@ -32,7 +33,7 @@ systemValuesArray=(
|
||||
"'kTCCServiceSystemPolicyNetworkVolumes','com.apple.Terminal',0,2,4,1,X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,0,'UNUSED',NULL,0,1678990068"
|
||||
)
|
||||
for values in "${systemValuesArray[@]}"; do
|
||||
if is_Sonoma; then
|
||||
if is_Sonoma || is_Sequoia; then
|
||||
# TCC access table in Sonoma has extra 4 columns: pid, pid_version, boot_uuid, last_reminded
|
||||
configure_system_tccdb "$values,NULL,NULL,'UNUSED',${values##*,}"
|
||||
else
|
||||
@@ -54,6 +55,7 @@ userValuesArray=(
|
||||
"'kTCCServiceAppleEvents','/bin/bash',1,2,0,1,NULL,NULL,0,'com.apple.finder',NULL,NULL,1592919552"
|
||||
"'kTCCServiceMicrophone','com.apple.CoreSimulator.SimulatorTrampoline',0,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576347152"
|
||||
"'kTCCServiceMicrophone','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576661342"
|
||||
"'kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1736467200"
|
||||
"'kTCCServiceUbiquity','/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/Versions/A/Support/photolibraryd',1,2,5,1,NULL,NULL,NULL,'UNUSED',NULL,0,1619461750"
|
||||
"'kTCCServiceUbiquity','com.apple.PassKitCore',0,2,5,1,NULL,NULL,NULL,'UNUSED',NULL,0,1619516250"
|
||||
"'kTCCServiceAppleEvents','/Library/Application Support/Veertu/Anka/addons/ankarund',1,2,3,1,NULL,NULL,0,'com.apple.finder',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e66696e64657200000003',NULL,1629294900"
|
||||
@@ -66,7 +68,7 @@ userValuesArray=(
|
||||
"'kTCCServiceAppleEvents','/usr/local/opt/runner/provisioner/provisioner',1,2,3,1,NULL,NULL,0,'com.apple.systemevents',X'fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003',NULL,1592919552"
|
||||
)
|
||||
for values in "${userValuesArray[@]}"; do
|
||||
if is_Sonoma; then
|
||||
if is_Sonoma || is_Sequoia; then
|
||||
# TCC access table in Sonoma has extra 4 columns: pid, pid_version, boot_uuid, last_reminded
|
||||
configure_user_tccdb "$values,NULL,NULL,'UNUSED',${values##*,}"
|
||||
else
|
||||
|
||||
@@ -1,144 +0,0 @@
|
||||
#!/usr/bin/env ruby
|
||||
################################################################################
|
||||
## File: configure-xcode-simulators.rb
|
||||
## Desc: List all simulators, find duplicate type and delete them.
|
||||
## Maintainer: @vlas-voloshin
|
||||
## script was taken from https://gist.github.com/vlas-voloshin/f9982128200345cd3fb7
|
||||
################################################################################
|
||||
|
||||
class SimDevice
|
||||
|
||||
attr_accessor :runtime
|
||||
attr_accessor :name
|
||||
attr_accessor :identifier
|
||||
attr_accessor :timestamp
|
||||
|
||||
def initialize(runtime, name, identifier, timestamp)
|
||||
@runtime = runtime
|
||||
@name = name
|
||||
@identifier = identifier
|
||||
@timestamp = timestamp
|
||||
end
|
||||
|
||||
def to_s
|
||||
return "#{@name} - #{@runtime} (#{@identifier}) [#{@timestamp}]"
|
||||
end
|
||||
|
||||
def equivalent_to_device(device)
|
||||
return @runtime == device.runtime && @name == device.name
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# Executes a shell command and returns the result from stdout
|
||||
def execute_simctl_command(command)
|
||||
return %x[xcrun simctl #{command}]
|
||||
end
|
||||
|
||||
# Retrieves the creation date/time of simulator with specified identifier
|
||||
def simulator_creation_date(identifier)
|
||||
directory = Dir.home() + "/Library/Developer/CoreSimulator/Devices/" + identifier
|
||||
if (Dir.exists?(directory))
|
||||
if (File::Stat.method_defined?(:birthtime))
|
||||
return File.stat(directory).birthtime
|
||||
else
|
||||
return File.stat(directory).ctime
|
||||
end
|
||||
else
|
||||
# Simulator directory is not yet created - treat it as if it was created right now (happens with new iOS 9 sims)
|
||||
return Time.now
|
||||
end
|
||||
end
|
||||
|
||||
# Deletes specified simulator
|
||||
def delete_device(device)
|
||||
execute_simctl_command("delete #{device.identifier}")
|
||||
end
|
||||
|
||||
puts("Searching for simulators...")
|
||||
|
||||
# Retrieve the list of existing simulators
|
||||
devices = []
|
||||
runtime = ""
|
||||
execute_simctl_command("list devices").lines.each do |line|
|
||||
case line[0]
|
||||
when '='
|
||||
# First header, skip it
|
||||
when '-'
|
||||
# Runtime header
|
||||
runtime = line.scan(/-- (.+?) --/).flatten[0]
|
||||
else
|
||||
name_and_identifier = line.scan(/\s+(.+?) \(([\w\d]+-[\w\d]+-[\w\d-]+)\)/)[0]
|
||||
name = name_and_identifier[0]
|
||||
identifier = name_and_identifier[1]
|
||||
timestamp = simulator_creation_date(identifier)
|
||||
device = SimDevice.new(runtime, name, identifier, timestamp)
|
||||
devices.push(device)
|
||||
end
|
||||
end
|
||||
|
||||
# Sort the simulators by their creation timestamp, ascending
|
||||
devices = devices.sort { |a, b| a.timestamp <=> b.timestamp }
|
||||
|
||||
duplicates = {}
|
||||
# Enumerate all devices except for the last one
|
||||
for i in 0..devices.count-2
|
||||
device = devices[i]
|
||||
# Enumerate all devices *after* this one (created *later*)
|
||||
for j in i+1..devices.count-1
|
||||
potential_duplicate = devices[j]
|
||||
if potential_duplicate.equivalent_to_device(device)
|
||||
duplicates[potential_duplicate] = device
|
||||
# Break out of the inner loop if a duplicate is found - if another duplicate exists,
|
||||
# it will be found when this one is reached in the outer loop
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if duplicates.count == 0
|
||||
puts("You don't have duplicate simulators!")
|
||||
exit()
|
||||
end
|
||||
|
||||
puts("Looks like you have #{duplicates.count} duplicate simulator#{duplicates.count > 1 ? "s" : ""}:")
|
||||
duplicates.each_pair do |duplicate, original|
|
||||
puts
|
||||
puts("#{duplicate}")
|
||||
puts("--- duplicate of ---")
|
||||
puts("#{original}")
|
||||
end
|
||||
puts
|
||||
|
||||
puts("Each duplicate was determined as the one created later than the 'original'.")
|
||||
|
||||
puts("Deleting...")
|
||||
duplicates.each_key do |duplicate|
|
||||
delete_device(duplicate)
|
||||
end
|
||||
|
||||
puts("Done!")
|
||||
|
||||
=begin
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2015-2019 Vlas Voloshin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
=end
|
||||
@@ -12,7 +12,7 @@ if [[ ! -d $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE ]]; then
|
||||
mkdir -p $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE
|
||||
fi
|
||||
|
||||
download_url=$(resolve_github_release_asset_url "actions/action-versions" "contains(\"action-versions.tar.gz\")" "latest")
|
||||
download_url=$(resolve_github_release_asset_url "actions/action-versions" "contains(\"action-versions.tar.gz\")" "latest" "$API_PAT")
|
||||
echo "Downloading action-versions $download_url"
|
||||
archive_path=$(download_with_retry $download_url)
|
||||
tar -xzf $archive_path -C $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
################################################################################
|
||||
## File: install-apache.sh
|
||||
## Desc: Install Apache HTTP Server
|
||||
################################################################################
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
brew_smart_install httpd
|
||||
sudo sed -Ei '' 's/Listen .*/Listen 80/' $(brew --prefix)/etc/httpd/httpd.conf
|
||||
|
||||
invoke_tests "WebServers" "Apache"
|
||||
@@ -10,11 +10,9 @@ echo "Installing aws..."
|
||||
awscliv2_pkg_path=$(download_with_retry "https://awscli.amazonaws.com/AWSCLIV2.pkg")
|
||||
sudo installer -pkg "$awscliv2_pkg_path" -target /
|
||||
|
||||
if ! is_BigSur; then
|
||||
echo "Installing aws sam cli..."
|
||||
brew tap aws/tap
|
||||
brew_smart_install aws-sam-cli
|
||||
fi
|
||||
echo "Installing aws sam cli..."
|
||||
brew tap aws/tap
|
||||
brew_smart_install aws-sam-cli
|
||||
|
||||
echo "Install aws cli session manager"
|
||||
brew install --cask session-manager-plugin
|
||||
|
||||
@@ -19,13 +19,13 @@ echo "Google Chrome version is $full_chrome_version"
|
||||
# Get Google Chrome versions information
|
||||
chrome_platform="mac-$arch"
|
||||
CHROME_VERSIONS_URL="https://googlechromelabs.github.io/chrome-for-testing/latest-patch-versions-per-build-with-downloads.json"
|
||||
chrome_versions_json="$(cat $(download_with_retry "$CHROME_VERSIONS_URL"))"
|
||||
chrome_versions_json=$(download_with_retry "$CHROME_VERSIONS_URL")
|
||||
|
||||
# Download and unpack the latest release of Chrome Driver
|
||||
chromedriver_version=$(echo $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].version')
|
||||
chromedriver_version=$(cat $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].version')
|
||||
echo "Installing Chrome Driver version $chromedriver_version"
|
||||
|
||||
chromedriver_url=$(echo $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].downloads.chromedriver[] | select(.platform=="'"${chrome_platform}"'").url')
|
||||
chromedriver_url=$(cat $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].downloads.chromedriver[] | select(.platform=="'"${chrome_platform}"'").url')
|
||||
chromedriver_dir="/usr/local/share/chromedriver-$chrome_platform"
|
||||
chromedriver_bin="$chromedriver_dir/chromedriver"
|
||||
|
||||
@@ -36,10 +36,10 @@ ln -s $chromedriver_bin /usr/local/bin/chromedriver
|
||||
echo "export CHROMEWEBDRIVER=$chromedriver_dir" >> ${HOME}/.bashrc
|
||||
|
||||
# Download and unpack the latest release of Google Chrome for Testing
|
||||
chrome_for_testing_version=$(echo $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].version')
|
||||
chrome_for_testing_version=$(cat $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].version')
|
||||
echo "Installing Google Chrome for Testing version $chrome_for_testing_version"
|
||||
|
||||
chrome_for_testing_url=$(echo $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].downloads.chrome[] | select(.platform=="'"${chrome_platform}"'").url')
|
||||
chrome_for_testing_url=$(cat $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].downloads.chrome[] | select(.platform=="'"${chrome_platform}"'").url')
|
||||
chrome_for_testing_app="Google Chrome for Testing.app"
|
||||
|
||||
chrome_for_testing_archive_path=$(download_with_retry $chrome_for_testing_url)
|
||||
|
||||
@@ -6,75 +6,71 @@
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
# Download and install YQ in cases when it is not available in the formulae as for macOS 11: https://formulae.brew.sh/formula/yq
|
||||
if is_BigSur; then
|
||||
binary_path=$(download_with_retry "https://github.com/mikefarah/yq/releases/latest/download/yq_darwin_amd64")
|
||||
sudo install "$binary_path" /usr/local/bin/yq
|
||||
fi
|
||||
|
||||
# Monterey needs future review:
|
||||
# aliyun-cli, gnupg, helm have issues with building from the source code.
|
||||
# Added gmp for now, because toolcache ruby needs its libs. Remove it when php starts to build from source code.
|
||||
common_packages=$(get_toolset_value '.brew.common_packages[]')
|
||||
for package in $common_packages; do
|
||||
echo "Installing $package..."
|
||||
if is_Monterey && [[ $package == "xcbeautify" ]]; then
|
||||
# Pin the version on Monterey as 2.0.x requires Xcode >=15.0 which is not available on OS12
|
||||
xcbeautify_path=$(download_with_retry "https://raw.githubusercontent.com/Homebrew/homebrew-core/d3653e83f9c029a3fddb828ac804b07ac32f7b3b/Formula/x/xcbeautify.rb")
|
||||
brew install "$xcbeautify_path"
|
||||
if [[ $package == "packer" ]]; then
|
||||
# Packer has been deprecated in Homebrew. Use tap to install Packer.
|
||||
brew install hashicorp/tap/packer
|
||||
else
|
||||
brew_smart_install "$package"
|
||||
if (is_VenturaX64 || is_SonomaX64) && [[ $package == "tcl-tk@8" ]]; then
|
||||
brew_smart_install "$package"
|
||||
# Fix for https://github.com/actions/runner-images/issues/11074
|
||||
ln -sf $(brew --prefix tcl-tk@8)/lib/libtcl8.6.dylib /usr/local/lib/libtcl8.6.dylib
|
||||
ln -sf $(brew --prefix tcl-tk@8)/lib/libtk8.6.dylib /usr/local/lib/libtk8.6.dylib
|
||||
else
|
||||
brew_smart_install "$package"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cask_packages=$(get_toolset_value '.brew.cask_packages[]')
|
||||
for package in $cask_packages; do
|
||||
echo "Installing $package..."
|
||||
if is_Monterey && [[ $package == "virtualbox" ]]; then
|
||||
# Do not update VirtualBox on macOS 12 due to the issue with VMs in gurumediation state which blocks Vagrant on macOS: https://github.com/actions/runner-images/issues/8730
|
||||
# macOS host: Dropped all kernel extensions. VirtualBox relies fully on the hypervisor and vmnet frameworks provided by Apple now.
|
||||
virtualbox_cask_path=$(download_with_retry "https://raw.githubusercontent.com/Homebrew/homebrew-cask/aa3c55951fc9d687acce43e5c0338f42c1ddff7b/Casks/virtualbox.rb")
|
||||
brew install $virtualbox_cask_path
|
||||
if is_Arm64 && [[ $package == "parallels" ]]; then
|
||||
echo "Parallels installation is skipped for arm64 architecture"
|
||||
else
|
||||
brew install --cask $package
|
||||
fi
|
||||
done
|
||||
|
||||
# Load "Parallels International GmbH"
|
||||
if is_Monterey; then
|
||||
if is_SonomaX64 || is_VenturaX64; then
|
||||
sudo kextload /Applications/Parallels\ Desktop.app/Contents/Library/Extensions/10.9/prl_hypervisor.kext || true
|
||||
fi
|
||||
|
||||
# Execute AppleScript to change security preferences
|
||||
# Execute AppleScript to change security preferences for macOS12, macOS13 and macOS14
|
||||
# System Preferences -> Security & Privacy -> General -> Unlock -> Allow -> Not now
|
||||
if is_Monterey; then
|
||||
if is_Veertu; then
|
||||
for retry in {4..0}; do
|
||||
echo "Executing AppleScript to change security preferences. Retries left: $retry"
|
||||
{
|
||||
set -e
|
||||
osascript -e 'tell application "System Events" to get application processes where visible is true'
|
||||
osascript $HOME/utils/confirm-identified-developers.scpt $USER_PASSWORD
|
||||
} && break
|
||||
|
||||
if [[ $retry -eq 0 ]]; then
|
||||
echo "Executing AppleScript failed. No retries left"
|
||||
exit 1
|
||||
if is_SonomaX64 || is_VenturaX64; then
|
||||
for retry in {4..0}; do
|
||||
echo "Executing AppleScript to change security preferences. Retries left: $retry"
|
||||
{
|
||||
set -e
|
||||
osascript -e 'tell application "System Events" to get application processes where visible is true'
|
||||
if is_VenturaX64; then
|
||||
osascript $HOME/utils/confirm-identified-developers-macos13.scpt $USER_PASSWORD
|
||||
fi
|
||||
|
||||
if is_SonomaX64; then
|
||||
osascript $HOME/utils/confirm-identified-developers-macos14.scpt $USER_PASSWORD
|
||||
fi
|
||||
} && break
|
||||
|
||||
echo "Executing AppleScript failed. Sleeping for 10 seconds and retrying"
|
||||
sleep 10
|
||||
done
|
||||
else
|
||||
echo "Executing AppleScript to change security preferences"
|
||||
osascript $HOME/utils/confirm-identified-developers.scpt $USER_PASSWORD
|
||||
fi
|
||||
if [[ $retry -eq 0 ]]; then
|
||||
echo "Executing AppleScript failed. No retries left"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Executing AppleScript failed. Sleeping for 10 seconds and retrying"
|
||||
sleep 10
|
||||
done
|
||||
fi
|
||||
|
||||
# Validate "Parallels International GmbH" kext
|
||||
if is_Monterey; then
|
||||
echo "Closing System Preferences window if it is still opened"
|
||||
killall "System Preferences" || true
|
||||
if is_SonomaX64 || is_VenturaX64; then
|
||||
|
||||
echo "Closing System Settings window if it is still opened"
|
||||
killall "System Settings" || true
|
||||
|
||||
echo "Checking parallels kexts"
|
||||
dbName="/var/db/SystemPolicyConfiguration/KextPolicy"
|
||||
@@ -95,10 +91,8 @@ if is_Monterey; then
|
||||
echo "export PARALLELS_DMG_URL=$url" >> ${HOME}/.bashrc
|
||||
fi
|
||||
|
||||
if ! is_BigSur; then
|
||||
# Install Azure DevOps extension for Azure Command Line Interface
|
||||
az extension add -n azure-devops
|
||||
fi
|
||||
# Install Azure DevOps extension for Azure Command Line Interface
|
||||
az extension add -n azure-devops
|
||||
|
||||
# Invoke tests for all basic tools
|
||||
invoke_tests "BasicTools"
|
||||
|
||||
@@ -23,18 +23,12 @@ dotnet_versions=($(get_toolset_value ".dotnet.arch[\"$arch\"].versions | .[]"))
|
||||
for dotnet_version in ${dotnet_versions[@]}; do
|
||||
release_url="https://raw.githubusercontent.com/dotnet/core/main/release-notes/${dotnet_version}/releases.json"
|
||||
releases_json_file=$(download_with_retry "$release_url")
|
||||
|
||||
if [[ $dotnet_version == "6.0" ]]; then
|
||||
args_list+=(
|
||||
$(cat $releases_json_file | jq -r 'first(.releases[].sdks[]?.version | select(contains("preview") or contains("rc") | not))')
|
||||
)
|
||||
else
|
||||
args_list+=(
|
||||
$(cat $releases_json_file | \
|
||||
jq -r '.releases[].sdk."version"' | grep -v -E '\-(preview|rc)\d*' | \
|
||||
sort -r | rev | uniq -s 2 | rev)
|
||||
)
|
||||
fi
|
||||
args_list+=(
|
||||
$(cat $releases_json_file | \
|
||||
jq -r '.releases[].sdk."version"' | \
|
||||
grep -v -E '\-(preview|rc)\d*' | \
|
||||
sort -r | rev | uniq -s 2 | rev)
|
||||
)
|
||||
done
|
||||
|
||||
for ARGS in ${args_list[@]}; do
|
||||
|
||||
@@ -11,16 +11,13 @@ brew_smart_install "git"
|
||||
|
||||
git config --global --add safe.directory "*"
|
||||
|
||||
echo "Installing Git LFS"
|
||||
brew_smart_install "git-lfs"
|
||||
|
||||
if ! is_BigSur; then
|
||||
echo "Installing Git LFS"
|
||||
brew_smart_install "git-lfs"
|
||||
|
||||
# Update global git config
|
||||
git lfs install
|
||||
# Update system git config
|
||||
sudo git lfs install --system
|
||||
fi
|
||||
# Update global git config
|
||||
git lfs install
|
||||
# Update system git config
|
||||
sudo git lfs install --system
|
||||
|
||||
echo "Disable all the Git help messages..."
|
||||
git config --global advice.pushUpdateRejected false
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
################################################################################
|
||||
## File: install-golang.sh
|
||||
## Desc: Install Go
|
||||
################################################################################
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
default_go_version=$(get_toolset_value '.go.default')
|
||||
echo "Installing Go..."
|
||||
brew_smart_install "go@${default_go_version}"
|
||||
|
||||
# Create symlinks to preserve backward compatibility. Symlinks are not created when non-latest go is being installed
|
||||
ln -sf $(brew --prefix go@${default_go_version})/bin/* /usr/local/bin/
|
||||
|
||||
invoke_tests "Common" "Go"
|
||||
@@ -1,31 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
################################################################################
|
||||
## File: install-haskell.sh
|
||||
## Desc: Install Haskell
|
||||
################################################################################
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
curl --proto '=https' --tlsv1.2 -fsSL https://get-ghcup.haskell.org | bash
|
||||
export PATH="$HOME/.ghcup/bin:$PATH"
|
||||
echo 'export PATH="$PATH:$HOME/.ghcup/bin"' >> $HOME/.bashrc
|
||||
|
||||
# ghcup output looks like this "ghc 8.6.4 base-4.12.0.0 hls-powered", need to take all the first versions only(8.6.4 in that case) and avoid pre-release ones
|
||||
availableVersions=$(ghcup list -t ghc -r | grep -v "prerelease" | awk '{print $2}')
|
||||
|
||||
# Install 3 latest major versions(For instance 8.6.5, 8.8.4, 8.10.2)
|
||||
minorMajorVersions=$(echo "$availableVersions" | cut -d"." -f 1,2 | uniq | tail -n3)
|
||||
for majorMinorVersion in $minorMajorVersions; do
|
||||
fullVersion=$(echo "$availableVersions" | grep "$majorMinorVersion." | tail -n1)
|
||||
echo "install ghc version $fullVersion..."
|
||||
ghcup install $fullVersion
|
||||
ghcup set $fullVersion
|
||||
done
|
||||
|
||||
echo "install cabal..."
|
||||
ghcup install-cabal
|
||||
|
||||
echo "Updating stack..."
|
||||
ghcup install stack latest
|
||||
|
||||
invoke_tests "Haskell"
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
################################################################################
|
||||
## File: install-miniconda.sh
|
||||
## Desc: Install Miniconda
|
||||
################################################################################
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
miniconda_installer_path=$(download_with_retry "https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh")
|
||||
chmod +x $miniconda_installer_path
|
||||
sudo $miniconda_installer_path -b -p /usr/local/miniconda
|
||||
|
||||
# Chmod with full permissions recursively to avoid permissions restrictions
|
||||
sudo chmod -R 777 /usr/local/miniconda
|
||||
|
||||
sudo ln -s /usr/local/miniconda/bin/conda /usr/local/bin/conda
|
||||
|
||||
if [[ -d $HOME/.conda ]]; then
|
||||
sudo chown -R $USER $HOME/.conda
|
||||
fi
|
||||
|
||||
echo "export CONDA=/usr/local/miniconda" >> $HOME/.bashrc
|
||||
|
||||
invoke_tests "Common" "Miniconda"
|
||||
@@ -1,23 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
################################################################################
|
||||
## File: install-mongodb.sh
|
||||
## Desc: Install MongoDB
|
||||
################################################################################
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
# MongoDB object-value database
|
||||
# Install latest release version of MongoDB Community Edition
|
||||
# https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x
|
||||
toolsetVersion=$(get_toolset_value '.mongodb.version')
|
||||
|
||||
brew tap mongodb/brew
|
||||
versionToInstall=$(brew search --formulae /mongodb-community@$toolsetVersion/ | awk -F'/' '{print $3}' | tail -1)
|
||||
echo "Installing mongodb $versionToInstall"
|
||||
brew_smart_install $versionToInstall
|
||||
|
||||
if ! which mongo ; then
|
||||
brew link $versionToInstall
|
||||
fi
|
||||
|
||||
invoke_tests "Databases" "MongoDB"
|
||||
@@ -47,5 +47,5 @@ sudo mv $nunit3_console_wrapper "${MONO_VERSIONS_PATH}/${mono_version}/Commands/
|
||||
echo "Creating short symlink '${mono_version_short}'..."
|
||||
sudo ln -s ${MONO_VERSIONS_PATH}/${mono_version} ${MONO_VERSIONS_PATH}/${mono_version_short}
|
||||
|
||||
# Invoke tests for Xamarin and Mono
|
||||
invoke_tests "Xamarin" "Mono"
|
||||
# Invoke tests and Mono
|
||||
invoke_tests "Mono"
|
||||
|
||||
@@ -16,12 +16,4 @@ echo Installing yarn...
|
||||
yarn_installer_path=$(download_with_retry "https://yarnpkg.com/install.sh")
|
||||
bash $yarn_installer_path
|
||||
|
||||
if is_BigSur || is_Monterey; then
|
||||
npm_global_packages=$(get_toolset_value '.npm.global_packages[].name')
|
||||
for module in ${npm_global_packages[@]}; do
|
||||
echo "Install $module"
|
||||
npm install -g $module
|
||||
done
|
||||
fi
|
||||
|
||||
invoke_tests "Node" "Node.js"
|
||||
|
||||
@@ -7,7 +7,16 @@
|
||||
source ~/utils/utils.sh
|
||||
|
||||
[[ -n $API_PAT ]] && authString=(-H "Authorization: token ${API_PAT}")
|
||||
nvm_version=$(curl "${authString[@]}" -fsSL https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r '.tag_name')
|
||||
|
||||
nvm_version=$(get_toolset_value '.node.nvm_installer')
|
||||
if [[ -z $nvm_version || "$nvm_version" == "latest" ]]; then
|
||||
nvm_version=$(curl "${authString[@]}" -fsSL https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r '.tag_name')
|
||||
fi
|
||||
|
||||
if [[ $nvm_version != "v*" ]]; then
|
||||
nvm_version="v${nvm_version}"
|
||||
fi
|
||||
|
||||
nvm_installer_path=$(download_with_retry "https://raw.githubusercontent.com/nvm-sh/nvm/$nvm_version/install.sh")
|
||||
|
||||
if bash $nvm_installer_path; then
|
||||
|
||||
@@ -7,7 +7,13 @@
|
||||
source ~/utils/utils.sh
|
||||
|
||||
echo "Install [email protected]"
|
||||
brew_smart_install "[email protected]"
|
||||
|
||||
COMMIT=d91dabd087cb0b906c92a825df9e5e5e1a4f59f8
|
||||
FORMULA_URL="https://raw.githubusercontent.com/Homebrew/homebrew-core/$COMMIT/Formula/o/[email protected]"
|
||||
FORMULA_PATH="$(brew --repository)/Library/Taps/homebrew/homebrew-core/Formula/o/[email protected]"
|
||||
mkdir -p "$(dirname $FORMULA_PATH)"
|
||||
curl -fsSL $FORMULA_URL -o $FORMULA_PATH
|
||||
HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_FROM_API=1 brew install [email protected]
|
||||
|
||||
if ! is_Arm64; then
|
||||
# Symlink brew [email protected] to `/usr/local/bin` as Homebrew refuses
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
################################################################################
|
||||
## File: install-pipx-packages.sh
|
||||
## Desc: Install Pipx Packages
|
||||
################################################################################
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
export PATH="$PATH:/opt/pipx_bin"
|
||||
|
||||
pipx_packages=$(get_toolset_value '.pipx[].package')
|
||||
|
||||
for package in $pipx_packages; do
|
||||
echo "Install $package into default python"
|
||||
pipx install $package
|
||||
done
|
||||
|
||||
invoke_tests "PipxPackages"
|
||||
@@ -8,34 +8,8 @@ source ~/utils/utils.sh
|
||||
|
||||
echo "Installing Python Tooling"
|
||||
|
||||
if is_Monterey || is_BigSur; then
|
||||
echo "Install latest Python 2"
|
||||
python2_pkg=$(download_with_retry "https://www.python.org/ftp/python/2.7.18/python-2.7.18-macosx10.9.pkg")
|
||||
python2_pkg_sha256="c570f38b05dd8b112ad21b418cdf51a9816d62f9f44746452739d421be24d50c"
|
||||
use_checksum_comparison $python2_pkg $python2_pkg_sha256
|
||||
|
||||
choice_changes_xml=$(mktemp /tmp/python2_choice_changes.xml.XXXXXX)
|
||||
sudo installer -showChoiceChangesXML -pkg $python2_pkg -target / | tee $choice_changes_xml > /dev/null
|
||||
|
||||
# To avoid symlink conflicts, remove tools installation in /usr/local/bin using installer choices
|
||||
xmllint --shell $choice_changes_xml <<EOF
|
||||
cd //array/dict[string[text()='org.python.Python.PythonUnixTools-2.7']]/integer
|
||||
set 0
|
||||
save
|
||||
EOF
|
||||
|
||||
sudo installer -applyChoiceChangesXML $choice_changes_xml -pkg $python2_pkg -target /
|
||||
|
||||
pip install --upgrade pip
|
||||
|
||||
echo "Install Python2 certificates"
|
||||
bash -c "/Applications/Python\ 2.7/Install\ Certificates.command"
|
||||
fi
|
||||
|
||||
# Close Finder window
|
||||
if is_Veertu; then
|
||||
close_finder_window
|
||||
fi
|
||||
close_finder_window
|
||||
|
||||
echo "Brew Installing Python 3"
|
||||
brew_smart_install "[email protected]"
|
||||
|
||||
@@ -12,8 +12,10 @@ echo "Installing Ruby..."
|
||||
brew_smart_install "ruby@${DEFAULT_RUBY_VERSION}"
|
||||
if [[ $arch == "arm64" ]]; then
|
||||
export PATH=/opt/homebrew/opt/ruby@${DEFAULT_RUBY_VERSION}/bin:$PATH
|
||||
ruby_suffix="macos-13-arm64"
|
||||
else
|
||||
export PATH=/usr/local/opt/ruby@${DEFAULT_RUBY_VERSION}/bin:$PATH
|
||||
ruby_suffix="macos-latest"
|
||||
fi
|
||||
|
||||
GEM_PATH=$(gem env|awk '/EXECUTABLE DIRECTORY/ {print $4}')
|
||||
@@ -24,37 +26,36 @@ else
|
||||
echo 'export PATH="$GEM_PATH:/usr/local/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> $HOME/.bashrc
|
||||
fi
|
||||
|
||||
if ! is_Arm64; then
|
||||
echo "Install Ruby from toolset..."
|
||||
[ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}")
|
||||
PACKAGE_TAR_NAMES=$(curl "${authString[@]}" -fsSL "https://api.github.com/repos/ruby/ruby-builder/releases/latest" | jq -r '.assets[].name')
|
||||
TOOLSET_VERSIONS=$(get_toolset_value '.toolcache[] | select(.name | contains("Ruby")) | .arch.'$arch'.versions[]')
|
||||
RUBY_PATH=$AGENT_TOOLSDIRECTORY/Ruby
|
||||
echo "Install Ruby from toolset..."
|
||||
[ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}")
|
||||
PACKAGE_TAR_NAMES=$(curl "${authString[@]}" -fsSL "https://api.github.com/repos/ruby/ruby-builder/releases/latest" | jq -r '.assets[].name')
|
||||
TOOLSET_VERSIONS=$(get_toolset_value '.toolcache[] | select(.name | contains("Ruby")) | .arch.'$arch'.versions[]')
|
||||
RUBY_PATH=$AGENT_TOOLSDIRECTORY/Ruby
|
||||
|
||||
echo "Check if Ruby hostedtoolcache folder exists..."
|
||||
if [[ ! -d $RUBY_PATH ]]; then
|
||||
mkdir -p $RUBY_PATH
|
||||
fi
|
||||
echo "ruby path - $RUBY_PATH "
|
||||
for TOOLSET_VERSION in ${TOOLSET_VERSIONS[@]}; do
|
||||
PACKAGE_TAR_NAME=$(echo "$PACKAGE_TAR_NAMES" | grep "^ruby-${TOOLSET_VERSION}-macos-latest.tar.gz$" | egrep -v "rc|preview" | sort -V | tail -1)
|
||||
RUBY_VERSION=$(echo "$PACKAGE_TAR_NAME" | cut -d'-' -f 2)
|
||||
RUBY_VERSION_PATH="$RUBY_PATH/$RUBY_VERSION"
|
||||
|
||||
echo "Create Ruby $RUBY_VERSION directory..."
|
||||
mkdir -p $RUBY_VERSION_PATH
|
||||
|
||||
echo "Downloading tar archive $PACKAGE_TAR_NAME"
|
||||
ARCHIVE_PATH=$(download_with_retry "https://github.com/ruby/ruby-builder/releases/download/toolcache/${PACKAGE_TAR_NAME}")
|
||||
|
||||
echo "Expand $PACKAGE_TAR_NAME to the $RUBY_VERSION_PATH folder"
|
||||
tar xf $ARCHIVE_PATH -C $RUBY_VERSION_PATH
|
||||
COMPLETE_FILE_PATH=$RUBY_VERSION_PATH/x64.complete
|
||||
if [[ ! -f $COMPLETE_FILE_PATH ]]; then
|
||||
echo "Create complete file"
|
||||
touch $COMPLETE_FILE_PATH
|
||||
fi
|
||||
done
|
||||
echo "Check if Ruby hostedtoolcache folder exists..."
|
||||
if [[ ! -d $RUBY_PATH ]]; then
|
||||
mkdir -p $RUBY_PATH
|
||||
fi
|
||||
echo "ruby path - $RUBY_PATH"
|
||||
|
||||
invoke_tests "Ruby.$arch"
|
||||
for toolset_version in ${TOOLSET_VERSIONS[@]}; do
|
||||
package_tar_name=$(echo "$PACKAGE_TAR_NAMES" | grep "^ruby-${toolset_version}-${ruby_suffix}.tar.gz$" | egrep -v "rc|preview" | sort -V | tail -1)
|
||||
ruby_version=$(echo "$package_tar_name" | cut -d'-' -f 2)
|
||||
ruby_version_path="$RUBY_PATH/$ruby_version"
|
||||
|
||||
echo "Create Ruby $ruby_version directory..."
|
||||
mkdir -p $ruby_version_path
|
||||
|
||||
echo "Downloading tar archive $package_tar_name"
|
||||
archive_path=$(download_with_retry "https://github.com/ruby/ruby-builder/releases/download/toolcache/${package_tar_name}")
|
||||
|
||||
echo "Expand $package_tar_name to the $ruby_version_path folder"
|
||||
tar xf $archive_path -C $ruby_version_path
|
||||
complete_file_path=$ruby_version_path/$arch.complete
|
||||
if [[ ! -f $complete_file_path ]]; then
|
||||
echo "Create complete file"
|
||||
touch $complete_file_path
|
||||
fi
|
||||
done
|
||||
|
||||
invoke_tests "Ruby"
|
||||
|
||||
@@ -9,8 +9,8 @@ source ~/utils/utils.sh
|
||||
echo "Updating RubyGems..."
|
||||
gem update --system
|
||||
|
||||
# Temporarily install activesupport 7.0.8 due to compatibility issues with cocoapods https://github.com/CocoaPods/CocoaPods/issues/12081
|
||||
gem install activesupport -v 7.0.8
|
||||
# Temporarily install activesupport 7.1.5.1 due to compatibility issues with cocoapods https://github.com/CocoaPods/CocoaPods/issues/12081
|
||||
gem install activesupport -v 7.1.5.1
|
||||
|
||||
gemsToInstall=$(get_toolset_value '.ruby.rubygems | .[]')
|
||||
if [[ -n $gemsToInstall ]]; then
|
||||
|
||||
@@ -18,10 +18,6 @@ CARGO_HOME=$HOME/.cargo
|
||||
echo "Install common tools..."
|
||||
rustup component add rustfmt clippy
|
||||
|
||||
if is_BigSur || is_Monterey; then
|
||||
cargo install --locked bindgen-cli cbindgen cargo-audit cargo-outdated
|
||||
fi
|
||||
|
||||
echo "Cleanup Cargo registry cached data..."
|
||||
rm -rf $CARGO_HOME/registry/*
|
||||
|
||||
|
||||
@@ -7,22 +7,7 @@
|
||||
source ~/utils/utils.sh
|
||||
|
||||
echo "Installing Swiftlint..."
|
||||
if is_BigSur; then
|
||||
# SwiftLint now requires Swift 5.6 or higher to build, and macOS 12 or higher to run https://github.com/realm/SwiftLint/releases/tag/0.49.0
|
||||
COMMIT=d1d5743344227fe6e3c37cfba19f0cfe15a9448a
|
||||
FORMULA_URL="https://raw.githubusercontent.com/Homebrew/homebrew-core/$COMMIT/Formula/swiftlint.rb"
|
||||
|
||||
curl -fsSL $FORMULA_URL > $(find $(brew --repository) -name swiftlint.rb)
|
||||
HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_FROM_API=1 brew install swiftlint
|
||||
elif is_Monterey; then
|
||||
# SwiftLint now requires Xcode 15.3 or higher to build https://github.com/realm/SwiftLint/releases/tag/0.55.1
|
||||
COMMIT=d91dabd087cb0b906c92a825df9e5e5e1a4f59f8
|
||||
FORMULA_URL="https://raw.githubusercontent.com/Homebrew/homebrew-core/$COMMIT/Formula/s/swiftlint.rb"
|
||||
|
||||
curl -fsSL $FORMULA_URL > $(find $(brew --repository) -name swiftlint.rb)
|
||||
HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_FROM_API=1 brew install swiftlint
|
||||
else
|
||||
brew_smart_install "swiftlint"
|
||||
fi
|
||||
brew_smart_install "swiftlint"
|
||||
|
||||
invoke_tests "Linters" "SwiftLint"
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
################################################################################
|
||||
## File: install-unxip.sh
|
||||
## Desc: Install unxip
|
||||
################################################################################
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
echo "Installing unxip..."
|
||||
unxip_pkg=$(download_with_retry "https://github.com/saagarjha/unxip/releases/download/v3.1/unxip")
|
||||
unxip_pkg_sha256="926ecd7bffa201c7b2b8a729fc70fbf228cf624a0e6856c13f935a97fa4fc71a"
|
||||
use_checksum_comparison $unxip_pkg $unxip_pkg_sha256
|
||||
install "$unxip_pkg" /usr/local/bin/unxip
|
||||
|
||||
invoke_tests "Common" "Unxip"
|
||||
@@ -1,52 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
################################################################################
|
||||
## File: install-visualstudio.sh
|
||||
## Desc: Install Visual Studio
|
||||
################################################################################
|
||||
|
||||
source ~/utils/utils.sh
|
||||
source ~/utils/xamarin-utils.sh
|
||||
|
||||
install_vsmac() {
|
||||
local vsmac_version=$1
|
||||
local vsmac_default=$2
|
||||
if [[ $vsmac_version == "2019" ]]; then
|
||||
vsmac_download_url=$(curl -fsSL "https://aka.ms/manifest/stable" | jq -r '.items[] | select(.genericName=="VisualStudioMac").url')
|
||||
elif [[ $vsmac_version == "2022" ]]; then
|
||||
vsmac_download_url=$(curl -fsSL "https://aka.ms/manifest/stable-2022" | jq -r '.items[] | select(.genericName=="VisualStudioMac").url')
|
||||
elif [[ $vsmac_version == "preview" ]]; then
|
||||
vsmac_download_url=$(curl -fsSL "https://aka.ms/manifest/preview" | jq -r '.items[] | select(.genericName=="VisualStudioMac").url')
|
||||
else
|
||||
vsmac_download_url=$(buildVSMacDownloadUrl $vsmac_version)
|
||||
fi
|
||||
|
||||
echo "Installing Visual Studio ${vsmac_version} for Mac"
|
||||
TMPMOUNT=$(/usr/bin/mktemp -d /tmp/visualstudio.XXXX)
|
||||
mkdir -p "$TMPMOUNT/downloads"
|
||||
|
||||
vsmac_installer=$(download_with_retry $vsmac_download_url "$TMPMOUNT/downloads/${vsmac_download_url##*/}")
|
||||
|
||||
echo "Mounting Visual Studio..."
|
||||
hdiutil attach $vsmac_installer -mountpoint $TMPMOUNT
|
||||
|
||||
echo "Moving Visual Studio to /Applications/..."
|
||||
pushd $TMPMOUNT
|
||||
tar cf - "./Visual Studio.app" | tar xf - -C /Applications/
|
||||
|
||||
if [[ $vsmac_version != $vsmac_default ]]; then
|
||||
mv "/Applications/Visual Studio.app" "/Applications/Visual Studio ${vsmac_version}.app"
|
||||
fi
|
||||
|
||||
popd
|
||||
sudo hdiutil detach $TMPMOUNT
|
||||
sudo rm -rf $TMPMOUNT
|
||||
}
|
||||
|
||||
vsmac_versions=($(get_toolset_value '.xamarin.vsmac.versions[]'))
|
||||
default_vsmac_version=$(get_toolset_value '.xamarin.vsmac.default')
|
||||
|
||||
for version in ${vsmac_versions[@]}; do
|
||||
install_vsmac $version $default_vsmac_version
|
||||
done
|
||||
|
||||
invoke_tests "Common" "VSMac"
|
||||
@@ -1,92 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
################################################################################
|
||||
## File: install-xamarin.sh
|
||||
## Desc: Install Xamarin
|
||||
################################################################################
|
||||
|
||||
source ~/utils/utils.sh
|
||||
source ~/utils/xamarin-utils.sh
|
||||
|
||||
mono_versions=($(get_toolset_value '.xamarin."mono_versions" | reverse | .[]'))
|
||||
xamarin_ios_versions=($(get_toolset_value '.xamarin."ios_versions" | reverse | .[]'))
|
||||
xamarin_mac_versions=($(get_toolset_value '.xamarin."mac_versions" | reverse | .[]'))
|
||||
xamarin_android_versions=($(get_toolset_value '.xamarin."android_versions" | reverse | .[]'))
|
||||
latest_sdk_symlink=$(get_toolset_value '.xamarin.bundles[0].symlink')
|
||||
current_sdk_symlink=$(get_toolset_value '.xamarin."bundle_default"')
|
||||
default_xcode_version=$(get_toolset_value '.xcode.default')
|
||||
|
||||
if [[ $current_sdk_symlink == "latest" ]]; then
|
||||
current_sdk_symlink=$latest_sdk_symlink
|
||||
fi
|
||||
|
||||
MONO_VERSIONS_PATH="/Library/Frameworks/Mono.framework/Versions"
|
||||
IOS_VERSIONS_PATH="/Library/Frameworks/Xamarin.iOS.framework/Versions"
|
||||
ANDROID_VERSIONS_PATH="/Library/Frameworks/Xamarin.Android.framework/Versions"
|
||||
MAC_VERSIONS_PATH="/Library/Frameworks/Xamarin.Mac.framework/Versions"
|
||||
|
||||
TMPMOUNT=$(/usr/bin/mktemp -d /tmp/visualstudio.XXXX)
|
||||
TMPMOUNT_FRAMEWORKS=$TMPMOUNT/frameworks
|
||||
createBackupFolders
|
||||
|
||||
pushd $TMPMOUNT
|
||||
|
||||
# Download NUnit console
|
||||
downloadNUnitConsole
|
||||
|
||||
# Install Mono sdks
|
||||
for version in ${mono_versions[@]}; do installMono $version; done
|
||||
sudo mv -v $TMPMOUNT_FRAMEWORKS/mono/* $MONO_VERSIONS_PATH/
|
||||
|
||||
# Install Xamarin.iOS sdks
|
||||
for version in ${xamarin_ios_versions[@]}; do installXamarinIOS $version; done
|
||||
sudo mv -v $TMPMOUNT_FRAMEWORKS/ios/* $IOS_VERSIONS_PATH/
|
||||
|
||||
# Install Xamarin.Mac sdks
|
||||
for version in ${xamarin_mac_versions[@]}; do installXamarinMac $version; done
|
||||
sudo mv -v $TMPMOUNT_FRAMEWORKS/mac/* $MAC_VERSIONS_PATH/
|
||||
|
||||
# Install Xamarin.Android sdks
|
||||
for version in ${xamarin_android_versions[@]}; do installXamarinAndroid $version; done
|
||||
sudo mv -v $TMPMOUNT_FRAMEWORKS/android/* $ANDROID_VERSIONS_PATH/
|
||||
|
||||
|
||||
# Create bundles
|
||||
bundles_count=$(get_toolset_value '.xamarin.bundles | length')
|
||||
for ((bundle_index=0; bundle_index<bundles_count; bundle_index++)); do
|
||||
symlink=$(get_toolset_value ".xamarin.bundles[$bundle_index].symlink")
|
||||
mono=$(get_toolset_value ".xamarin.bundles[$bundle_index].mono")
|
||||
ios=$(get_toolset_value ".xamarin.bundles[$bundle_index].ios")
|
||||
mac=$(get_toolset_value ".xamarin.bundles[$bundle_index].mac")
|
||||
android=$(get_toolset_value ".xamarin.bundles[$bundle_index].android")
|
||||
createBundle $symlink $mono $ios $mac $android
|
||||
done
|
||||
|
||||
# Symlinks for the latest Xamarin bundle
|
||||
createBundleLink $latest_sdk_symlink "Latest"
|
||||
createBundleLink $current_sdk_symlink "Current"
|
||||
|
||||
#
|
||||
# Fix nuget in some mono versions because of known bugs
|
||||
#
|
||||
|
||||
# Creating UWP Shim to hack UWP build failure
|
||||
createUWPShim
|
||||
|
||||
popd
|
||||
|
||||
echo "Clean up packages..."
|
||||
sudo rm -rf $TMPMOUNT
|
||||
|
||||
# Fix Xamarin issue with Xcode symlink: https://github.com/xamarin/xamarin-macios/issues/9960
|
||||
PREFERENCES_XAMARIN_DIR="${HOME}/Library/Preferences/Xamarin"
|
||||
mkdir -p $PREFERENCES_XAMARIN_DIR
|
||||
/usr/libexec/PlistBuddy -c "add :AppleSdkRoot string /Applications/Xcode_${default_xcode_version}.app" $PREFERENCES_XAMARIN_DIR/Settings.plist
|
||||
|
||||
# Temporary workaround to recreate nuget.config file with a correct feed https://github.com/actions/runner-images/issues/5768
|
||||
rm -rf $HOME/.config/NuGet/NuGet.Config
|
||||
nuget config
|
||||
|
||||
# Temporary workaround to point Mono to the proper NUnit console
|
||||
sudo sed -Ei '' 's/3.6.0/3.6.1/' /Library/Frameworks/Mono.framework/Versions/Current/Commands/nunit3-console
|
||||
|
||||
invoke_tests "Xamarin"
|
||||
@@ -13,10 +13,8 @@ Import-Module "$PSScriptRoot/SoftwareReport.Common.psm1" -DisableNameChecking
|
||||
Import-Module "$PSScriptRoot/SoftwareReport.Xcode.psm1" -DisableNameChecking
|
||||
Import-Module "$PSScriptRoot/SoftwareReport.Android.psm1" -DisableNameChecking
|
||||
Import-Module "$PSScriptRoot/SoftwareReport.Java.psm1" -DisableNameChecking
|
||||
Import-Module "$PSScriptRoot/SoftwareReport.Xamarin.psm1" -DisableNameChecking
|
||||
Import-Module "$PSScriptRoot/SoftwareReport.Toolcache.psm1" -DisableNameChecking
|
||||
Import-Module "$PSScriptRoot/SoftwareReport.Browsers.psm1" -DisableNameChecking
|
||||
Import-Module "$PSScriptRoot/SoftwareReport.WebServers.psm1" -DisableNameChecking
|
||||
Import-Module "$PSScriptRoot/SoftwareReport.Helpers.psm1" -DisableNameChecking
|
||||
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
|
||||
Import-Module "$PSScriptRoot/../helpers/Xcode.Helpers.psm1"
|
||||
@@ -38,35 +36,16 @@ $languageAndRuntime.AddToolVersion("Bash", $(Get-BashVersion))
|
||||
$languageAndRuntime.AddNodes($(Get-ClangLLVMVersions))
|
||||
$languageAndRuntime.AddNodes($(Get-GccVersions))
|
||||
$languageAndRuntime.AddNodes($(Get-FortranVersions))
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$languageAndRuntime.AddToolVersion("Julia", $(Get-JuliaVersion))
|
||||
}
|
||||
$languageAndRuntime.AddToolVersion("Kotlin", $(Get-KotlinVersion))
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$languageAndRuntime.AddToolVersion("Go", $(Get-GoVersion))
|
||||
if ((-not $os.IsSequoia)) {
|
||||
$languageAndRuntime.AddToolVersion("Mono", $(Get-MonoVersion))
|
||||
}
|
||||
$languageAndRuntime.AddToolVersion("Mono", $(Get-MonoVersion))
|
||||
$languageAndRuntime.AddToolVersion("Node.js", $(Get-NodeVersion))
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$languageAndRuntime.AddToolVersion("MSBuild", $(Get-MSBuildVersion))
|
||||
$languageAndRuntime.AddToolVersion("NVM", $(Get-NVMVersion))
|
||||
$languageAndRuntime.AddToolVersionsListInline("NVM - Cached node versions", $(Get-NVMNodeVersionList), '^\d+')
|
||||
}
|
||||
$languageAndRuntime.AddToolVersion("Perl", $(Get-PerlVersion))
|
||||
if ((-not $os.IsBigSur) -and (-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
|
||||
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64) -and (-not $os.IsSequoiaArm64)) {
|
||||
$languageAndRuntime.AddToolVersion("PHP", $(Get-PHPVersion))
|
||||
}
|
||||
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$languageAndRuntime.AddToolVersion("Python", $(Get-PythonVersion))
|
||||
}
|
||||
|
||||
$languageAndRuntime.AddToolVersion("Python3", $(Get-Python3Version))
|
||||
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma) -and (-not $os.IsBigSur)) {
|
||||
$languageAndRuntime.AddToolVersion("R", $(Get-RVersion))
|
||||
}
|
||||
|
||||
$languageAndRuntime.AddToolVersion("Ruby", $(Get-RubyVersion))
|
||||
|
||||
# Package Management
|
||||
@@ -74,39 +53,27 @@ $packageManagement = $installedSoftware.AddHeader("Package Management")
|
||||
$packageManagement.AddToolVersion("Bundler", $(Get-BundlerVersion))
|
||||
$packageManagement.AddToolVersion("Carthage", $(Get-CarthageVersion))
|
||||
$packageManagement.AddToolVersion("CocoaPods", $(Get-CocoaPodsVersion))
|
||||
if ((-not $os.IsBigSur) -and (-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
|
||||
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64) -and (-not $os.IsSequoiaArm64)) {
|
||||
$packageManagement.AddToolVersion("Composer", $(Get-ComposerVersion))
|
||||
}
|
||||
$packageManagement.AddToolVersion("Homebrew", $(Get-HomebrewVersion))
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$packageManagement.AddToolVersion("Miniconda", $(Get-CondaVersion))
|
||||
}
|
||||
$packageManagement.AddToolVersion("NPM", $(Get-NPMVersion))
|
||||
$packageManagement.AddToolVersion("NuGet", $(Get-NuGetVersion))
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$packageManagement.AddToolVersion("Pip", $(Get-PipVersion -Version 2))
|
||||
if ((-not $os.IsSequoia)) {
|
||||
$packageManagement.AddToolVersion("NuGet", $(Get-NuGetVersion))
|
||||
}
|
||||
|
||||
$packageManagement.AddToolVersion("Pip3", $(Get-PipVersion -Version 3))
|
||||
$packageManagement.AddToolVersion("Pip3", $(Get-Pip3Version))
|
||||
$packageManagement.AddToolVersion("Pipx", $(Get-PipxVersion))
|
||||
|
||||
$packageManagement.AddToolVersion("RubyGems", $(Get-RubyGemsVersion))
|
||||
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64) -and (-not $os.IsSonoma)) {
|
||||
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonoma) -and (-not $os.IsSequoia)) {
|
||||
$packageManagement.AddToolVersion("Vcpkg", $(Get-VcpkgVersion))
|
||||
}
|
||||
$packageManagement.AddToolVersion("Yarn", $(Get-YarnVersion))
|
||||
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$packageManagement.AddNode($(Build-PackageManagementEnvironmentTable))
|
||||
}
|
||||
# Project Management
|
||||
$projectManagement = $installedSoftware.AddHeader("Project Management")
|
||||
$projectManagement.AddToolVersion("Apache Ant", $(Get-ApacheAntVersion))
|
||||
$projectManagement.AddToolVersion("Apache Maven", $(Get-MavenVersion))
|
||||
$projectManagement.AddToolVersion("Gradle", $(Get-GradleVersion))
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$projectManagement.AddToolVersion("Sbt", $(Get-SbtVersion))
|
||||
}
|
||||
|
||||
# Utilities
|
||||
$utilities = $installedSoftware.AddHeader("Utilities")
|
||||
@@ -118,97 +85,40 @@ $utilities.AddToolVersion("bazelisk", $(Get-BazeliskVersion))
|
||||
$utilities.AddToolVersion("bsdtar", $(Get-BsdtarVersion))
|
||||
$utilities.AddToolVersion("Curl", $(Get-CurlVersion))
|
||||
$utilities.AddToolVersion("Git", $(Get-GitVersion))
|
||||
if (-not $os.IsBigSur) {
|
||||
$utilities.AddToolVersion("Git LFS", $(Get-GitLFSVersion))
|
||||
}
|
||||
$utilities.AddToolVersion("Git LFS", $(Get-GitLFSVersion))
|
||||
$utilities.AddToolVersion("GitHub CLI", $(Get-GitHubCLIVersion))
|
||||
$utilities.AddToolVersion("GNU Tar", $(Get-GnuTarVersion))
|
||||
$utilities.AddToolVersion("GNU Wget", $(Get-WgetVersion))
|
||||
$utilities.AddToolVersion("gpg (GnuPG)", $(Get-GPGVersion))
|
||||
if ($os.IsBigSur) {
|
||||
$utilities.AddToolVersion("helm", $(Get-HelmVersion))
|
||||
}
|
||||
if ((-not $os.IsBigSur) -and (-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$utilities.AddToolVersion("ImageMagick", $(Get-ImageMagickVersion))
|
||||
}
|
||||
$utilities.AddToolVersion("jq", $(Get-JqVersion))
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$utilities.AddToolVersion("mongo", $(Get-MongoVersion))
|
||||
$utilities.AddToolVersion("mongod", $(Get-MongodVersion))
|
||||
}
|
||||
if ($os.IsBigSur) {
|
||||
$utilities.AddToolVersion("Newman", $(Get-NewmanVersion))
|
||||
}
|
||||
$utilities.AddToolVersion("OpenSSL", $(Get-OpenSSLVersion))
|
||||
$utilities.AddToolVersion("Packer", $(Get-PackerVersion))
|
||||
$utilities.AddToolVersion("pkg-config", $(Get-PKGConfigVersion))
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$utilities.AddToolVersion("PostgreSQL", $(Get-PostgresServerVersion))
|
||||
$utilities.AddToolVersion("psql (PostgreSQL)", $(Get-PostgresClientVersion))
|
||||
$utilities.AddToolVersion("Sox", $(Get-SoxVersion))
|
||||
$utilities.AddToolVersion("Subversion (SVN)", $(Get-SVNVersion))
|
||||
$utilities.AddToolVersion("Switchaudio-osx", $(Get-SwitchAudioOsxVersion))
|
||||
}
|
||||
if ($os.IsMonterey) {
|
||||
$utilities.AddToolVersion("Vagrant", $(Get-VagrantVersion))
|
||||
$utilities.AddToolVersion("VirtualBox", $(Get-VirtualBoxVersion))
|
||||
}
|
||||
$utilities.AddToolVersion("pkgconf", $(Get-PKGConfVersion))
|
||||
$utilities.AddToolVersion("Unxip", $(Get-UnxipVersion))
|
||||
$utilities.AddToolVersion("yq", $(Get-YqVersion))
|
||||
$utilities.AddToolVersion("zstd", $(Get-ZstdVersion))
|
||||
|
||||
# Tools
|
||||
$tools = $installedSoftware.AddHeader("Tools")
|
||||
if ($os.IsBigSur) {
|
||||
$tools.AddToolVersion("Aliyun CLI", $(Get-AliyunCLIVersion))
|
||||
}
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$tools.AddToolVersion("App Center CLI", $(Get-AppCenterCLIVersion))
|
||||
}
|
||||
$tools.AddToolVersion("AWS CLI", $(Get-AWSCLIVersion))
|
||||
if (-not $os.IsBigSur) {
|
||||
$tools.AddToolVersion("AWS SAM CLI", $(Get-AWSSAMCLIVersion))
|
||||
}
|
||||
$tools.AddToolVersion("AWS SAM CLI", $(Get-AWSSAMCLIVersion))
|
||||
$tools.AddToolVersion("AWS Session Manager CLI", $(Get-AWSSessionManagerCLIVersion))
|
||||
if (-not $os.IsBigSur) {
|
||||
$tools.AddToolVersion("Azure CLI", $(Get-AzureCLIVersion))
|
||||
$tools.AddToolVersion("Azure CLI (azure-devops)", $(Get-AzureDevopsVersion))
|
||||
}
|
||||
$tools.AddToolVersion("Azure CLI", $(Get-AzureCLIVersion))
|
||||
$tools.AddToolVersion("Azure CLI (azure-devops)", $(Get-AzureDevopsVersion))
|
||||
$tools.AddToolVersion("Bicep CLI", $(Get-BicepVersion))
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$tools.AddToolVersion("Cabal", $(Get-CabalVersion))
|
||||
}
|
||||
$tools.AddToolVersion("Cmake", $(Get-CmakeVersion))
|
||||
$tools.AddToolVersion("CodeQL Action Bundle", $(Get-CodeQLBundleVersion))
|
||||
if ($os.IsMonterey) {
|
||||
$tools.AddToolVersion("Colima", $(Get-ColimaVersion))
|
||||
}
|
||||
$tools.AddToolVersion("Fastlane", $(Get-FastlaneVersion))
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$tools.AddToolVersion("GHC", $(Get-GHCVersion))
|
||||
$tools.AddToolVersion("GHCup", $(Get-GHCupVersion))
|
||||
$tools.AddToolVersion("Jazzy", $(Get-JazzyVersion))
|
||||
$tools.AddToolVersion("Stack", $(Get-StackVersion))
|
||||
}
|
||||
$tools.AddToolVersion("SwiftFormat", $(Get-SwiftFormatVersion))
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$tools.AddToolVersion("Swig", $(Get-SwigVersion))
|
||||
}
|
||||
if (-not $os.IsBigSur) {
|
||||
$tools.AddToolVersion("Xcbeautify", $(Get-XcbeautifyVersion))
|
||||
}
|
||||
$tools.AddToolVersion("Xcbeautify", $(Get-XcbeautifyVersion))
|
||||
$tools.AddToolVersion("Xcode Command Line Tools", $(Get-XcodeCommandLineToolsVersion))
|
||||
if (-not $os.IsBigSur) {
|
||||
$tools.AddToolVersion("Xcodes", $(Get-XcodesVersion))
|
||||
}
|
||||
$tools.AddToolVersion("Xcodes", $(Get-XcodesVersion))
|
||||
|
||||
# Linters
|
||||
$linters = $installedSoftware.AddHeader("Linters")
|
||||
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
|
||||
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64) -and (-not $os.IsSequoiaArm64)) {
|
||||
$linters.AddToolVersion("SwiftLint", $(Get-SwiftLintVersion))
|
||||
}
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$linters.AddToolVersion("Yamllint", $(Get-YamllintVersion))
|
||||
}
|
||||
|
||||
# Browsers
|
||||
$browsers = $installedSoftware.AddHeader("Browsers")
|
||||
@@ -220,12 +130,10 @@ $java = $installedSoftware.AddHeader("Java")
|
||||
$java.AddTable($(Get-JavaVersions))
|
||||
|
||||
# Toolcache
|
||||
|
||||
$toolcache = $installedSoftware.AddHeader("Cached Tools")
|
||||
$toolcache.AddNodes($(Build-ToolcacheSection))
|
||||
|
||||
# Rust
|
||||
if (-not $os.IsBigSur) {
|
||||
$rust = $installedSoftware.AddHeader("Rust Tools")
|
||||
$rust.AddToolVersion("Cargo", $(Get-RustCargoVersion))
|
||||
$rust.AddToolVersion("Rust", $(Get-RustVersion))
|
||||
@@ -233,15 +141,8 @@ $rust.AddToolVersion("Rustdoc", $(Get-RustdocVersion))
|
||||
$rust.AddToolVersion("Rustup", $(Get-RustupVersion))
|
||||
|
||||
$rustPackages = $rust.AddHeader("Packages")
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$rustPackages.AddToolVersion("Bindgen", $(Get-Bindgen))
|
||||
$rustPackages.AddToolVersion("Cargo-audit", $(Get-Cargoaudit))
|
||||
$rustPackages.AddToolVersion("Cargo-outdated", $(Get-Cargooutdated))
|
||||
$rustPackages.AddToolVersion("Cbindgen", $(Get-Cbindgen))
|
||||
}
|
||||
$rustPackages.AddToolVersion("Clippy", $(Get-RustClippyVersion))
|
||||
$rustPackages.AddToolVersion("Rustfmt", $(Get-RustfmtVersion))
|
||||
}
|
||||
|
||||
# PowerShell
|
||||
$powerShell = $installedSoftware.AddHeader("PowerShell Tools")
|
||||
@@ -250,33 +151,6 @@ $powerShell.AddToolVersion("PowerShell", $(Get-PowershellVersion))
|
||||
$powerShellModules = $powerShell.AddHeader("PowerShell Modules")
|
||||
$powerShellModules.AddNodes($(Get-PowerShellModules))
|
||||
|
||||
# Web Servers
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$webServers = $installedSoftware.AddHeader("Web Servers")
|
||||
$webServers.AddTable($(Build-WebServersSection))
|
||||
}
|
||||
|
||||
# Xamarin section
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$xamarin = $installedSoftware.AddHeader("Xamarin")
|
||||
$vsForMac = $xamarin.AddHeader("Visual Studio for Mac")
|
||||
$vsForMac.AddTable($(Build-VSMacTable))
|
||||
$note =
|
||||
@'
|
||||
To use Visual Studio 2019 by default rename the app:
|
||||
mv "/Applications/Visual Studio.app" "/Applications/Visual Studio 2022.app"
|
||||
mv "/Applications/Visual Studio 2019.app" "/Applications/Visual Studio.app"
|
||||
'@
|
||||
$vsForMacNotes = $vsForMac.AddHeader("Notes")
|
||||
$vsForMacNotes.AddNote($note)
|
||||
|
||||
$xamarinBundles = $xamarin.AddHeader("Xamarin bundles")
|
||||
$xamarinBundles.AddTable($(Build-XamarinTable))
|
||||
|
||||
$unitTestFramework = $xamarin.AddHeader("Unit Test Framework")
|
||||
$unitTestFramework.AddToolVersion("NUnit", $(Get-NUnitVersion))
|
||||
}
|
||||
|
||||
# Xcode section
|
||||
$xcode = $installedSoftware.AddHeader("Xcode")
|
||||
# First run doesn't provide full data about devices and runtimes
|
||||
@@ -284,10 +158,6 @@ Get-XcodeInfoList | Out-Null
|
||||
|
||||
$xcodeInfo = Get-XcodeInfoList
|
||||
$xcode.AddTable($(Build-XcodeTable $xcodeInfo))
|
||||
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
|
||||
$xcodeTools = $xcode.AddHeader("Xcode Support Tools")
|
||||
$xcodeTools.AddNodes($(Build-XcodeSupportToolsSection))
|
||||
}
|
||||
|
||||
$installedSdks = $xcode.AddHeader("Installed SDKs")
|
||||
$installedSdks.AddTable($(Build-XcodeSDKTable $xcodeInfo))
|
||||
@@ -303,15 +173,15 @@ $android.AddTable($androidTable)
|
||||
$androidEnv = $android.AddHeader("Environment variables")
|
||||
$androidEnv.AddTable($(Build-AndroidEnvironmentTable))
|
||||
|
||||
if ($os.IsBigSur -or $os.IsMonterey) {
|
||||
if ($os.IsSonoma -or $os.IsVentura) {
|
||||
$miscellaneous = $installedSoftware.AddHeader("Miscellaneous")
|
||||
$miscellaneous.AddToolVersion("libXext", $(Get-LibXextVersion))
|
||||
$miscellaneous.AddToolVersion("libXft", $(Get-LibXftVersion))
|
||||
$miscellaneous.AddToolVersion("Tcl/Tk", $(Get-TclTkVersion))
|
||||
$miscellaneous.AddToolVersion("Zlib", $(Get-ZlibVersion))
|
||||
}
|
||||
|
||||
if ($os.IsMonterey) {
|
||||
if ($os.IsSonomaX64 -or $os.IsVenturaX64) {
|
||||
|
||||
Write-Host "Adding environment variables for parallels"
|
||||
|
||||
$miscellaneousEnv = $miscellaneous.AddHeader("Environment variables")
|
||||
$miscellaneousEnv.AddTable($(Build-MiscellaneousEnvironmentTable))
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ function Build-BrowserSection {
|
||||
[ToolVersionNode]::new("ChromeDriver", $(Get-ChromeDriverVersion))
|
||||
)
|
||||
|
||||
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
|
||||
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64) -and (-not $os.IsSequoiaArm64)) {
|
||||
$nodes += @(
|
||||
[ToolVersionNode]::new("Microsoft Edge", $(Get-EdgeVersion))
|
||||
[ToolVersionNode]::new("Microsoft Edge WebDriver", $(Get-EdgeDriverVersion))
|
||||
@@ -79,7 +79,7 @@ function Get-GeckodriverVersion {
|
||||
|
||||
function Get-SeleniumVersion {
|
||||
$os = Get-OSVersion
|
||||
if ($os.IsVenturaArm64 -or $os.IsSonomaArm64) {
|
||||
if ($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoiaArm64) {
|
||||
$cellarPath = "/opt/homebrew/Cellar"
|
||||
} else {
|
||||
$cellarPath = "/usr/local/Cellar"
|
||||
|
||||
@@ -10,20 +10,6 @@ function Get-DotnetVersionList {
|
||||
return $sdkRawList | ForEach-Object { Take-Part $_ -Part 0 }
|
||||
}
|
||||
|
||||
function Get-GoVersion {
|
||||
$goOutput = Run-Command "go version" | Take-Part -Part 2
|
||||
if ($goOutput.StartsWith("go")) {
|
||||
$goOutput = $goOutput.Substring(2)
|
||||
}
|
||||
|
||||
return $goOutput
|
||||
}
|
||||
|
||||
function Get-RVersion {
|
||||
$rVersion = Run-Command "R --version | grep 'R version'" | Take-Part -Part 2
|
||||
return $rVersion
|
||||
}
|
||||
|
||||
function Get-RustVersion {
|
||||
$rustVersion = Run-Command "rustc --version" | Take-Part -Part 1
|
||||
return $rustVersion
|
||||
@@ -49,26 +35,6 @@ function Get-RustClippyVersion {
|
||||
return $version
|
||||
}
|
||||
|
||||
function Get-Bindgen {
|
||||
$bindgenVersion = Run-Command "bindgen --version" | Take-Part -Part 1
|
||||
return $bindgenVersion
|
||||
}
|
||||
|
||||
function Get-Cbindgen {
|
||||
$cbindgenVersion = Run-Command "cbindgen --version" | Take-Part -Part 1
|
||||
return $cbindgenVersion
|
||||
}
|
||||
|
||||
function Get-Cargooutdated {
|
||||
$cargoOutdatedVersion = Run-Command "cargo outdated --version" | Take-Part -Part 1
|
||||
return $cargoOutdatedVersion
|
||||
}
|
||||
|
||||
function Get-Cargoaudit {
|
||||
$cargoAuditVersion = Run-Command "cargo-audit --version" | Take-Part -Part 1
|
||||
return $cargoAuditVersion
|
||||
}
|
||||
|
||||
function Get-RustupVersion {
|
||||
$rustupVersion = Run-Command "rustup --version" | Select-Object -First 1 | Take-Part -Part 1
|
||||
return $rustupVersion
|
||||
@@ -114,20 +80,8 @@ function Get-ClangLLVMVersions {
|
||||
)
|
||||
}
|
||||
|
||||
function Get-NVMVersion {
|
||||
$nvmPath = Join-Path $env:HOME ".nvm" "nvm.sh"
|
||||
$nvmInitCommand = ". ${nvmPath} > /dev/null 2>&1 || true"
|
||||
$nodejsVersion = Run-Command "${nvmInitCommand} && nvm --version"
|
||||
return $nodejsVersion
|
||||
}
|
||||
|
||||
function Get-PipVersion {
|
||||
param (
|
||||
[Parameter(Mandatory)][ValidateRange(2, 3)]
|
||||
[int] $Version
|
||||
)
|
||||
|
||||
$command = If ($Version -eq 2) { "/Library/Frameworks/Python.framework/Versions/2.7/bin/pip --version" } Else { "pip3 --version" }
|
||||
function Get-Pip3Version {
|
||||
$command = "pip3 --version"
|
||||
$commandOutput = Run-Command $command
|
||||
$versionPart1 = $commandOutput | Take-Part -Part 1
|
||||
$versionPart2 = $commandOutput | Take-Part -Part 4
|
||||
@@ -140,14 +94,6 @@ function Get-PipxVersion {
|
||||
return $pipxVersion
|
||||
}
|
||||
|
||||
function Get-NVMNodeVersionList {
|
||||
$nvmPath = Join-Path $env:HOME ".nvm" "nvm.sh"
|
||||
$nvmInitCommand = ". ${nvmPath} > /dev/null 2>&1 || true"
|
||||
$nodejsVersionsRaw = Run-Command "${nvmInitCommand} && nvm ls"
|
||||
$nodeVersions = $nodejsVersionsRaw | ForEach-Object { $_.TrimStart(" ").TrimEnd(" *") } | Where-Object { $_.StartsWith("v") }
|
||||
return $nodeVersions | ForEach-Object { $_.TrimStart("v") }
|
||||
}
|
||||
|
||||
function Build-OSInfoSection {
|
||||
param (
|
||||
[string] $ImageName
|
||||
@@ -173,12 +119,6 @@ function Get-MonoVersion {
|
||||
return $monoVersion
|
||||
}
|
||||
|
||||
function Get-MSBuildVersion {
|
||||
$msbuildVersion = Run-Command "msbuild -version" | Select-Object -Last 1
|
||||
$monoVersion = Get-MonoVersion
|
||||
return "$msbuildVersion (Mono $monoVersion)"
|
||||
}
|
||||
|
||||
function Get-NodeVersion {
|
||||
$nodeVersion = Run-Command "node --version"
|
||||
return $nodeVersion.TrimStart("v")
|
||||
@@ -189,11 +129,6 @@ function Get-PerlVersion {
|
||||
return $version
|
||||
}
|
||||
|
||||
function Get-PythonVersion {
|
||||
$pythonVersion = Run-Command "/Library/Frameworks/Python.framework/Versions/2.7/bin/python --version"
|
||||
return ($pythonVersion -replace "^Python").Trim()
|
||||
}
|
||||
|
||||
function Get-Python3Version {
|
||||
$python3Version = Run-Command "python3 --version"
|
||||
return ($python3Version -replace "^Python").Trim()
|
||||
@@ -209,11 +144,6 @@ function Get-PHPVersion {
|
||||
return ($PHPVersion -replace "^PHP").Trim()
|
||||
}
|
||||
|
||||
function Get-JuliaVersion {
|
||||
$juliaVersion = Run-Command "julia --version" | Take-Part -Part 0,2
|
||||
return ($juliaVersion -replace "^Julia").Trim()
|
||||
}
|
||||
|
||||
function Get-BundlerVersion {
|
||||
$bundlerVersion = Run-Command "bundle --version"
|
||||
return ($bundlerVersion -replace "^Bundler version").Trim()
|
||||
@@ -249,11 +179,6 @@ function Get-NuGetVersion {
|
||||
return $nugetVersion
|
||||
}
|
||||
|
||||
function Get-CondaVersion {
|
||||
$condaVersion = Run-Command "conda --version"
|
||||
return ($condaVersion -replace "^conda").Trim()
|
||||
}
|
||||
|
||||
function Get-RubyGemsVersion {
|
||||
$rubyGemsVersion = Run-Command "gem --version"
|
||||
return $rubyGemsVersion
|
||||
@@ -305,11 +230,6 @@ function Get-WgetVersion {
|
||||
return $wgetVersion
|
||||
}
|
||||
|
||||
function Get-SVNVersion {
|
||||
$svnVersion = Run-Command "svn --version --quiet"
|
||||
return $svnVersion
|
||||
}
|
||||
|
||||
function Get-PackerVersion {
|
||||
# Packer 1.7.1 has a bug and outputs version to stderr instead of stdout https://github.com/hashicorp/packer/issues/10855
|
||||
$result = Run-Command "packer --version"
|
||||
@@ -332,16 +252,6 @@ function Get-GPGVersion {
|
||||
return ($gpgVersion.Line -replace "^gpg \(GnuPG\)").Trim()
|
||||
}
|
||||
|
||||
function Get-PostgresClientVersion {
|
||||
$postgresClientVersion = Run-Command "psql --version"
|
||||
return ($postgresClientVersion -replace "^psql \(PostgreSQL\)").Trim()
|
||||
}
|
||||
|
||||
function Get-PostgresServerVersion {
|
||||
$postgresServerVersion = Run-Command "pg_config --version"
|
||||
return ($postgresServerVersion -replace "^PostgreSQL").Trim()
|
||||
}
|
||||
|
||||
function Get-Aria2Version {
|
||||
$aria2Version = Run-Command "aria2c --version" | Select-Object -First 1 | Take-Part -Part 2
|
||||
return $aria2Version
|
||||
@@ -367,21 +277,6 @@ function Get-BazeliskVersion {
|
||||
return ($bazeliskVersion -replace "^bazelisk").Trim()
|
||||
}
|
||||
|
||||
function Get-HelmVersion {
|
||||
$helmVersion = Run-Command "helm version --short"
|
||||
return $helmVersion
|
||||
}
|
||||
|
||||
function Get-MongoVersion {
|
||||
$mongo = Run-Command "mongo --version" | Select-String "MongoDB shell version" | Take-Part -Part 3
|
||||
return $mongo.TrimStart("v").Trim()
|
||||
}
|
||||
|
||||
function Get-MongodVersion {
|
||||
$mongod = Run-Command "mongod --version" | Select-String "db version " | Take-Part -Part 2
|
||||
return $mongod.TrimStart("v").Trim()
|
||||
}
|
||||
|
||||
function Get-7zipVersion {
|
||||
$7zip = Run-Command "7z i" | Select-String "7-Zip" | Take-Part -Part 0,2
|
||||
return ($7zip -replace "^7-Zip").Trim()
|
||||
@@ -397,21 +292,6 @@ function Get-BsdtarVersion {
|
||||
return "$bsdtar - available by 'tar' alias"
|
||||
}
|
||||
|
||||
function Get-NewmanVersion {
|
||||
$newmanVersion = Run-Command "newman --version"
|
||||
return $newmanVersion
|
||||
}
|
||||
|
||||
function Get-VirtualBoxVersion {
|
||||
$virtualBox = Run-Command "vboxmanage -v"
|
||||
return $virtualBox
|
||||
}
|
||||
|
||||
function Get-VagrantVersion {
|
||||
$vagrant = Run-Command "vagrant -v"
|
||||
return ($vagrant -replace "^Vagrant").Trim()
|
||||
}
|
||||
|
||||
function Get-ParallelVersion {
|
||||
$parallelVersion = Run-Command "parallel --version" | Select-String "GNU parallel" | Select-Object -First 1
|
||||
return ($parallelVersion -replace "^GNU parallel").Trim()
|
||||
@@ -427,11 +307,6 @@ function Get-CmakeVersion {
|
||||
return $cmakeVersion
|
||||
}
|
||||
|
||||
function Get-AppCenterCLIVersion {
|
||||
$appcenterCLIVersion = Run-Command "appcenter --version" | Take-Part -Part 2
|
||||
return $appcenterCLIVersion
|
||||
}
|
||||
|
||||
function Get-AzureCLIVersion {
|
||||
$azureCLIVersion = (az version | ConvertFrom-Json).'azure-cli'
|
||||
return $azureCLIVersion
|
||||
@@ -457,51 +332,11 @@ function Get-AWSSessionManagerCLIVersion {
|
||||
return $awsSessionManagerVersion
|
||||
}
|
||||
|
||||
function Get-AliyunCLIVersion {
|
||||
$aliyunVersion = Run-Command "aliyun --version" | Select-String "Alibaba Cloud Command Line Interface Version " | Take-Part -Part 6
|
||||
return $aliyunVersion
|
||||
}
|
||||
|
||||
function Get-GHCupVersion {
|
||||
$ghcUpVersion = (Run-Command "ghcup --version" | Take-Part -Part 5).Replace('v','')
|
||||
return $ghcUpVersion
|
||||
}
|
||||
|
||||
function Get-GHCVersion {
|
||||
$ghcVersion = Run-Command "ghc --version" | Take-Part -Part 7
|
||||
return $ghcVersion
|
||||
}
|
||||
|
||||
function Get-CabalVersion {
|
||||
$cabalVersion = Run-Command "cabal --version" | Take-Part -Part 3
|
||||
return $cabalVersion
|
||||
}
|
||||
|
||||
function Get-SwitchAudioOsxVersion {
|
||||
$switchAudioVersion = Get-BrewPackageVersion -CommandName "SwitchAudioSource"
|
||||
return $switchAudioVersion
|
||||
}
|
||||
|
||||
function Get-SoxVersion {
|
||||
$soxVersion = Get-BrewPackageVersion -CommandName "sox"
|
||||
return $soxVersion
|
||||
}
|
||||
|
||||
function Get-StackVersion {
|
||||
$stackVersion = Run-Command "stack --version" | Take-Part -Part 1 | ForEach-Object {$_.replace(",","")}
|
||||
return $stackVersion
|
||||
}
|
||||
|
||||
function Get-SwiftFormatVersion {
|
||||
$swiftFormatVersion = Run-Command "swiftformat --version"
|
||||
return $swiftFormatVersion
|
||||
}
|
||||
|
||||
function Get-YamllintVersion {
|
||||
$yamllintVersion = Run-Command "yamllint --version"
|
||||
return ($yamllintVersion -replace "^Yamllint").Trim()
|
||||
}
|
||||
|
||||
function Get-SwiftLintVersion {
|
||||
$swiftlintVersion = Run-Command "swiftlint version"
|
||||
return $swiftlintVersion
|
||||
@@ -512,11 +347,6 @@ function Get-PowershellVersion {
|
||||
return ($powershellVersion -replace "^PowerShell").Trim()
|
||||
}
|
||||
|
||||
function Get-SwigVersion {
|
||||
$swigVersion = Run-Command "swig -version" | Select-Object -First 2 | Take-Part -Part 2
|
||||
return $swigVersion
|
||||
}
|
||||
|
||||
function Get-BicepVersion {
|
||||
$bicepVersion = Run-Command "bicep --version" | Take-Part -Part 3
|
||||
return $bicepVersion
|
||||
@@ -527,33 +357,8 @@ function Get-KotlinVersion {
|
||||
return $kotlinVersion
|
||||
}
|
||||
|
||||
function Get-SbtVersion {
|
||||
$sbtVersion = Run-Command "sbt -version" | Take-Part -Part 3
|
||||
return $sbtVersion
|
||||
}
|
||||
|
||||
function Get-JazzyVersion {
|
||||
$jazzyVersion = Run-Command "jazzy --version" | Take-Part -Part 2
|
||||
return $jazzyVersion
|
||||
}
|
||||
|
||||
function Get-ZlibVersion {
|
||||
$zlibVersion = (Run-Command "brew info --json zlib" | ConvertFrom-Json).installed.version
|
||||
return $zlibVersion
|
||||
}
|
||||
|
||||
function Get-LibXftVersion {
|
||||
$libXftVersion = (Run-Command "brew info --json libxft" | ConvertFrom-Json).installed.version
|
||||
return $libXftVersion
|
||||
}
|
||||
|
||||
function Get-LibXextVersion {
|
||||
$libXextVersion = (Run-Command "brew info --json libxext" | ConvertFrom-Json).installed.version
|
||||
return $libXextVersion
|
||||
}
|
||||
|
||||
function Get-TclTkVersion {
|
||||
$tcltkVersion = (Run-Command "brew info --json tcl-tk" | ConvertFrom-Json).installed.version
|
||||
$tcltkVersion = (Run-Command "brew info --json tcl-tk@8" | ConvertFrom-Json).installed.version
|
||||
return $tcltkVersion
|
||||
}
|
||||
|
||||
@@ -563,35 +368,6 @@ function Get-YqVersion {
|
||||
return ($Matches[0])
|
||||
}
|
||||
|
||||
function Get-ImageMagickVersion {
|
||||
$imagemagickVersion = Run-Command "magick --version" | Select-Object -First 1 | Take-Part -Part 1,2
|
||||
return ($imagemagickVersion -replace "^ImageMagick").Trim()
|
||||
}
|
||||
|
||||
function Build-PackageManagementEnvironmentTable {
|
||||
$node = [HeaderNode]::new("Environment variables")
|
||||
|
||||
$table = @(
|
||||
@{
|
||||
"Name" = "CONDA"
|
||||
"Value" = $env:CONDA
|
||||
},
|
||||
@{
|
||||
"Name" = "VCPKG_INSTALLATION_ROOT"
|
||||
"Value" = $env:VCPKG_INSTALLATION_ROOT
|
||||
}
|
||||
) | ForEach-Object {
|
||||
[PSCustomObject] @{
|
||||
"Name" = $_.Name
|
||||
"Value" = $_.Value
|
||||
}
|
||||
}
|
||||
|
||||
$node.AddTable($table)
|
||||
|
||||
return $node
|
||||
}
|
||||
|
||||
function Build-MiscellaneousEnvironmentTable {
|
||||
return @(
|
||||
@{
|
||||
@@ -606,7 +382,6 @@ function Build-MiscellaneousEnvironmentTable {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function Get-CodeQLBundleVersion {
|
||||
$CodeQLVersionWildcard = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "CodeQL" | Join-Path -ChildPath "*"
|
||||
$CodeQLVersionPath = Get-ChildItem $CodeQLVersionWildcard | Select-Object -First 1 -Expand FullName
|
||||
@@ -615,14 +390,9 @@ function Get-CodeQLBundleVersion {
|
||||
return $CodeQLVersion
|
||||
}
|
||||
|
||||
function Get-ColimaVersion {
|
||||
$colimaVersion = Run-Command "colima version" | Select-String "colima version" | Take-Part -Part 2
|
||||
return $colimaVersion
|
||||
}
|
||||
|
||||
function Get-PKGConfigVersion {
|
||||
$pkgconfigVersion = Run-Command "pkg-config --version"
|
||||
return $pkgconfigVersion
|
||||
function Get-PKGConfVersion {
|
||||
$pkgconfVersion = Run-Command "pkgconf --version"
|
||||
return $pkgconfVersion
|
||||
}
|
||||
|
||||
function Get-XcbeautifyVersion {
|
||||
@@ -634,3 +404,8 @@ function Get-XcodesVersion {
|
||||
$XcodesVersion = Run-Command "xcodes version"
|
||||
return $XcodesVersion
|
||||
}
|
||||
|
||||
function Get-UnxipVersion {
|
||||
$unxipVersion = Run-Command "unxip --version" | Take-Part -Part 1
|
||||
return $unxipVersion
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ function Get-JavaVersions {
|
||||
$defaultJavaPath = (Get-Item env:JAVA_HOME).value
|
||||
|
||||
$os = Get-OSVersion
|
||||
if ($os.IsVenturaArm64 -or $os.IsSonomaArm64) {
|
||||
if ($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoiaArm64) {
|
||||
$javaVersions = Get-Item env:JAVA_HOME_*_arm64
|
||||
} else {
|
||||
$javaVersions = Get-Item env:JAVA_HOME_*_X64
|
||||
|
||||
@@ -37,18 +37,14 @@ function Build-ToolcacheSection {
|
||||
|
||||
$nodes = @()
|
||||
|
||||
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonoma)) {
|
||||
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonoma) -and (-not $os.IsSequoia)) {
|
||||
$nodes += @(
|
||||
[ToolVersionsListNode]::new("PyPy", $(Get-ToolcachePyPyVersions), '^\d+\.\d+', "List")
|
||||
)
|
||||
}
|
||||
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
|
||||
$nodes += @(
|
||||
[ToolVersionsListNode]::new("Ruby", $(Get-ToolcacheRubyVersions), '^\d+\.\d+', "List")
|
||||
)
|
||||
}
|
||||
|
||||
$nodes += @(
|
||||
[ToolVersionsListNode]::new("Ruby", $(Get-ToolcacheRubyVersions), '^\d+\.\d+', "List")
|
||||
[ToolVersionsListNode]::new("Python", $(Get-ToolcachePythonVersions), '^\d+\.\d+', "List"),
|
||||
[ToolVersionsListNode]::new("Node.js", $(Get-ToolcacheNodeVersions), '^\d+', "List"),
|
||||
[ToolVersionsListNode]::new("Go", $(Get-ToolcacheGoVersions), '^\d+\.\d+', "List")
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
function Get-ApacheVersion {
|
||||
$name = "httpd"
|
||||
$port = 80
|
||||
$version = brew list $name --versions | Take-Part -Part 1
|
||||
$serviceStatus = (brew services list) -match $name | Take-Part -Part 1
|
||||
$configFile = "$(brew --prefix)/etc/httpd/httpd.conf"
|
||||
return [PsCustomObject]@{
|
||||
"Name" = $name
|
||||
"Version" = $version
|
||||
"ConfigFile" = $configFile
|
||||
"ServiceStatus" = $serviceStatus
|
||||
"ListenPort" = $port
|
||||
}
|
||||
}
|
||||
|
||||
function Get-NginxVersion {
|
||||
$name = "nginx"
|
||||
$port = 80
|
||||
$version = brew list $name --versions | Take-Part -Part 1
|
||||
$serviceStatus = (brew services list) -match $name | Take-Part -Part 1
|
||||
$configFile = "$(brew --prefix)/etc/nginx/nginx.conf"
|
||||
return [PsCustomObject]@{
|
||||
"Name" = $name
|
||||
"Version" = $version
|
||||
"ConfigFile" = $configFile
|
||||
"ServiceStatus" = $serviceStatus
|
||||
"ListenPort" = $port
|
||||
}
|
||||
}
|
||||
|
||||
function Build-WebServersSection {
|
||||
return @(
|
||||
(Get-ApacheVersion),
|
||||
(Get-NginxVersion)
|
||||
)
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
|
||||
|
||||
function Build-VSMacTable {
|
||||
$vsMacVersions = (Get-ToolsetContent).xamarin.vsmac.versions
|
||||
$defaultVSMacVersion = (Get-ToolsetContent).xamarin.vsmac.default
|
||||
|
||||
return $vsMacVersions | ForEach-Object {
|
||||
$isDefault = $_ -eq $defaultVSMacVersion
|
||||
$vsPath = "/Applications/Visual Studio $_.app"
|
||||
if ($isDefault) {
|
||||
$vsPath = "/Applications/Visual Studio.app"
|
||||
}
|
||||
|
||||
$plistPath = "$vsPath/Contents/Info.plist"
|
||||
$build = Run-Command "/usr/libexec/PlistBuddy -c 'Print CFBundleVersion' '$plistPath'"
|
||||
$defaultPostfix = $isDefault ? " (default)" : ""
|
||||
|
||||
[PSCustomObject] @{
|
||||
"Version" = $_ + $defaultPostfix
|
||||
"Build" = $build
|
||||
"Path" = $vsPath
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function Get-NUnitVersion {
|
||||
$version = Run-Command "nunit3-console --version" | Select-Object -First 1 | Take-Part -Part 3
|
||||
return $version
|
||||
}
|
||||
|
||||
function Build-XamarinTable {
|
||||
$xamarinBundles = (Get-ToolsetContent).xamarin.bundles
|
||||
$defaultSymlink = (Get-ToolsetContent).xamarin.bundle_default
|
||||
if ($defaultSymlink -eq "latest") {
|
||||
$defaultSymlink = $xamarinBundles[0].symlink
|
||||
}
|
||||
|
||||
return $xamarinBundles | ForEach-Object {
|
||||
$defaultPostfix = ($_.symlink -eq $defaultSymlink ) ? " (default)" : ""
|
||||
[PSCustomObject] @{
|
||||
"symlink" = $_.symlink + $defaultPostfix
|
||||
"Xamarin.Mono" = $_.mono
|
||||
"Xamarin.iOS" = $_.ios
|
||||
"Xamarin.Mac" = $_.mac
|
||||
"Xamarin.Android" = $_.android
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -72,6 +72,8 @@ function Get-XcodePlatformOrder {
|
||||
"Simulator - tvOS" { 5 }
|
||||
"watchOS" { 6 }
|
||||
"Simulator - watchOS" { 7 }
|
||||
"visionOS" { 8 }
|
||||
"Simulator - visionOS" { 9 }
|
||||
Default { 100 }
|
||||
}
|
||||
}
|
||||
@@ -94,12 +96,26 @@ function Build-XcodeTable {
|
||||
|
||||
$xcodeList = $xcodeInfo.Values | ForEach-Object { $_.VersionInfo } | Sort-Object $sortRules
|
||||
return $xcodeList | ForEach-Object {
|
||||
$defaultPostfix = If ($_.IsDefault) { " (default)" } else { "" }
|
||||
$betaPostfix = If ($_.IsStable) { "" } else { " (beta)" }
|
||||
$defaultPostfix = if ($_.IsDefault) { " (default)" } else { "" }
|
||||
$betaPostfix = if ($_.IsStable) { "" } else { " (beta)" }
|
||||
$targetPath = $_.Path
|
||||
$symlinks = @()
|
||||
Get-ChildItem -Path "/Applications" | ForEach-Object {
|
||||
if ($_.LinkType -eq 'SymbolicLink') {
|
||||
$linkTarget = & readlink $_.FullName
|
||||
if ($linkTarget -eq $targetPath) {
|
||||
$symlinks += $_.FullName
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($null -eq $symlinks) {
|
||||
$symlinks = @("N/A")
|
||||
}
|
||||
return [PSCustomObject] @{
|
||||
"Version" = $_.Version.ToString() + $betaPostfix + $defaultPostfix
|
||||
"Build" = $_.Build
|
||||
"Path" = $_.Path
|
||||
"Symlinks" = [String]::Join("<br>", $symlinks)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -186,35 +202,30 @@ function Build-XcodeSimulatorsTable {
|
||||
$runtimes += $_
|
||||
}
|
||||
}
|
||||
|
||||
$runtimes = $runtimes | Sort-Object @{ Expression = { $_.identifier } } -Unique
|
||||
|
||||
return $runtimes | ForEach-Object {
|
||||
$runtime = $_
|
||||
$runtimeDevices = @()
|
||||
$xcodeList = @()
|
||||
|
||||
$xcodeInfo.Values | ForEach-Object {
|
||||
$runtimeFound = $_.SimulatorsInfo.runtimes | Where-Object { $_.identifier -eq $runtime.identifier } | Select-Object -First 1
|
||||
if ($runtimeFound) {
|
||||
$devicesToAdd = Build-XcodeDevicesList -XcodeInfo $_ -Runtime $runtimeFound
|
||||
$runtimeDevices += $devicesToAdd | Select-Object -ExpandProperty name
|
||||
$xcodeList += $_.VersionInfo.Version
|
||||
}
|
||||
}
|
||||
|
||||
$xcodeList = $xcodeList | Sort-Object
|
||||
$runtimeDevices = $runtimeDevices | ForEach-Object { Format-XcodeSimulatorName $_ } | Select-Object -Unique
|
||||
$sortedRuntimeDevices = $runtimeDevices | Sort-Object @{
|
||||
Expression = { $_.Split(" ")[0] };
|
||||
Descending = $true;
|
||||
}, {
|
||||
$_.Split(" ") | Select-Object -Skip 1 | Join-String -Separator " "
|
||||
If (($runtimeDevices | Where-Object { -not ([string]::IsNullOrWhitespace($_)) }).Count -eq 0) {
|
||||
$sortedRuntimeDevices = @("N/A")
|
||||
} else {
|
||||
$sortedRuntimeDevices = $runtimeDevices | Sort-Object @{
|
||||
Expression = { $_.Split(" ")[0] };
|
||||
Descending = $true;
|
||||
}, {
|
||||
$_.Split(" ") | Select-Object -Skip 1 | Join-String -Separator " "
|
||||
}
|
||||
}
|
||||
|
||||
return [PSCustomObject] @{
|
||||
"OS" = $runtime.name
|
||||
"Xcode Version" = [String]::Join("<br>", $xcodeList)
|
||||
"Simulators" = [String]::Join("<br>", $sortedRuntimeDevices)
|
||||
}
|
||||
} | Sort-Object {
|
||||
@@ -228,27 +239,3 @@ function Build-XcodeSimulatorsTable {
|
||||
return [System.Version]::Parse($sdkNameParts[-1])
|
||||
}
|
||||
}
|
||||
|
||||
function Build-XcodeSupportToolsSection {
|
||||
$toolNodes = @()
|
||||
|
||||
$xcpretty = Run-Command "xcpretty --version"
|
||||
$xcversion = Run-Command "xcversion --version" | Select-String "^[0-9]"
|
||||
|
||||
$toolNodes += [ToolVersionNode]::new("xcpretty", $xcpretty)
|
||||
if ($os.IsBigSur -or $os.IsMonterey) {
|
||||
$toolNodes += [ToolVersionNode]::new("xcversion", $xcversion)
|
||||
}
|
||||
|
||||
$nomadOutput = Run-Command "gem list nomad-cli"
|
||||
$nomadCLI = [regex]::matches($nomadOutput, "(\d+.){2}\d+").Value
|
||||
$nomadShenzhenOutput = Run-Command "ipa -version"
|
||||
$nomadShenzhen = [regex]::matches($nomadShenzhenOutput, "(\d+.){2}\d+").Value
|
||||
|
||||
if ($os.IsBigSur) {
|
||||
$toolNodes += [ToolVersionNode]::new("Nomad CLI", $nomadCLI)
|
||||
$toolNodes += [ToolVersionNode]::new("Nomad shenzhen CLI", $nomadShenzhen)
|
||||
}
|
||||
|
||||
return $toolNodes
|
||||
}
|
||||
|
||||
@@ -29,14 +29,15 @@ function Get-OSVersion {
|
||||
Version = $osVersion.Version
|
||||
Platform = $osVersion.Platform
|
||||
IsArm64 = $processorArchitecture -eq "arm64"
|
||||
IsBigSur = $osVersion.Version.Major -eq "11"
|
||||
IsMonterey = $osVersion.Version.Major -eq "12"
|
||||
IsVentura = $($osVersion.Version.Major -eq "13")
|
||||
IsVenturaArm64 = $($osVersion.Version.Major -eq "13" -and $processorArchitecture -eq "arm64")
|
||||
IsVenturaX64 = $($osVersion.Version.Major -eq "13" -and $processorArchitecture -ne "arm64")
|
||||
IsSonoma = $($osVersion.Version.Major -eq "14")
|
||||
IsSonomaArm64 = $($osVersion.Version.Major -eq "14" -and $processorArchitecture -eq "arm64")
|
||||
IsSonomaX64 = $($osVersion.Version.Major -eq "14" -and $processorArchitecture -ne "arm64")
|
||||
IsSequoia = $($osVersion.Version.Major -eq "15")
|
||||
IsSequoiaArm64 = $($osVersion.Version.Major -eq "15" -and $processorArchitecture -eq "arm64")
|
||||
IsSequoiaX64 = $($osVersion.Version.Major -eq "15" -and $processorArchitecture -ne "arm64")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,10 +105,6 @@ function Invoke-DownloadWithRetry {
|
||||
return $Path
|
||||
}
|
||||
|
||||
function isVeertu {
|
||||
return (Test-Path -Path "/Library/Application Support/Veertu")
|
||||
}
|
||||
|
||||
function Get-Architecture {
|
||||
$arch = arch
|
||||
if ($arch -ne "arm64") {
|
||||
|
||||
@@ -165,10 +165,6 @@ function Invoke-XcodeRunFirstLaunch {
|
||||
[string] $Version
|
||||
)
|
||||
|
||||
if ($Version.StartsWith("8") -or $Version.StartsWith("9")) {
|
||||
return
|
||||
}
|
||||
|
||||
Write-Host "Running 'runFirstLaunch' for Xcode $Version..."
|
||||
$xcodeRootPath = Get-XcodeToolPath -Version $Version -ToolName "xcodebuild"
|
||||
Invoke-ValidateCommand "sudo $xcodeRootPath -runFirstLaunch"
|
||||
@@ -177,12 +173,36 @@ function Invoke-XcodeRunFirstLaunch {
|
||||
function Install-AdditionalSimulatorRuntimes {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[string] $Version
|
||||
[string] $Version,
|
||||
[Parameter(Mandatory)]
|
||||
[array] $Runtimes
|
||||
)
|
||||
|
||||
Write-Host "Installing Simulator Runtimes for Xcode $Version ..."
|
||||
$xcodebuildPath = Get-XcodeToolPath -Version $Version -ToolName "xcodebuild"
|
||||
Invoke-ValidateCommand "$xcodebuildPath -downloadAllPlatforms" | Out-Null
|
||||
$xcodebuildPath = Get-XcodeToolPath -Version $Version -ToolName 'xcodebuild'
|
||||
$validRuntimes = @("iOS", "watchOS", "tvOS", "visionOS")
|
||||
# Install all runtimes / skip all runtimes installation
|
||||
if ($Runtimes.Count -eq 1) {
|
||||
if ($Runtimes[0] -eq "true") {
|
||||
Write-Host "Installing all runtimes for Xcode $Version ..."
|
||||
Invoke-ValidateCommand "sudo $xcodebuildPath -downloadAllPlatforms" | Out-Null
|
||||
return
|
||||
} elseif ($Runtimes[0] -eq "false") {
|
||||
Write-Host "Skipping runtimes installation for Xcode $Version ..."
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
# Validate and install specified runtimes
|
||||
$invalidRuntimes = $Runtimes | Where-Object { $_ -notin $validRuntimes }
|
||||
if ($invalidRuntimes) {
|
||||
throw "Error: Invalid runtimes detected: $($invalidRuntimes -join ', '). Valid values are: $validRuntimes."
|
||||
}
|
||||
|
||||
foreach ($runtime in $Runtimes) {
|
||||
Write-Host "Installing runtime $runtime ..."
|
||||
Invoke-ValidateCommand "sudo $xcodebuildPath -downloadPlatform $runtime" | Out-Null
|
||||
}
|
||||
}
|
||||
|
||||
function Build-XcodeSymlinks {
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
# This AppleScript clicks "Allow" for "System Software from developer "Parallels International GmbH"
|
||||
# Steps:
|
||||
# - Open System Settings -> Privacy & Security
|
||||
# - Click 'Allow' for 'System Software from developer "Parallels International GmbH'
|
||||
# - Enter password for runner
|
||||
|
||||
on run argv
|
||||
set userpassword to item 1 of argv
|
||||
|
||||
tell application "System Settings"
|
||||
activate
|
||||
delay 5
|
||||
end tell
|
||||
|
||||
tell application "System Events"
|
||||
tell process "System Settings"
|
||||
set frontmost to true
|
||||
repeat until exists window 1
|
||||
delay 2
|
||||
end repeat
|
||||
|
||||
tell splitter group 1 of group 1 of window 1
|
||||
select row 20 of outline 1 of scroll area 1 of group 1
|
||||
delay 5
|
||||
click UI Element 2 of group 4 of scroll area 1 of group 1 of group 2
|
||||
delay 5
|
||||
keystroke userpassword
|
||||
delay 5
|
||||
keystroke return
|
||||
delay 5
|
||||
end tell
|
||||
end tell
|
||||
end tell
|
||||
end run
|
||||
@@ -0,0 +1,34 @@
|
||||
# This AppleScript clicks "Allow" for "System Software from developer "Parallels International GmbH"
|
||||
# Steps:
|
||||
# - Open System Settings -> Privacy & Security
|
||||
# - Click 'Allow' for 'System Software from developer "Parallels International GmbH'
|
||||
# - Enter password for runner
|
||||
|
||||
on run argv
|
||||
set userpassword to item 1 of argv
|
||||
|
||||
tell application "System Settings"
|
||||
activate
|
||||
delay 5
|
||||
end tell
|
||||
|
||||
tell application "System Events"
|
||||
tell process "System Settings"
|
||||
set frontmost to true
|
||||
repeat until exists window 1
|
||||
delay 2
|
||||
end repeat
|
||||
|
||||
tell splitter group 1 of group 1 of window 1
|
||||
select row 18 of outline 1 of scroll area 1 of group 1
|
||||
delay 5
|
||||
click UI Element 2 of group 5 of scroll area 1 of group 1 of group 2
|
||||
delay 5
|
||||
keystroke userpassword
|
||||
delay 5
|
||||
keystroke return
|
||||
delay 5
|
||||
end tell
|
||||
end tell
|
||||
end tell
|
||||
end run
|
||||
@@ -1,49 +0,0 @@
|
||||
# This AppleScript confirms developers in security preferences via macOS UI.
|
||||
# It uses after VirtualBox installation to add 'Oracle Inc' as identified developer.
|
||||
# Steps:
|
||||
# - Close security preferences pop-up (it can be open after VirtualBox installation)
|
||||
# - Open System Preferences -> Security & Privacy -> General
|
||||
# - Unlock security preferences with user password (button 'Click the lock to make changes')
|
||||
# - Click 'Allow' or 'Details…' button to confirm developers
|
||||
# - Click 'Not now' button on restarting pop-up
|
||||
# - Close System Preferences
|
||||
|
||||
on run argv
|
||||
set userpassword to item 1 of argv
|
||||
set secpane to "Security & Privacy"
|
||||
|
||||
activate application "System Preferences"
|
||||
delay 5
|
||||
|
||||
tell application "System Events"
|
||||
tell process "System Preferences"
|
||||
set frontmost to true
|
||||
delay 2
|
||||
click menu item secpane of menu "View" of menu bar 1
|
||||
delay 5
|
||||
click button 1 of window 1
|
||||
delay 5
|
||||
keystroke userpassword
|
||||
delay 5
|
||||
keystroke return
|
||||
delay 5
|
||||
click radio button "General" of tab group 1 of window 1
|
||||
delay 5
|
||||
if exists of UI element "Details…" of tab group 1 of window 1 then
|
||||
click button "Details…" of tab group 1 of window 1
|
||||
delay 5
|
||||
keystroke return
|
||||
delay 5
|
||||
keystroke return
|
||||
delay 5
|
||||
end if
|
||||
if exists of UI element "Allow" of tab group 1 of window 1 then
|
||||
click button "Allow" of tab group 1 of window 1
|
||||
delay 5
|
||||
keystroke return
|
||||
delay 5
|
||||
end if
|
||||
click button 5 of window 1
|
||||
end tell
|
||||
end tell
|
||||
end run
|
||||
@@ -45,6 +45,18 @@ is_Arm64() {
|
||||
[ "$(arch)" = "arm64" ]
|
||||
}
|
||||
|
||||
is_Sequoia() {
|
||||
[ "$OSTYPE" = "darwin24" ]
|
||||
}
|
||||
|
||||
is_SequoiaArm64() {
|
||||
is_Sequoia && is_Arm64
|
||||
}
|
||||
|
||||
is_SequoiaX64() {
|
||||
is_Sequoia && ! is_Arm64
|
||||
}
|
||||
|
||||
is_Sonoma() {
|
||||
[ "$OSTYPE" = "darwin23" ]
|
||||
}
|
||||
@@ -69,18 +81,6 @@ is_VenturaX64() {
|
||||
is_Ventura && ! is_Arm64
|
||||
}
|
||||
|
||||
is_Monterey() {
|
||||
[ "$OSTYPE" = "darwin21" ]
|
||||
}
|
||||
|
||||
is_BigSur() {
|
||||
[ "$OSTYPE" = "darwin20" ]
|
||||
}
|
||||
|
||||
is_Veertu() {
|
||||
[[ -d "/Library/Application Support/Veertu" ]]
|
||||
}
|
||||
|
||||
get_toolset_value() {
|
||||
local toolset_path=$(echo "$IMAGE_FOLDER/toolset.json")
|
||||
local query=$1
|
||||
|
||||
@@ -1,215 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
|
||||
source ~/utils/utils.sh
|
||||
|
||||
# Xamarin can clean their SDKs while updating to newer versions,
|
||||
# so we should be able to detect it during image generation
|
||||
|
||||
buildVSMacDownloadUrl() {
|
||||
echo "https://dl.xamarin.com/VsMac/VisualStudioForMac-${1}.dmg"
|
||||
}
|
||||
|
||||
buildMonoDownloadUrl() {
|
||||
echo "https://dl.xamarin.com/MonoFrameworkMDK/Macx86/MonoFramework-MDK-${1}.macos10.xamarin.universal.pkg"
|
||||
}
|
||||
|
||||
buildXamariniIOSDownloadUrl() {
|
||||
echo "https://dl.xamarin.com/MonoTouch/Mac/xamarin.ios-${1}.pkg"
|
||||
}
|
||||
|
||||
buildXamarinMacDownloadUrl() {
|
||||
echo "https://dl.xamarin.com/XamarinforMac/Mac/xamarin.mac-${1}.pkg"
|
||||
}
|
||||
|
||||
buildXamarinAndroidDownloadUrl() {
|
||||
echo "https://dl.xamarin.com/MonoforAndroid/Mac/xamarin.android-${1}.pkg"
|
||||
}
|
||||
|
||||
installMono() {
|
||||
local VERSION=$1
|
||||
|
||||
echo "Installing Mono ${VERSION}..."
|
||||
local MONO_FOLDER_NAME=$(echo $VERSION | cut -d. -f 1,2,3)
|
||||
local SHORT_VERSION=$(echo $VERSION | cut -d. -f 1,2)
|
||||
local PKG_URL=$(buildMonoDownloadUrl $VERSION)
|
||||
|
||||
sudo installer -pkg "$(download_with_retry "$PKG_URL")" -target /
|
||||
|
||||
echo "Installing nunit3-console for Mono "$VERSION
|
||||
installNunitConsole $MONO_FOLDER_NAME
|
||||
|
||||
echo "Creating short symlink '${SHORT_VERSION}'"
|
||||
sudo ln -s ${MONO_VERSIONS_PATH}/${MONO_FOLDER_NAME} ${MONO_VERSIONS_PATH}/${SHORT_VERSION}
|
||||
|
||||
echo "Move to backup folder"
|
||||
sudo mv -v $MONO_VERSIONS_PATH/* $TMPMOUNT_FRAMEWORKS/mono/
|
||||
}
|
||||
|
||||
installXamarinIOS() {
|
||||
local VERSION=$1
|
||||
|
||||
echo "Installing Xamarin.iOS ${VERSION}..."
|
||||
local SHORT_VERSION=$(echo $VERSION | cut -d. -f 1,2)
|
||||
local PKG_URL=$(buildXamariniIOSDownloadUrl $VERSION)
|
||||
|
||||
sudo installer -pkg "$(download_with_retry "$PKG_URL")" -target /
|
||||
|
||||
echo "Creating short symlink '${SHORT_VERSION}'"
|
||||
sudo ln -s ${IOS_VERSIONS_PATH}/${VERSION} ${IOS_VERSIONS_PATH}/${SHORT_VERSION}
|
||||
|
||||
echo "Move to backup folder"
|
||||
sudo mv -v $IOS_VERSIONS_PATH/* $TMPMOUNT_FRAMEWORKS/ios/
|
||||
}
|
||||
|
||||
installXamarinMac() {
|
||||
local VERSION=$1
|
||||
|
||||
echo "Installing Xamarin.Mac ${VERSION}..."
|
||||
local SHORT_VERSION=$(echo $VERSION | cut -d. -f 1,2)
|
||||
local PKG_URL=$(buildXamarinMacDownloadUrl $VERSION)
|
||||
|
||||
sudo installer -pkg "$(download_with_retry "$PKG_URL")" -target /
|
||||
|
||||
echo "Creating short symlink '${SHORT_VERSION}'"
|
||||
sudo ln -s ${MAC_VERSIONS_PATH}/${VERSION} ${MAC_VERSIONS_PATH}/${SHORT_VERSION}
|
||||
|
||||
echo "Move to backup folder"
|
||||
sudo mv -v $MAC_VERSIONS_PATH/* $TMPMOUNT_FRAMEWORKS/mac/
|
||||
}
|
||||
|
||||
installXamarinAndroid() {
|
||||
local VERSION=$1
|
||||
|
||||
echo "Installing Xamarin.Android ${VERSION}..."
|
||||
local SHORT_VERSION=$(echo $VERSION | cut -d. -f 1,2)
|
||||
local PKG_URL=$(buildXamarinAndroidDownloadUrl $VERSION)
|
||||
|
||||
sudo installer -pkg "$(download_with_retry "$PKG_URL")" -target /
|
||||
|
||||
if [ "$VERSION" == "9.4.1.0" ]; then
|
||||
# Fix symlinks for broken Xamarin.Android
|
||||
fixXamarinAndroidSymlinksInLibDir $VERSION
|
||||
fi
|
||||
|
||||
echo "Creating short symlink '${SHORT_VERSION}'"
|
||||
sudo ln -s ${ANDROID_VERSIONS_PATH}/${VERSION} ${ANDROID_VERSIONS_PATH}/${SHORT_VERSION}
|
||||
|
||||
echo "Move to backup folder"
|
||||
sudo mv -v $ANDROID_VERSIONS_PATH/* $TMPMOUNT_FRAMEWORKS/android/
|
||||
}
|
||||
|
||||
createBundle() {
|
||||
local SYMLINK=$1
|
||||
local MONO_SDK=$2
|
||||
local IOS_SDK=$3
|
||||
local MAC_SDK=$4
|
||||
local ANDROID_SDK=$5
|
||||
|
||||
echo "Creating bundle '$SYMLINK' (Mono $MONO_SDK; iOS $IOS_SDK; Mac $MAC_SDK; Android $ANDROID_SDK"
|
||||
deleteSymlink ${SYMLINK}
|
||||
sudo ln -s ${MONO_VERSIONS_PATH}/${MONO_SDK} ${MONO_VERSIONS_PATH}/${SYMLINK}
|
||||
sudo ln -s ${IOS_VERSIONS_PATH}/${IOS_SDK} ${IOS_VERSIONS_PATH}/${SYMLINK}
|
||||
sudo ln -s ${MAC_VERSIONS_PATH}/${MAC_SDK} ${MAC_VERSIONS_PATH}/${SYMLINK}
|
||||
sudo ln -s ${ANDROID_VERSIONS_PATH}/${ANDROID_SDK} ${ANDROID_VERSIONS_PATH}/${SYMLINK}
|
||||
}
|
||||
|
||||
createBundleLink() {
|
||||
local SOURCE=$1
|
||||
local TARGET=$2
|
||||
echo "Creating bundle symlink '$SOURCE' -> '$TARGET'"
|
||||
deleteSymlink ${TARGET}
|
||||
sudo ln -s ${MONO_VERSIONS_PATH}/$SOURCE ${MONO_VERSIONS_PATH}/$TARGET
|
||||
sudo ln -s ${IOS_VERSIONS_PATH}/$SOURCE ${IOS_VERSIONS_PATH}/$TARGET
|
||||
sudo ln -s ${MAC_VERSIONS_PATH}/$SOURCE ${MAC_VERSIONS_PATH}/$TARGET
|
||||
sudo ln -s ${ANDROID_VERSIONS_PATH}/$SOURCE ${ANDROID_VERSIONS_PATH}/$TARGET
|
||||
}
|
||||
|
||||
# https://github.com/xamarin/xamarin-android/issues/3457
|
||||
# Recreate missing symlinks in lib for new Xamarin.Android package
|
||||
# Symlink path /Library/Frameworks/Xamarin.Android.framework/Libraries
|
||||
# xbuild -> xamarin.android/xbuild
|
||||
# xbuild-frameworks -> xamarin.android/xbuild-frameworks
|
||||
fixXamarinAndroidSymlinksInLibDir() {
|
||||
local XAMARIN_ANDROID_VERSION=$1
|
||||
local XAMARIN_ANDROID_LIB_PATH="${ANDROID_VERSIONS_PATH}/${XAMARIN_ANDROID_VERSION}/lib"
|
||||
|
||||
if [ -d "${XAMARIN_ANDROID_LIB_PATH}" ]; then
|
||||
pushd "${XAMARIN_ANDROID_LIB_PATH}" > /dev/null
|
||||
|
||||
local XAMARIN_ANDROID_XBUILD_DIR="${XAMARIN_ANDROID_LIB_PATH}/xbuild"
|
||||
if [ ! -d "${XAMARIN_ANDROID_XBUILD_DIR}" ]; then
|
||||
echo "${XAMARIN_ANDROID_XBUILD_DIR}"
|
||||
sudo ln -sf xamarin.android/xbuild xbuild
|
||||
fi
|
||||
|
||||
local XAMARIN_ANDROID_XBUILD_FRAMEWORKS_DIR="${XAMARIN_ANDROID_LIB_PATH}/xbuild-frameworks"
|
||||
if [ ! -d "${XAMARIN_ANDROID_XBUILD_FRAMEWORKS_DIR}" ]; then
|
||||
echo "${XAMARIN_ANDROID_XBUILD_FRAMEWORKS_DIR}"
|
||||
sudo ln -sf xamarin.android/xbuild-frameworks xbuild-frameworks
|
||||
fi
|
||||
|
||||
popd > /dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
installNunitConsole() {
|
||||
local MONO_VERSION=$1
|
||||
local TMP_WRAPPER_PATH=$(mktemp)
|
||||
|
||||
cat <<EOF > "$TMP_WRAPPER_PATH"
|
||||
#!/bin/bash -e -o pipefail
|
||||
exec /Library/Frameworks/Mono.framework/Versions/${MONO_VERSION}/bin/mono --debug \$MONO_OPTIONS $NUNIT3_PATH/nunit3-console.exe "\$@"
|
||||
EOF
|
||||
sudo chmod +x $TMP_WRAPPER_PATH
|
||||
sudo mv "$TMP_WRAPPER_PATH" "${MONO_VERSIONS_PATH}/${MONO_VERSION}/Commands/nunit3-console"
|
||||
}
|
||||
|
||||
downloadNUnitConsole() {
|
||||
echo "Downloading NUnit 3..."
|
||||
local NUNIT3_VERSION='3.6.1'
|
||||
local NUNIT3_LOCATION="https://github.com/nunit/nunit-console/releases/download/${NUNIT3_VERSION}/NUnit.Console-${NUNIT3_VERSION}.zip"
|
||||
local NUNIT3_PATH="/Library/Developer/nunit/${NUNIT3_VERSION}"
|
||||
|
||||
NUNIT3_ARCHIVE=$(download_with_retry $NUNIT3_LOCATION)
|
||||
|
||||
echo "Installing NUnit 3..."
|
||||
sudo mkdir -p $NUNIT3_PATH
|
||||
sudo unzip "$NUNIT3_ARCHIVE" -d $NUNIT3_PATH
|
||||
}
|
||||
|
||||
createUWPShim() {
|
||||
echo "Creating UWP Shim to hack UWP build failure..."
|
||||
cat <<EOF > ${TMPMOUNT}/Microsoft.Windows.UI.Xaml.CSharp.Targets
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Target Name = "Build"/>
|
||||
<Target Name = "Rebuild"/>
|
||||
</Project>
|
||||
EOF
|
||||
|
||||
local UWPTARGET_PATH=/Library/Frameworks/Mono.framework/External/xbuild/Microsoft/WindowsXaml
|
||||
|
||||
sudo mkdir -p $UWPTARGET_PATH/v11.0/
|
||||
sudo cp ${TMPMOUNT}/Microsoft.Windows.UI.Xaml.CSharp.Targets $UWPTARGET_PATH/v11.0/
|
||||
sudo mkdir -p $UWPTARGET_PATH/v12.0/
|
||||
sudo cp ${TMPMOUNT}/Microsoft.Windows.UI.Xaml.CSharp.Targets $UWPTARGET_PATH/v12.0/
|
||||
sudo mkdir -p $UWPTARGET_PATH/v14.0/
|
||||
sudo cp ${TMPMOUNT}/Microsoft.Windows.UI.Xaml.CSharp.Targets $UWPTARGET_PATH/v14.0/
|
||||
sudo mkdir -p $UWPTARGET_PATH/v15.0/
|
||||
sudo cp ${TMPMOUNT}/Microsoft.Windows.UI.Xaml.CSharp.Targets $UWPTARGET_PATH/v15.0/
|
||||
sudo mkdir -p $UWPTARGET_PATH/v16.0/
|
||||
sudo cp ${TMPMOUNT}/Microsoft.Windows.UI.Xaml.CSharp.Targets $UWPTARGET_PATH/v16.0/
|
||||
}
|
||||
|
||||
createBackupFolders() {
|
||||
mkdir -p $TMPMOUNT_FRAMEWORKS/mono
|
||||
mkdir -p $TMPMOUNT_FRAMEWORKS/ios
|
||||
mkdir -p $TMPMOUNT_FRAMEWORKS/mac
|
||||
mkdir -p $TMPMOUNT_FRAMEWORKS/android
|
||||
}
|
||||
|
||||
deleteSymlink() {
|
||||
sudo rm -f ${MONO_VERSIONS_PATH}/${1}
|
||||
sudo rm -f ${IOS_VERSIONS_PATH}/${1}
|
||||
sudo rm -f ${MAC_VERSIONS_PATH}/${1}
|
||||
sudo rm -f ${ANDROID_VERSIONS_PATH}/${1}
|
||||
}
|
||||
@@ -57,14 +57,6 @@ Describe "Android" {
|
||||
Sdkmanager = "$env:ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager"
|
||||
}
|
||||
)
|
||||
if ($os.IsBigSur -or $os.IsMonterey) {
|
||||
$testCases += @(
|
||||
@{
|
||||
PackageName = "SDK tools"
|
||||
Sdkmanager = "$env:ANDROID_HOME/tools/bin/sdkmanager"
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
It "Sdkmanager from <PackageName> is available" -TestCases $testCases {
|
||||
"$Sdkmanager --version" | Should -ReturnZeroExitCode
|
||||
|
||||
@@ -2,13 +2,13 @@ Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
|
||||
|
||||
$os = Get-OSVersion
|
||||
|
||||
Describe "Azure CLI" -Skip:($os.IsBigSur) {
|
||||
Describe "Azure CLI" {
|
||||
It "Azure CLI" {
|
||||
"az -v" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Azure DevOps CLI" -Skip:($os.IsBigSur) {
|
||||
Describe "Azure DevOps CLI" {
|
||||
It "az devops" {
|
||||
"az devops -h" | Should -ReturnZeroExitCode
|
||||
}
|
||||
@@ -26,12 +26,6 @@ Describe "cmake" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Subversion" -Skip:($os.IsVentura -or $os.IsSonoma) {
|
||||
It "Subversion" {
|
||||
"svn --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "SwiftFormat" {
|
||||
It "SwiftFormat" {
|
||||
"swiftformat --version" | Should -ReturnZeroExitCode
|
||||
@@ -62,16 +56,10 @@ Describe "Perl" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Helm" -Skip:($os.IsMonterey -or $os.IsVentura -or $os.IsSonoma) {
|
||||
It "Helm" {
|
||||
"helm version --short" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Tcl/Tk" {
|
||||
Describe "Tcl/Tk" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoia) {
|
||||
It "libtcl" {
|
||||
"file /usr/local/lib/libtcl8.6.dylib" | Should -ReturnZeroExitCode
|
||||
"file /usr/local/lib/libtk8.6.dylib" | Should -ReturnZeroExitCode
|
||||
Test-Path "/usr/local/lib/libtcl8.6.dylib" | Should -BeTrue
|
||||
Test-Path "/usr/local/lib/libtk8.6.dylib" | Should -BeTrue
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,18 +105,6 @@ Describe "bazel" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Aliyun CLI" -Skip:($os.IsMonterey -or $os.IsVentura -or $os.IsSonoma) {
|
||||
It "Aliyun CLI" {
|
||||
"aliyun --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Julia" -Skip:($os.IsVentura -or $os.IsSonoma) {
|
||||
It "Julia" {
|
||||
"julia --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "jq" {
|
||||
It "jq" {
|
||||
"jq --version" | Should -ReturnZeroExitCode
|
||||
@@ -147,24 +123,6 @@ Describe "wget" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "vagrant" -Skip:($os.IsBigSur -or $os.IsVentura -or $os.IsSonoma) {
|
||||
It "vagrant" {
|
||||
"vagrant --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "virtualbox" -Skip:($os.IsBigSur -or $os.IsVentura -or $os.IsSonoma) {
|
||||
It "virtualbox" {
|
||||
"vboxmanage -v" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "R" -Skip:($os.IsVentura -or $os.IsSonoma -or $os.IsBigSur) {
|
||||
It "R" {
|
||||
"R --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Homebrew" {
|
||||
It "Homebrew" {
|
||||
"brew --version" | Should -ReturnZeroExitCode
|
||||
@@ -172,27 +130,21 @@ Describe "Homebrew" {
|
||||
}
|
||||
|
||||
Describe "Kotlin" {
|
||||
$kotlinPackages = @("kapt", "kotlin", "kotlinc", "kotlinc-jvm", "kotlin-dce-js")
|
||||
$kotlinPackages = @("kapt", "kotlin", "kotlinc", "kotlinc-jvm", "kotlinc-js")
|
||||
|
||||
It "<toolName> is available" -TestCases ($kotlinPackages | ForEach-Object { @{ toolName = $_ } }) {
|
||||
"$toolName -version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "sbt" -Skip:($os.IsVentura -or $os.IsSonoma) {
|
||||
It "sbt" {
|
||||
"sbt -version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "yq" {
|
||||
It "yq" {
|
||||
"yq --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "imagemagick" -Skip:($os.IsBigSur -or $os.IsVentura -or $os.IsSonoma) {
|
||||
It "imagemagick" {
|
||||
"magick -version" | Should -ReturnZeroExitCode
|
||||
Describe "pkgconf" {
|
||||
It "pkgconf" {
|
||||
"pkgconf --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ Describe "Selenium server" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Edge" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64) {
|
||||
Describe "Edge" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoiaArm64) {
|
||||
It "Microsoft Edge" {
|
||||
$edgeLocation = "/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge"
|
||||
$edgeLocation | Should -Exist
|
||||
@@ -53,7 +53,7 @@ Describe "Edge" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64) {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Firefox" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64) {
|
||||
Describe "Firefox" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoiaArm64) {
|
||||
It "Firefox" {
|
||||
$firefoxLocation = "/Applications/Firefox.app/Contents/MacOS/firefox"
|
||||
$firefoxLocation | Should -Exist
|
||||
|
||||
@@ -33,7 +33,7 @@ Describe "GCC" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "vcpkg" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSonoma) {
|
||||
Describe "vcpkg" -Skip:($os.IsVenturaArm64 -or $os.IsSonoma -or $os.IsSequoia) {
|
||||
It "vcpkg" {
|
||||
"vcpkg version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
@@ -43,7 +43,7 @@ Describe "AWS" {
|
||||
It "AWS CLI" {
|
||||
"aws --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
It "AWS SAM CLI" -Skip:($os.IsBigSur) {
|
||||
It "AWS SAM CLI" {
|
||||
"sam --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
@@ -58,77 +58,18 @@ Describe "AzCopy" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Miniconda" -Skip:($os.IsVentura -or $os.IsSonoma) {
|
||||
It "Conda" {
|
||||
[System.Environment]::GetEnvironmentVariable("CONDA") | Should -Not -BeNullOrEmpty
|
||||
$condaBinPath = Join-Path $env:CONDA "bin" "conda"
|
||||
"$condaBinPath --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Stack" -Skip:($os.IsVentura -or $os.IsSonoma) {
|
||||
It "Stack" {
|
||||
"stack --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "CocoaPods" {
|
||||
It "CocoaPods" {
|
||||
"pod --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "VSMac" -Skip:($os.IsVentura -or $os.IsSonoma) {
|
||||
$vsMacVersions = (Get-ToolsetContent).xamarin.vsmac.versions
|
||||
$defaultVSMacVersion = (Get-ToolsetContent).xamarin.vsmac.default
|
||||
|
||||
$testCases = $vsMacVersions | ForEach-Object {
|
||||
$vsPath = "/Applications/Visual Studio $_.app"
|
||||
if ($_ -eq $defaultVSMacVersion) {
|
||||
$vsPath = "/Applications/Visual Studio.app"
|
||||
}
|
||||
|
||||
@{ vsversion = $_ ; vspath = $vsPath }
|
||||
}
|
||||
|
||||
It "Visual Studio <vsversion> for Mac is installed" -TestCases $testCases {
|
||||
$vstoolPath = Join-Path $vsPath "Contents/MacOS/vstool"
|
||||
$vsPath | Should -Exist
|
||||
$vstoolPath | Should -Exist
|
||||
}
|
||||
|
||||
It "Visual Studio $defaultVSMacVersion for Mac is default" {
|
||||
$vsPath = "/Applications/Visual Studio.app"
|
||||
$vstoolPath = Join-Path $vsPath "Contents/MacOS/vstool"
|
||||
$vsPath | Should -Exist
|
||||
$vstoolPath | Should -Exist
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Swig" -Skip:($os.IsVentura -or $os.IsSonoma) {
|
||||
It "Swig" {
|
||||
"swig -version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Bicep" {
|
||||
It "Bicep" {
|
||||
"bicep --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Go" -Skip:($os.IsVentura -or $os.IsSonoma) {
|
||||
It "Go" {
|
||||
"go version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "VirtualBox" -Skip:($os.IsBigSur -or $os.IsVentura -or $os.IsSonoma) {
|
||||
It "Check kext kernel modules" {
|
||||
kextstat | Out-String | Should -Match "org.virtualbox.kext"
|
||||
}
|
||||
}
|
||||
|
||||
Describe "CodeQL Bundle" {
|
||||
It "Is installed" {
|
||||
$CodeQLVersionWildcard = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "CodeQL" | Join-Path -ChildPath "*"
|
||||
@@ -141,8 +82,8 @@ Describe "CodeQL Bundle" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Colima" -Skip:($os.IsVentura -or $os.IsSonoma) {
|
||||
It "Colima" {
|
||||
"colima version" | Should -ReturnZeroExitCode
|
||||
Describe "Unxip" {
|
||||
It "Unxip" {
|
||||
"unxip --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
|
||||
|
||||
$os = Get-OSVersion
|
||||
|
||||
Describe "MongoDB" -Skip:($os.IsVentura -or $os.IsSonoma) {
|
||||
Describe "MongoDB" -Skip:($os.IsVentura -or $os.IsSonoma -or $os.IsSequoia) {
|
||||
It "<ToolName>" -TestCases @(
|
||||
@{ ToolName = "mongo" }
|
||||
@{ ToolName = "mongod" }
|
||||
@@ -12,7 +12,7 @@ Describe "MongoDB" -Skip:($os.IsVentura -or $os.IsSonoma) {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "PostgreSQL" -Skip:($os.IsVentura -or $os.IsSonoma) {
|
||||
Describe "PostgreSQL" -Skip:($os.IsVentura -or $os.IsSonoma -or $os.IsSequoia) {
|
||||
It "PostgreSQL version should correspond to the version in the toolset" {
|
||||
$toolsetVersion = (Get-ToolsetContent).postgresql.version
|
||||
# Client version
|
||||
|
||||
@@ -6,7 +6,7 @@ Describe "Git" {
|
||||
It "git is installed" {
|
||||
"git --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
It "git lfs is installed" -Skip:($os.IsBigSur) {
|
||||
It "git lfs is installed" {
|
||||
"git lfs version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
|
||||
|
||||
$os = Get-OSVersion
|
||||
|
||||
Describe "Haskell" -Skip:($os.IsVentura -or $os.IsSonoma) {
|
||||
Context "GHCup" {
|
||||
It "GHCup" {
|
||||
"ghcup --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
Context "GHC" {
|
||||
It "GHC" {
|
||||
"ghc --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
Context "Cabal" {
|
||||
It "Cabal" {
|
||||
"cabal --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
Context "Stack" {
|
||||
It "Stack" {
|
||||
"stack --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
It "Stack hook is not installed" {
|
||||
"$HOME/.stack/hooks/ghc-install.sh" | Should -Not -Exist
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@ Import-Module "$PSScriptRoot/Helpers.psm1" -DisableNameChecking
|
||||
|
||||
$os = Get-OSVersion
|
||||
|
||||
Describe "SwiftLint" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64) {
|
||||
Describe "SwiftLint" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoiaArm64) {
|
||||
It "SwiftLint" {
|
||||
"swiftlint version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
|
||||
Import-Module "$PSScriptRoot/Helpers.psm1" -DisableNameChecking
|
||||
|
||||
$os = Get-OSVersion
|
||||
|
||||
BeforeAll {
|
||||
function Get-ShortSymlink {
|
||||
param (
|
||||
[string] $Version
|
||||
)
|
||||
|
||||
$versionParts = $Version.Split(".")
|
||||
return [String]::Join(".", $versionParts[0..1])
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Mono" -Skip:($os.IsSequoia) {
|
||||
$MONO_VERSIONS_PATH = "/Library/Frameworks/Mono.framework/Versions"
|
||||
$monoToolsetVersion = @((Get-ToolsetContent).mono.framework.version)
|
||||
$versionFolderPath = Join-Path $MONO_VERSIONS_PATH ([System.Version]::Parse($monoToolsetVersion).ToString(3))
|
||||
$testCase = @{ MonoVersion = $monoToolsetVersion; VersionFolderPath = $versionFolderPath; MonoVersionsPath = $MONO_VERSIONS_PATH }
|
||||
|
||||
It "is installed" -TestCases $testCase {
|
||||
param ( [string] $VersionFolderPath )
|
||||
|
||||
$monoBinPath = Join-Path $VersionFolderPath "bin" "mono"
|
||||
$VersionFolderPath | Should -Exist
|
||||
$monoBinPath | Should -Exist
|
||||
}
|
||||
|
||||
It "is available via short link" -TestCases $testCase {
|
||||
param (
|
||||
[string] $MonoVersion,
|
||||
[string] $MonoVersionsPath,
|
||||
[string] $VersionFolderPath
|
||||
)
|
||||
|
||||
$shortSymlink = Get-ShortSymlink $MonoVersion # only 'major.minor'
|
||||
$shortSymlinkFolderPath = Join-Path $MonoVersionsPath $shortSymlink
|
||||
if ($shortSymlink -eq "4.8") { return } # Skip this test for Mono 4.8 because it doesn't contain VERSION file
|
||||
$shortVersionPath = Join-Path $shortSymlinkFolderPath "VERSION"
|
||||
$fullVersionPath = Join-Path $VersionFolderPath "VERSION"
|
||||
Confirm-IdenticalFileContent -File1 $shortVersionPath -File2 $fullVersionPath
|
||||
}
|
||||
|
||||
It "NUnit console is installed" -TestCases $testCase {
|
||||
param ( [string] $VersionFolderPath )
|
||||
|
||||
$nunitPath = Join-Path $VersionFolderPath "Commands" "nunit3-console"
|
||||
$nunitPath | Should -Exist
|
||||
}
|
||||
|
||||
It "Nuget is installed" -TestCases $testCase {
|
||||
param ( [string] $VersionFolderPath )
|
||||
|
||||
$nugetBinaryPath = Join-Path $VersionFolderPath "lib" "mono" "nuget" "nuget.exe"
|
||||
$nugetBinaryWrapperPath = Join-Path $VersionFolderPath "bin" "nuget"
|
||||
$nugetCommandPath = Join-Path $VersionFolderPath "Commands" "nuget"
|
||||
$nugetBinaryPath | Should -Exist
|
||||
$nugetCommandPath | Should -Exist
|
||||
$nugetBinaryWrapperPath | Should -Exist
|
||||
}
|
||||
|
||||
It "Nuget is valid" -TestCases $testCase {
|
||||
param ( [string] $VersionFolderPath )
|
||||
|
||||
$nugetBinaryWrapperPath = Join-Path $VersionFolderPath "bin" "nuget"
|
||||
"$nugetBinaryWrapperPath" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
It "MSBuild is available" {
|
||||
"msbuild -version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user