Compare commits

..

147 Commits

Author SHA1 Message Date
Image generation service account. dd9ae9f1b5 Updating readme file for win22 version 20240218.2.1 2024-02-20 12:15:18 +00:00
Mikhail Koliada 9813840059 Update README.md (#9362) 2024-02-19 11:30:42 +01:00
Alexey-Ayupov 395174881d [Windows] Update downloadsPageUrl for mysql (#9359) 2024-02-17 17:59:40 +01:00
Shamil Mubarakshin ca82d0a325 [ubuntu] Fix error message redirection in install.sh (#9324) 2024-02-15 18:55:11 +01:00
Mikhail Koliada deba4d6cd5 README: recommend always using main for custom images (#8946) 2024-02-15 18:43:53 +01:00
Alexey-Ayupov 1812c0ce71 [macOS] Add libsodium to the macOS-14 (#9350) 2024-02-15 12:20:54 +01:00
sergei-pyshnoi 61a8703bd1 [Windows] update VS signature (#9348) 2024-02-15 12:13:24 +01:00
Alexey-Ayupov b9da7c8a76 [Ubuntu] update docker version (#9352) 2024-02-15 12:12:11 +01:00
Shamil Mubarakshin b33a106fb9 [ubuntu] Remove quoted PATH from /etc/environment (#9347)
* [ubuntu] Remove quoted PATH from /etc/environment

* Update quotes handling in replace_etc_environment_variable()
2024-02-14 12:09:49 +01:00
github-actions[bot] 8a4dc5b0f6 Updating readme file for win19 version 20240211.1.1 (#9340)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-02-14 08:41:32 +00:00
github-actions[bot] 7535fb59ff Updating readme file for macos-13 version 20240204.1 (#9292)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-02-14 01:18:08 +00:00
github-actions[bot] 0202f4b94c Updating readme file for ubuntu20 version 20240212.2.1 (#9339)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-02-13 14:13:03 +00:00
github-actions[bot] cda60174f7 Updating readme file for win22 version 20240211.1.1 (#9338)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-02-13 12:55:47 +00:00
github-actions[bot] e579fdb9e6 Updating readme file for ubuntu22 version 20240212.1.1 (#9337)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
2024-02-13 12:47:12 +00:00
Shamil Mubarakshin 13d5100df5 Pin syft for SBOM report to v0.100.0 (#9334) 2024-02-12 10:57:50 +01:00
github-actions[bot] d84718d23e Updating readme file for macos-13-arm64 version 20240204.1 (#9291)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-02-09 21:11:36 +00:00
github-actions[bot] 0390d98adc Updating readme file for macOS-12 version 20240202.1 (#9297)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-02-09 15:31:51 +00:00
sergei-pyshnoi e844facbb9 [Ubuntu] add go 1.22 (#9319) 2024-02-08 22:39:59 +01:00
sergei-pyshnoi fb980e9751 [Windows] add go 1.22 (#9321) 2024-02-08 22:39:27 +01:00
sergei-pyshnoi 04da57c694 [macOS] add go 1.22 (#9320) 2024-02-08 22:38:51 +01:00
github-actions[bot] 68d16ce43c Updating readme file for win22 version 20240204.1.1 (#9293)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-02-08 19:09:28 +00:00
Mikhail Koliada 213dba8dd6 [macOS] remove unused go version from toolset (#9322) 2024-02-08 14:56:43 +01:00
github-actions[bot] bd5782ca77 Updating readme file for ubuntu22 version 20240204.1.1 (#9299)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-02-07 23:40:58 +00:00
MaksimZhukov 0b5f4562aa [Ubuntu] Update version of libssl (#9311) 2024-02-07 15:37:57 +01:00
github-actions[bot] b99ee7f44e Updating readme file for ubuntu20 version 20240204.1.1 (#9295)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-02-07 14:23:13 +00:00
github-actions[bot] 3151c92d25 Updating readme file for win19 version 20240204.1.1 (#9294)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-02-07 13:24:30 +00:00
Ikko Eltociear Ashimine 5d5f63b19a [ubuntu] Fix typo in install-bazel.sh (#9276)
instal -> install
2024-02-06 12:19:39 +01:00
Mikhail Koliada 82095c6197 [macOS] make naming schema & README granular (#9300) 2024-02-05 20:42:05 +01:00
Alexey-Ayupov 33261492c5 [macOS] Add toolcache to the macOS 14 (#9274) 2024-02-05 18:16:30 +01:00
github-actions[bot] 3387580469 Updating readme file for ubuntu22 version 20240201.1.1 (#9275)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
2024-02-04 02:09:04 +00:00
github-actions[bot] b8d3d784e4 Updating readme file for ubuntu20 version 20240131.1.1 (#9271)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
2024-02-02 02:49:53 +00:00
Erik Bershel a8d9540421 [macOS] Remove Xcode 15.3 Beta release due to the issues with simulators (#9270) 2024-02-01 14:03:59 +01:00
github-actions[bot] be3dd8b0dd macOS 11 (20240127) Image Update (#9248)
* Updating readme file for macOS-11 version 20240127.1

* Update images/macos/macos-11-Readme.md

Co-authored-by: Erik Bershel <110455084+erik-bershel@users.noreply.github.com>

---------

Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Mikhail Koliada <88318005+mikhailkoliada@users.noreply.github.com>
Co-authored-by: Erik Bershel <110455084+erik-bershel@users.noreply.github.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-02-01 12:46:24 +00:00
Erik Bershel ee179c70f2 [Ubuntu] Update Docker installer script (#9232) 2024-02-01 13:46:06 +01:00
github-actions[bot] 03c4d84bba Updating readme file for macOS-12 version 20240127.1 (#9246)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-02-01 11:10:15 +00:00
github-actions[bot] 36b3a6c458 Updating readme file for ubuntu20 version 20240126.1.1 (#9244)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-02-01 10:15:40 +00:00
github-actions[bot] 5a9870800d Updating readme file for ubuntu22 version 20240126.1.1 (#9245)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-31 22:58:21 +00:00
github-actions[bot] 218c157acc Updating readme file for win19 version 20240128.1.1 (#9247)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-31 15:54:28 +00:00
Erik Bershel 9547a10a19 [Windows] Visual Studio 2022 signature updated (#9261) 2024-01-31 14:44:38 +01:00
github-actions[bot] 6f1fa8953f Updating readme file for win22 version 20240128.1.1 (#9243)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-31 12:37:15 +00:00
Mikhail Koliada 37a171e44d [macOS] Add OS14 READMEs (#9253) 2024-01-30 16:21:29 +01:00
Steve-Glass 5418817c5f Update README.md (#9252) 2024-01-30 16:00:14 +01:00
Steve-Glass 2d19e2799a Update for OS 14 Public Beta (#9179) 2024-01-30 15:08:42 +01:00
Mikhail Koliada 52777b1081 Add macOS 14 and macOS 14 Arm64 labels (#9250) 2024-01-30 13:10:04 +01:00
Erik Bershel 14e41b1b5b [macOS] Remove Composer version from macOS 11 doc due to previous tool removal (#9249) 2024-01-30 13:06:25 +01:00
Mikhail Koliada 3243ea36ef [Ubuntu] reduce disks size in packer template (#9251) 2024-01-30 13:05:32 +01:00
github-actions[bot] 6308849b25 Updating readme file for macos-13-arm64 version 20240114.1 (#9170)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-27 14:54:20 +01:00
Shamil Mubarakshin 8f1339b65b [macos11] Remove php package (#9237) 2024-01-27 11:05:44 +01:00
Shamil Mubarakshin 47e2999afb [macos] Add Xcode 15.3 Beta (#9239) 2024-01-26 22:41:19 +01:00
Erik Bershel 74ed9d7d83 [macOS] Unpin AzCopy version to latest (#9234) 2024-01-26 17:19:27 +01:00
Mikhail Koliada 83c984cdd9 README: temp removal of rollout badges (#9240) 2024-01-26 14:25:50 +01:00
Erik Bershel 17b9f1e582 [Ubuntu] Unpin AzCopy version to latest (#9233) 2024-01-26 11:52:45 +01:00
Shamil Mubarakshin 237618d14f [macos11] Remove imagemagick package (#9229) 2024-01-26 10:33:21 +01:00
github-actions[bot] 8d5da63ac4 Updating readme file for ubuntu22 version 20240122.3.1 (#9214)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-25 14:34:43 +00:00
github-actions[bot] 0b56eac4f1 Updating readme file for win22 version 20240122.1.1 (#9213)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-25 14:12:32 +00:00
github-actions[bot] 022efa3751 Updating readme file for win19 version 20240122.1.1 (#9212)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-25 12:45:03 +00:00
github-actions[bot] 96659c7d44 Updating readme file for ubuntu20 version 20240122.3.1 (#9211)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-25 11:25:12 +00:00
github-actions[bot] 07fa737c4c Updating readme file for macOS-12 version 20240119.1 (#9206)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-25 10:57:40 +00:00
Shamil Mubarakshin 4637c23381 Add secondary MacOs image generation pipelines (#9218) 2024-01-25 10:51:07 +01:00
Shamil Mubarakshin a9c5653066 [macos] Update PowerShell Core to 7.4.x (#9224) 2024-01-25 10:23:55 +01:00
Shamil Mubarakshin a6643f8ce6 [windows] Update PowerShell Core to 7.4.x (#9223)
* [windows] Update PowerShell Core to 7.4.x

* Update CosmosDB Emulator signature
2024-01-25 10:22:30 +01:00
Shamil Mubarakshin 807eb76cfc [ubuntu] Update PowerShell Core to 7.4.x (#9222) 2024-01-24 19:01:47 +01:00
github-actions[bot] ba3718b5d8 Updating readme file for macOS-11 version 20240113.1 (#9168)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-24 09:48:57 +00:00
Shamil Mubarakshin d622d2bc2e [macos] Fix links in preimage data (#9204) 2024-01-23 18:17:44 +01:00
Erik Bershel cbc79f8a0c [Ubuntu] Pin Docker 24.0.7 to avoid bugs (#9205)
* [Ubuntu] Pin Docker 24.0.7 to avoid bugs

* Fix character escaping for jq

* Fix order of install
2024-01-23 14:44:07 +01:00
Erik Bershel 097e28c9d7 [Windows] Pin Docker 24.0.7 to avoid bugs (#9208)
* [Windows] Pin Docker 24.0.7 to avoid bugs

* Fix typos, avoid using special characters
2024-01-22 21:29:42 +01:00
github-actions[bot] 17d89dbd74 Updating readme file for macos-13 version 20240114.1 (#9169)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-19 01:31:47 +00:00
github-actions[bot] 299257c4bc Updating readme file for win22 version 20240116.1.1 (#9185)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-18 23:35:26 +00:00
Alexey-Ayupov 9eea2470fb [macOS] Get rid of unused software in macOS 14 (#9191) 2024-01-19 00:01:52 +01:00
github-actions[bot] 55a6d9d687 Updating readme file for win19 version 20240116.2.1 (#9186)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-18 16:47:12 +00:00
github-actions[bot] 6c52c5a744 Updating readme file for ubuntu20 version 20240116.2.1 (#9180)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-18 12:12:04 +00:00
github-actions[bot] 10cbb27509 Updating readme file for ubuntu22 version 20240116.3.1 (#9181)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-18 10:40:14 +00:00
sergei-pyshnoi 8943e98be1 fix vs signature for windows-2022 (#9189) 2024-01-18 10:48:42 +01:00
Alexey-Ayupov 76ad0eb3d6 [macOS] Get rid of unused software in macOS 13 (#9187) 2024-01-18 10:41:59 +01:00
Mikhail Koliada 192a94d178 Update LICENSE (Happy 2024!) (#9183) 2024-01-17 10:56:11 +01:00
sergei-pyshnoi f046bcaec3 [Windows] pin docker compose version (#9174) 2024-01-16 16:53:44 +01:00
sergei-pyshnoi c40e9d7d53 [Ubuntu] Pin docker compose 2.23.3 (#9173) 2024-01-16 15:39:13 +01:00
Shamil Mubarakshin 4d310f0a59 Cleanup json formatted packer template references (#9165) 2024-01-15 16:40:23 +01:00
github-actions[bot] 5ee9ae1e60 Updating readme file for macOS-12 version 20240105.3 (#9128)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-15 15:07:54 +00:00
Shamil Mubarakshin ba2e955e0b [macos] Add path variables to packer templates (#9155)
* Update macos-12.pkr.hcl template

* Update remaining macos templates

* Update Get-ToolsetContent and get_toolset_value functions

* Fix ~ symbol expansion issues

* Fix bad path in macOS-14.arm64.anka.pkr.hcl
2024-01-15 12:21:24 +01:00
Alexey-Ayupov 2a7ca2e6a2 [Ubuntu] Add predefined variable to skip test in the pipeline (#9153) 2024-01-15 11:57:43 +01:00
Shamil Mubarakshin ebef5f5fee [windows] Add dynamic path for Get-ToolsetContent (#9147)
* [windows] Add dynamic path for Get-ToolsetContent

* Add missing variable in win22 template
2024-01-12 12:31:21 +01:00
github-actions[bot] cb77fa2a64 Updating readme file for macos-13 version 20240106.8 (#9127)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-12 09:37:47 +00:00
Alexey-Ayupov b3ae9702f7 [Windows] Exclude KB5034439 from windows updates (#9149) 2024-01-11 19:25:36 +01:00
MaksimZhukov b6b0130a7d Add Xcode 15.2 (#9145) 2024-01-11 12:29:56 +01:00
github-actions[bot] b56952d51e Updating readme file for ubuntu22 version 20240107.1.1 (#9124) 2024-01-11 12:16:41 +01:00
github-actions[bot] 17d0f979ab Updating readme file for win22 version 20240108.1.1 (#9137) 2024-01-11 12:15:27 +01:00
sergei-pyshnoi b4635a0ab9 [windows] fix signature for vs and dacfx (#9143) 2024-01-11 10:55:56 +01:00
github-actions[bot] d5d2dd7704 Updating readme file for macos-13-arm64 version 20240107.1 (#9126)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-11 06:24:59 +00:00
Shamil Mubarakshin a89e382279 [ubuntu] Fix pwsh installation for ubuntu-minimal (#9144) 2024-01-10 13:59:08 +01:00
github-actions[bot] 10ddf030ed Updating readme file for win19 version 20240108.2.1 (#9135)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-10 12:28:32 +00:00
github-actions[bot] 4d5381bd21 Updating readme file for ubuntu20 version 20240107.1.0 (#9125)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2024-01-10 11:38:07 +00:00
Shamil Mubarakshin c40faf56bf [ubuntu] Fix static path in install.sh (#9138) 2024-01-10 10:41:11 +01:00
sergei-pyshnoi ec4e51233f [Windows] Fix signature for azure cli (#9134)
* fix signature for azure cli

* disable edge auto updates
2024-01-09 20:05:02 +01:00
Alexey-Ayupov 5a6e215859 [macOS] Refactor the rest of the scripts (#9113)
* [macOS] Refactor the rest of the scripts

* Return quotes to config tccdb script

* Return quotes to config tccdb script

* Revert some changes in ruby scripts

* Revert some changes in ruby scripts

* Revert some changes chrome script

* check errors

* check errors 01

* find errors in common-utils

* find errors in edge install

* find errors in edge install

---------

Co-authored-by: Alexey Ayupov <“alexey.ayupov@akvelon.com”>
2024-01-09 14:47:31 +01:00
sergei-pyshnoi 5bdda2e8c2 [Windows] Update signature for Edge driver (#9123)
* update signature for Edge driver

* Update Install-EdgeDriver.ps1

* fix comment

* add signature for different versions
2024-01-09 11:44:03 +01:00
Alexey-Ayupov 4b8f0f965c [Ubuntu] Increase threshold in the Disk free space test (#9109) 2024-01-05 14:00:08 +01:00
Shamil Mubarakshin 4960fde8f7 [macos] Convert packer templates to HCL2 (#9098)
* [macos] Convert packer templates to HCL2

* Fix inline shell provisioner

* Fix folder name

* Fix bootstrap folder copy
2024-01-05 12:29:46 +01:00
Alexey-Ayupov 9da2ec6b06 [macOS] Update SoftwareReport scripts (#9092) 2024-01-04 10:46:00 +01:00
Alexey-Ayupov 83fbf5a752 [macOS] Remove old android SDK versions (#9096) 2024-01-04 10:36:19 +01:00
Alexey-Ayupov f36abbb92b [Windows] Remove old android SDK versions (#9095) 2024-01-04 10:35:37 +01:00
Alexey-Ayupov a9b737bac5 [Ubuntu] Remove old android SDK versions (#9094) 2024-01-03 21:21:02 +01:00
Alexey-Ayupov 20d2e9821f [Ubuntu] Remove buildpack-deps docker images (#9093) 2024-01-03 12:07:53 +01:00
Shamil Mubarakshin 266f9413d3 [ubuntu] Remove apt-key from build scripts (#9082) 2023-12-29 18:11:55 +01:00
Shamil Mubarakshin 1658c2e905 [ubuntu] Cleanup bash scripts (#9076)
* [ubuntu] Cleanup bash scripts

* Fix ms-repos lsb_release

* Fix install-bicep url

* Fix install-nvm
2023-12-29 12:36:27 +01:00
Mikhail Koliada e16b5524ff [macOS] distinguish Arm64/M1 in the template (#9075) 2023-12-28 11:19:26 +01:00
Mikhail Koliada 34b6b3172f [windows] pin pwsh in toolset (#9072) 2023-12-28 11:18:57 +01:00
Shamil Mubarakshin e9057a22fc [ubuntu] Refactor PowerShell build scripts (#9064)
* [ubuntu] Refactor PowerShell build scripts

* Add Module import

* Add Invoke-DownloadWithRetry function

* Fix temp download dir

* Update function to Add-GlobalEnvironmentVariable
2023-12-27 18:39:58 +01:00
Mikhail Koliada 62aeae3a20 [macOS] pin pwsh-core in toolset (#9070) 2023-12-27 16:00:04 +01:00
Alexey-Ayupov 62a46d0fd8 [Windows] Update the Packer version output (#9067) 2023-12-27 10:44:43 +01:00
Shamil Mubarakshin 503ae89818 [ubuntu] Refactor bash functions (#9055) 2023-12-26 12:50:52 +01:00
Erik Bershel d16bc5f120 Fix SBOM workflow first step name (#9065) 2023-12-26 11:26:20 +01:00
Shamil Mubarakshin 694536d87f [ubuntu] Refactor functions for GitHub assets and hashes (#9040) 2023-12-25 19:47:58 +01:00
github-actions[bot] 08d10be70d Updating readme file for macos-13-arm64 version 20231218.3 (#9048)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
2023-12-22 16:30:48 +01:00
Shamil Mubarakshin 50c8126f76 [windows] Update signature for Edge Web Driver (#9056) 2023-12-22 10:12:43 +01:00
sergei-pyshnoi c46c9c7f7d [MacOS] Fix rules for screencapture (#9052)
* fix rule for screen capture

* Update configure-tccdb-macos.sh

* rollback changes
2023-12-21 19:57:37 +01:00
Erik Bershel e969572ffb [macOS] Add Xcode 15.2 Beta (#9050) 2023-12-21 19:43:31 +01:00
Alexey-Ayupov ed3d2204db [macOS] refactor utils.sh and related scripts (#8998)
* Update Software Report to support azcopy output

* Update util.sh and related scripts

* Remove rosetta test from the script

* Update mono script

* clean up

* remove condition from install pipx script

* Update scripts according to comments

---------

Co-authored-by: Alexey Ayupov <“alexey.ayupov@akvelon.com”>
2023-12-21 14:48:28 +01:00
Erik Bershel 43e3d8bfc6 Revert "[Ubuntu] Force ruby gem to check gems (#9022)" (#9054)
This reverts commit 1f11cd7e17.
2023-12-20 22:51:25 +01:00
github-actions[bot] dec20a5272 Updating readme file for macos-13 version 20231218.2 (#9049)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2023-12-20 21:32:31 +00:00
github-actions[bot] 087fb382a8 Windows Server 2022 (20231217) Image Update (#9043)
* Updating readme file for win22 version 20231217.2.1

* Update Windows2022-Readme.md

* Update Windows2022-Readme.md

---------

Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Alexey-Ayupov <116575425+Alexey-Ayupov@users.noreply.github.com>
Co-authored-by: Mikhail Koliada <88318005+mikhailkoliada@users.noreply.github.com>
Co-authored-by: Actions service account <no-reply@github.com>
2023-12-20 16:00:30 +00:00
github-actions[bot] 6b0f6eb184 Updating readme file for ubuntu20 version 20231217.2.0 (#9045)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2023-12-20 15:58:31 +00:00
github-actions[bot] 28be760bba Updating readme file for ubuntu22 version 20231217.2.1 (#9044)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2023-12-20 15:51:32 +00:00
github-actions[bot] 522c8fb680 Windows Server 2019 (20231217) Image Update (#9046)
* Updating readme file for win19 version 20231217.2.1

* Update Windows2019-Readme.md

* Update Windows2019-Readme.md

---------

Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Mikhail Koliada <88318005+mikhailkoliada@users.noreply.github.com>
Co-authored-by: Actions service account <no-reply@github.com>
2023-12-20 15:37:11 +00:00
github-actions[bot] 045b46c8c1 Updating readme file for macOS-12 version 20231216.1 (#9042)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2023-12-20 12:13:45 +00:00
github-actions[bot] 0298168e00 Updating readme file for macOS-11 version 20231216.1 (#9041)
Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Actions service account <no-reply@github.com>
2023-12-20 11:57:26 +00:00
Erik Bershel 1f11cd7e17 [Ubuntu] Force ruby gem to check gems (#9022)
* [Ubuntu] Force ruby gem to check gems

* High to Medium Security for unsigned gems
2023-12-19 12:14:39 +01:00
Shamil Mubarakshin 50f736491f [windows] Update signature for Edge Web Driver (#9036) 2023-12-16 20:00:54 +01:00
Alexey-Ayupov 5d6e226c1d [macOS] Fix Nunit version in the mono conf file (#9028)
* Update Software Report to support azcopy output

* [macOS] Fix nunit version in the mono conf file

* [macOS] temporary Nunit version fix

* Fix typo

---------

Co-authored-by: Alexey Ayupov <“alexey.ayupov@akvelon.com”>
2023-12-15 19:29:17 +01:00
sergei-pyshnoi 7fe17c7614 [MacOS] Pin sha256 for xcode (#9007)
* pin sha256 for xcode

* add sha256 for xcode 15.1
2023-12-15 16:44:17 +01:00
github-actions[bot] 1cb43238b5 macOS 11 (20231211) Image Update (#9013)
* Updating readme file for macOS-11 version 20231211.2

* Update macos-11-Readme.md

---------

Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Mikhail Koliada <88318005+mikhailkoliada@users.noreply.github.com>
Co-authored-by: Actions service account <no-reply@github.com>
2023-12-15 15:43:26 +00:00
github-actions[bot] 2633fdfcc4 macOS 12 (20231211) Image Update (#9012)
* Updating readme file for macOS-12 version 20231211.1

* Update macos-12-Readme.md

---------

Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Mikhail Koliada <88318005+mikhailkoliada@users.noreply.github.com>
Co-authored-by: Actions service account <no-reply@github.com>
2023-12-15 14:55:37 +00:00
Erik Bershel 5e4039478f Fix macOS CI - clean images updates (#9032) 2023-12-15 12:16:58 +01:00
ilia-shipitsin 9e49d08492 [macos] add XCode-15.1 (#9002) 2023-12-15 11:28:43 +01:00
sergei-pyshnoi 62536f12ed pin sha for macos packages (#9001) 2023-12-15 11:28:17 +01:00
github-actions[bot] eed37c2c66 Windows Server 2022 (20231211) Image Update (#9000)
* Updating readme file for win22 version 20231211.1.1

* Update Windows2022-Readme.md

---------

Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Alexey-Ayupov <116575425+Alexey-Ayupov@users.noreply.github.com>
Co-authored-by: Actions service account <no-reply@github.com>
2023-12-15 01:34:17 +00:00
Erik Bershel cd286f70f7 [Windows] Force Chocolatey to check packages hashes (#9020) 2023-12-15 00:28:36 +01:00
ilia-shipitsin 1921245719 [windows] pin checksum where avaiable (#9005)
Related: https://github.com/actions/runner-images-internal/issues/5489
2023-12-14 20:57:47 +01:00
github-actions[bot] 3945d6e7dc Ubuntu 20.04 (20231211) Image Update (#8992)
* Updating readme file for ubuntu20 version 20231211.1.0

* Update Ubuntu2004-Readme.md

---------

Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Mikhail Koliada <88318005+mikhailkoliada@users.noreply.github.com>
Co-authored-by: Actions service account <no-reply@github.com>
2023-12-14 19:03:34 +00:00
Shamil Mubarakshin dbb10c67ba [ubuntu] Refactor pester tests (#9006)
* [ubuntu] Refactor pester tests

* Fix key name and add BeforeAll

* Fix ActionArchiveCache test
2023-12-14 17:33:34 +01:00
github-actions[bot] 2179765026 Windows Server 2019 (20231211) Image Update (#9004)
* Updating readme file for win19 version 20231211.1.1

* Update Windows2019-Readme.md

---------

Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Alexey-Ayupov <116575425+Alexey-Ayupov@users.noreply.github.com>
Co-authored-by: Actions service account <no-reply@github.com>
2023-12-14 12:02:37 +00:00
github-actions[bot] d631f76f8b Ubuntu 22.04 (20231211) Image Update (#8993)
* Updating readme file for ubuntu22 version 20231211.1.1

* Update Ubuntu2204-Readme.md

---------

Co-authored-by: Image generation service account <no-reply@microsoft.com>
Co-authored-by: Mikhail Koliada <88318005+mikhailkoliada@users.noreply.github.com>
Co-authored-by: Actions service account <no-reply@github.com>
2023-12-14 10:39:44 +00:00
Erik Bershel e6a69f4bd1 [macOS] Update AzCopy installer to install 10.21.2 version (#9003) 2023-12-14 11:06:59 +01:00
ilia-shipitsin 9f3cf00bb3 [windows] fix extracting checksum for Miniconda installer (#9025) 2023-12-14 11:05:36 +01:00
Shamil Mubarakshin 3f2b0e2afc Pin Azure plugin version for packer (#9019) 2023-12-14 09:19:20 +01:00
Shamil Mubarakshin a5519ebed0 [ubuntu] Change packer templates from json to hcl (#8991)
* [ubuntu] Change packer tempaltes from json to hcl

* Add packer init

* Fix variable types for Ubuntu20 template
2023-12-13 09:19:03 +01:00
Shamil Mubarakshin ea64263b41 [windows] Change packer templates from json to hcl (#8999) 2023-12-13 09:17:44 +01:00
235 changed files with 6168 additions and 5208 deletions
+3
View File
@@ -41,6 +41,9 @@ body:
- label: macOS 11
- label: macOS 12
- label: macOS 13
- label: macOS 13 Arm64
- label: macOS 14
- label: macOS 14 Arm64
- label: Windows Server 2019
- label: Windows Server 2022
- type: textarea
+3
View File
@@ -24,6 +24,9 @@ body:
- label: macOS 11
- label: macOS 12
- label: macOS 13
- label: macOS 13 Arm64
- label: macOS 14
- label: macOS 14 Arm64
- label: Windows Server 2019
- label: Windows Server 2022
- type: textarea
+3
View File
@@ -62,6 +62,9 @@ body:
- label: macOS 11
- label: macOS 12
- label: macOS 13
- label: macOS 13 Arm64
- label: macOS 14
- label: macOS 14 Arm64
- label: Windows Server 2019
- label: Windows Server 2022
- type: textarea
+3 -3
View File
@@ -20,7 +20,7 @@ jobs:
check_status: ${{ steps.check.outputs.status }}
runs-on: ubuntu-latest
steps:
- name: Check release
- name: Check release for ${{ github.event.client_payload.ReleaseBranchName }}
id: check
shell: pwsh
run: |
@@ -55,10 +55,10 @@ jobs:
}
- name: Install SYFT tool on Windows
if: ${{ runner.os == 'Windows' }}
run: curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b D:/syft
run: curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b D:/syft v0.100.0
- 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
run: curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin v0.100.0
#Running section.
- name: Run SYFT on Windows
if: ${{ runner.os == 'Windows' }}
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2023 GitHub
Copyright (c) 2024 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
+21 -9
View File
@@ -19,15 +19,18 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
## Available Images
| Image | YAML Label | Included Software | Rollout Progress of Latest Image Release |
| --------------------|---------------------|--------------------|---------------------|
| Ubuntu 22.04 | `ubuntu-latest` or `ubuntu-22.04` | [ubuntu-22.04] | [![status22](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=ubuntu22&badge=1)](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=ubuntu22&redirect=1)
| Ubuntu 20.04 | `ubuntu-20.04` | [ubuntu-20.04] | [![status20](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=ubuntu20&badge=1)](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=ubuntu20&redirect=1)
| macOS 13 [beta] | `macos-13` or `macos-13-xl`| [macOS-13] | [![statusumac13](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=macos-13&badge=1)](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=macos-13&redirect=1)
| macOS 12 | `macos-latest`, `macos-latest-xl`, `macos-12`, or `macos-12-xl`| [macOS-12] | [![statusumac12](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=macos-12&badge=1)](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=macos-12&redirect=1)
| macOS 11 | `macos-11`| [macOS-11] | [![statusmac11](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=macos-11&badge=1)](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=macos-11&redirect=1)
| Windows Server 2022 | `windows-latest` or `windows-2022` | [windows-2022] | [![statuswin22](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=windows-2022&badge=1)](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=windows-2022&redirect=1) |
| Windows Server 2019 | `windows-2019` | [windows-2019] | [![statuswin19](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=windows-2019&badge=1)](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=windows-2019&redirect=1)
| Image | YAML Label | Included Software |
| --------------------|---------------------|--------------------|
| Ubuntu 22.04 | `ubuntu-latest` or `ubuntu-22.04` | [ubuntu-22.04] |
| Ubuntu 20.04 | `ubuntu-20.04` | [ubuntu-20.04] |
| macOS 14 [beta] | `macos-14-large`| [macOS-14] |
| macOS 14 Arm64 [beta] | `macos-14` or `macos-14-xlarge`| [macOS-14-arm64] |
| macOS 13 | `macos-13`, `macos-13-large` or `macos-latest-large` | [macOS-13] |
| macOS 13 Arm64 | `macos-13-xlarge` | [macOS-13-arm64] |
| macOS 12 | `macos-latest`,`macos-12` or`macos-12-large`| [macOS-12] |
| macOS 11 [deprecated] | `macos-11`| [macOS-11] |
| Windows Server 2022 | `windows-latest` or `windows-2022` | [windows-2022] |
| Windows Server 2019 | `windows-2019` | [windows-2019] |
### Label scheme
@@ -41,6 +44,9 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
[macOS-11]: https://github.com/actions/runner-images/blob/main/images/macos/macos-11-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
[self-hosted runners]: https://help.github.com/en/actions/hosting-your-own-runners
## Announcements
@@ -199,3 +205,9 @@ For some tools, we always install the latest at the time of the deployment; for
<summary><b><i>How do I request that a new tool be pre-installed on the image?</b></i></summary>
Please create an issue and get an approval from us to add this tool to the image before creating the pull request.
</details>
<details>
<summary><b><i>What branch should I use to build custom image?</b></i></summary>
We strongly encourage customers to build their own images using the main branch.
This repository contains multiple branches and releases that serve as document milestones to reflect what software is installed in the images at certain point of time. Current builds are not idempotent and if one tries to build a runner image using the specific tag it is not guaranteed that the build will succeed.
</details>
+2 -2
View File
@@ -2,7 +2,7 @@
The runner-images project uses [Packer](https://www.packer.io/) to generate disk images for Windows 2019/2022 and Ubuntu 20.04/22.04.
Each image is configured by a JSON or HCL2 Packer template that specifies where to build the image (Azure, in this case),
Each image is configured by a HCL2 Packer template that specifies where to build the image (Azure, in this case),
and what steps to run to install software and prepare the disk.
The Packer process initializes a connection to the Azure subscription using Azure CLI and creates temporary resources
@@ -217,7 +217,7 @@ Where:
- `InstallPassword` - password for the user used to install software (Windows only);
- `Location` - location where resources will be created (e.g., "East US");
- `ImageName` and `ImageResourceGroupName` - name of the resource group where the managed image will be stored;
- `TemplatePath` - path to the Packer template file (e.g., "images/windows/templates/windows-2022.json").
- `TemplatePath` - path to the Packer template file (e.g., "images/windows/templates/windows-2022.pkr.hcl").
### Required variables
+1 -2
View File
@@ -21,7 +21,6 @@ Log into the Azure Portal. Find that resource group under `Resource groups`. Y
## Step 3: Connect to the VM
Select the VM in the resource group. Click `Connect:`
This will download an RDP file. Open that and enter the credentials found in the JSON file you pass to `packer build`:
This will download an RDP file. Open that and enter the credentials found in the HCL2 file you pass to `packer build`:
![VM credentials screenshot](/docs/resources/vmCredentials.png "VM credentials screenshot")
+1 -1
View File
@@ -28,7 +28,7 @@ Function CreateAzureVMFromPackerTemplate {
The location where the Azure virtual machine will be provisioned. Example: "eastus"
.EXAMPLE
CreateAzureVMFromPackerTemplate -SubscriptionId {YourSubscriptionId} -ResourceGroupName {ResourceGroupName} -TemplateFile "C:\BuildVmImages\temporaryTemplate.json" -VirtualMachineName "testvm1" -AdminUsername "shady1" -AdminPassword "SomeSecurePassword1" -AzureLocation "eastus"
CreateAzureVMFromPackerTemplate -SubscriptionId {SubscriptionId} -ResourceGroupName {ResourceGroupName} -VirtualMachineName "testvm1" -ManagedImageName {ManagedImageName} -AdminUsername "shady1" -AdminPassword "SomeSecurePassword1" -AzureLocation "eastus"
#>
param (
[Parameter(Mandatory = $True)]
+24 -37
View File
@@ -19,13 +19,13 @@ Function Get-PackerTemplatePath {
switch ($ImageType) {
# Note: Double Join-Path is required to support PowerShell 5.1
([ImageType]::Windows2019) {
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "windows-2019.json"
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "windows-2019.pkr.hcl"
}
([ImageType]::Windows2022) {
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "windows-2022.json"
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "windows-2022.pkr.hcl"
}
([ImageType]::Ubuntu2004) {
$relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "ubuntu-20.04.json"
$relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "ubuntu-20.04.pkr.hcl"
}
([ImageType]::Ubuntu2204) {
$relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "ubuntu-22.04.pkr.hcl"
@@ -155,7 +155,7 @@ Function GenerateResourcesAndImage {
if ($Force -and $ReuseResourceGroup) {
throw "Force and ReuseResourceGroup cannot be used together."
}
Show-LatestCommit -ErrorAction SilentlyContinue
# Validate packer is installed
@@ -176,30 +176,20 @@ Function GenerateResourcesAndImage {
}
Write-Host "Access to packer generated VM will be restricted to agent IP Address: $AgentIp."
if ($TemplatePath.Contains("pkr.hcl")) {
if ($PSVersionTable.PSVersion.Major -eq 5) {
Write-Verbose "PowerShell 5 detected. Replacing double quotes with escaped double quotes in allowed inbound IP addresses."
$AllowedInboundIpAddresses = '[\"{0}\"]' -f $AgentIp
}
elseif ($PSVersionTable.PSVersion.Major -eq 7 -and $PSVersionTable.PSVersion.Minor -le 2) {
Write-Verbose "PowerShell 7.0-7.2 detected. Replacing double quotes with escaped double quotes in allowed inbound IP addresses."
$AllowedInboundIpAddresses = '[\"{0}\"]' -f $AgentIp
}
else {
$AllowedInboundIpAddresses = '["{0}"]' -f $AgentIp
}
if ($PSVersionTable.PSVersion.Major -eq 5) {
Write-Verbose "PowerShell 5 detected. Replacing double quotes with escaped double quotes in allowed inbound IP addresses."
$AllowedInboundIpAddresses = '[\"{0}\"]' -f $AgentIp
}
elseif ($PSVersionTable.PSVersion.Major -eq 7 -and $PSVersionTable.PSVersion.Minor -le 2) {
Write-Verbose "PowerShell 7.0-7.2 detected. Replacing double quotes with escaped double quotes in allowed inbound IP addresses."
$AllowedInboundIpAddresses = '[\"{0}\"]' -f $AgentIp
}
else {
$AllowedInboundIpAddresses = $AgentIp
$AllowedInboundIpAddresses = '["{0}"]' -f $AgentIp
}
}
else {
if ($TemplatePath.Contains("pkr.hcl")) {
$AllowedInboundIpAddresses = "[]"
}
else {
$AllowedInboundIpAddresses = ""
}
$AllowedInboundIpAddresses = "[]"
}
Write-Debug "Allowed inbound IP addresses: $AllowedInboundIpAddresses."
@@ -216,19 +206,16 @@ Function GenerateResourcesAndImage {
$TagsJson = $TagsJson -replace '"', '\"'
}
Write-Debug "Tags JSON: $TagsJson."
if ($TemplatePath.Contains(".json")) {
Write-Verbose "Injecting tags into packer template."
if ($Tags) {
$BuilderScriptPathInjected = $TemplatePath.Replace(".json", "-temp.json")
$PackerTemplateContent = Get-Content -Path $TemplatePath | ConvertFrom-Json
$PackerTemplateContent.builders | Add-Member -Name "azure_tags" -Value $Tags -MemberType NoteProperty
$PackerTemplateContent | ConvertTo-Json -Depth 3 | Out-File -Encoding Ascii $BuilderScriptPathInjected
$TemplatePath = $BuilderScriptPathInjected
}
}
$InstallPassword = $env:UserName + [System.GUID]::NewGuid().ToString().ToUpper()
Write-Host "Downloading packer plugins..."
& $PackerBinary init $TemplatePath
if ($LastExitCode -ne 0) {
throw "Packer plugins download failed."
}
Write-Host "Validating packer template..."
& $PackerBinary validate `
"-var=client_id=fake" `
@@ -242,7 +229,7 @@ Function GenerateResourcesAndImage {
"-var=allowed_inbound_ip_addresses=$($AllowedInboundIpAddresses)" `
"-var=azure_tags=$($TagsJson)" `
$TemplatePath
if ($LastExitCode -ne 0) {
throw "Packer template validation failed."
}
@@ -290,7 +277,7 @@ Function GenerateResourcesAndImage {
# Resource group already exists, ask the user what to do
$title = "Resource group '$ResourceGroupName' already exists"
$message = "Do you want to delete the resource group and all resources in it?"
$options = @(
[System.Management.Automation.Host.ChoiceDescription]::new("&Yes", "Delete the resource group and all resources in it."),
[System.Management.Automation.Host.ChoiceDescription]::new("&No", "Keep the resource group and continue."),
@@ -346,7 +333,7 @@ Function GenerateResourcesAndImage {
if ($LastExitCode -ne 0) {
throw "Failed to create service principal '$ServicePrincipalName'."
}
$ServicePrincipalAppId = $ServicePrincipal.appId
$ServicePrincipalPassword = $ServicePrincipal.password
$TenantId = $ServicePrincipal.tenant
@@ -383,7 +370,7 @@ Function GenerateResourcesAndImage {
Write-Error $_
} finally {
Write-Verbose "`nCleaning up..."
# Remove ADServicePrincipal and ADApplication
if ($ADCleanupRequired) {
Write-Host "Removing ADServicePrincipal..."
@@ -69,14 +69,7 @@ jobs:
$TemplateDirectoryPath = Join-Path "images" $TemplateDirectoryName | Resolve-Path
$TemplateFileName = "${{ parameters.image_template_name }}"
if ($TemplateFileName) {
$TemplatePath = Join-Path $TemplateDirectoryPath $TemplateFileName
} else {
$TemplatePath = Join-Path $TemplateDirectoryPath "$ImageType.pkr.hcl"
if ( -not (Test-Path $TemplatePath) ) {
$TemplatePath = Join-Path $TemplateDirectoryPath "$ImageType.json"
}
}
$TemplatePath = Join-Path $TemplateDirectoryPath $TemplateFileName
Write-Host "##vso[task.setvariable variable=TemplateDirectoryPath;]$TemplateDirectoryPath"
Write-Host "##vso[task.setvariable variable=TemplatePath;]$TemplatePath"
@@ -18,4 +18,4 @@ jobs:
parameters:
image_type: ubuntu2004
image_readme_name: Ubuntu2004-Readme.md
image_template_name: ubuntu-20.04.json
image_template_name: ubuntu-20.04.pkr.hcl
@@ -18,4 +18,4 @@ jobs:
parameters:
image_type: windows2019
image_readme_name: Windows2019-Readme.md
image_template_name: windows-2019.json
image_template_name: windows-2019.pkr.hcl
@@ -18,4 +18,4 @@ jobs:
parameters:
image_type: windows2022
image_readme_name: Windows2022-Readme.md
image_template_name: windows-2022.json
image_template_name: windows-2022.pkr.hcl
+6 -2
View File
@@ -22,8 +22,6 @@ if (-not (Test-Path $TemplatePath))
$ImageTemplateName = [io.path]::GetFileName($TemplatePath).Split(".")[0]
$InstallPassword = [System.GUID]::NewGuid().ToString().ToUpper()
packer validate -syntax-only $TemplatePath
$SensitiveData = @(
'OSType',
'StorageAccountLocation',
@@ -37,6 +35,12 @@ $SensitiveData = @(
Write-Host "Show Packer Version"
packer --version
Write-Host "Download packer plugins"
packer init $TemplatePath
Write-Host "Validate packer template"
packer validate -syntax-only $TemplatePath
Write-Host "Build $ImageTemplateName VM"
packer build -var "client_id=$ClientId" `
-var "client_secret=$ClientSecret" `
@@ -89,13 +89,6 @@ function Invoke-SoftwareUpdate {
return
}
Write-Host "`t[*] Fetching Software Updates ready to install on '$TemplateName' VM:"
Show-StringWithFormat $newUpdates
$listOfNewUpdates = $($($newUpdates.Split("*")).Split("Title") | Where-Object {$_ -match "Label:"}).Replace("Label: ", '')
Write-Host "`t[*] Installing Software Updates on '$TemplateName' VM:"
Install-SoftwareUpdate -HostName $ipAddress -listOfUpdates $listOfNewUpdates -Password $Password | Show-StringWithFormat
# Check if Action: restart
# Define the next macOS version
$command = "sw_vers"
$guestMacosVersion = Invoke-SSHPassCommand -HostName $ipAddress -Command $command
@@ -103,27 +96,26 @@ function Invoke-SoftwareUpdate {
'12.\d' { $nextOSVersion = 'macOS Ventura|macOS Sonoma' }
'13.\d' { $nextOSVersion = 'macOS Sonoma' }
}
# Make an array of updates
$listOfNewUpdates = $newUpdates.split('*').Trim('')
Write-Host "`t[*] Fetching Software Updates ready to install on '$TemplateName' VM:"
Show-StringWithFormat $newUpdates
$listOfNewUpdates = $($($newUpdates.Split("*")).Split("Title").where({$_ -match "Label:"}).Replace("Label: ", '').where({$_ -notmatch $nextOSVersion}))
Write-Host "`t[*] Installing Software Updates on '$TemplateName' VM:"
Install-SoftwareUpdate -HostName $ipAddress -listOfUpdates $listOfNewUpdates -Password $Password | Show-StringWithFormat
Write-Host "`t[*] Sleep 60 seconds before the software updates have been installed"
Start-Sleep -Seconds 60
Write-Host "`t[*] Waiting for loginwindow process"
Wait-LoginWindow -HostName $ipAddress | Show-StringWithFormat
# Re-enable AutoLogon after installing a new security software update
Invoke-EnableAutoLogon
foreach ($newupdate in $listOfNewUpdates) {
# Will be True if the value is not Venture, not empty, and contains "Action: restart" words
if ($newupdate.Contains("Action: restart") -and !($newupdate -match $nextOSVersion) -and (-not [String]::IsNullOrEmpty($newupdate))) {
Write-Host "`t[*] Sleep 120 seconds before the software updates have been installed"
Start-Sleep -Seconds 120
Write-Host "`t[*] Waiting for loginwindow process"
Wait-LoginWindow -HostName $ipAddress | Show-StringWithFormat
# Re-enable AutoLogon after installing a new security software update
Invoke-EnableAutoLogon
# Check software updates have been installed
$updates = Get-SoftwareUpdate -HostName $ipAddress
if ($updates.Contains("Action: restart") -and !($newupdate -match $nextOSVersion)) {
Write-Host "`t[x] Software updates failed to install: "
Show-StringWithFormat $updates
exit 1
}
# Check software updates have been installed
$updates = Get-SoftwareUpdate -HostName $ipAddress
if ($updates.Contains("Action: restart") -and !($updates -match $nextOSVersion)) {
Write-Host "`t[x] Software updates failed to install: "
Show-StringWithFormat $updates
exit 1
}
}
@@ -136,6 +128,7 @@ function Invoke-SoftwareUpdate {
Invoke-SSHPassCommand -HostName $ipAddress -Command $command | Show-StringWithFormat
}
function Invoke-UpdateSettings {
param (
[Parameter(Mandatory)]
+15 -35
View File
@@ -266,36 +266,13 @@ function Install-SoftwareUpdate {
[array] $listOfUpdates,
[string] $Password
)
# If an update is happening on macOS 12 or 13 we will use the prepared list of updates, otherwise, we will install all updates.
$command = "sw_vers"
$guestMacosVersion = Invoke-SSHPassCommand -HostName $HostName -Command $command
if ($guestMacosVersion[1] -match "12") {
foreach ($update in $listOfUpdates) {
# Filtering updates that contain "Ventura" word
if ($update -notmatch "Ventura") {
$command = "sudo /usr/sbin/softwareupdate --restart --verbose --install '$($update.trim())'"
Invoke-SSHPassCommand -HostName $HostName -Command $command
}
}
} elseif ($guestMacosVersion[1] -match "13") {
$osArch = $(arch)
if ($osArch -eq "arm64") {
Invoke-SoftwareUpdateArm64 -HostName $HostName -Password $Password -ListOfUpdates $listOfUpdates
} else {
foreach ($update in $listOfUpdates) {
# Filtering updates that contain "Sonoma" word
if ($update -notmatch "Sonoma") {
$command = "sudo /usr/sbin/softwareupdate --restart --verbose --install '$($update.trim())'"
Invoke-SSHPassCommand -HostName $HostName -Command $command
}
}
}
# If an update is happening on macOS arm64 we will use the additional tool to install updates.
$osArch = $(arch)
if ($osArch -eq "arm64") {
Invoke-SoftwareUpdateArm64 -HostName $HostName -Password $Password -ListOfUpdates $listOfUpdates
} else {
$osArch = $(arch)
if ($osArch -eq "arm64") {
Invoke-SoftwareUpdateArm64 -HostName $HostName -Password $Password -ListOfUpdates $listOfUpdates
} else {
$command = "sudo /usr/sbin/softwareupdate --all --install --restart --verbose"
foreach ($update in $listOfUpdates) {
$command = "sudo /usr/sbin/softwareupdate --restart --verbose --install '$($update.trim())'"
Invoke-SSHPassCommand -HostName $HostName -Command $command
}
}
@@ -348,14 +325,17 @@ function Invoke-WithRetry {
[int] $RetryCount = 20,
[int] $Seconds = 60
)
while ($RetryCount -gt 0) {
if ($Command) {
$result = & $Command
}
try {
if ($Command) {
$result = & $Command
}
if (& $BreakCondition) {
return $result
if (& $BreakCondition) {
return $result
}
} catch {
Write-Host "`t [!] Error during command execution: $_"
}
$RetryCount--
@@ -4,8 +4,10 @@ jobs:
timeoutInMinutes: 1200
pool:
name: Mac-Cloud Image Generation
demands:
- PrimaryRackAgent -equals ${{ parameters.primary_agent }}
variables:
- group: Mac-Cloud Image Generation
- group: ${{ parameters.variable_group_name }}
steps:
- pwsh: |
@@ -63,6 +65,7 @@ jobs:
'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)" `
+6 -1
View File
@@ -14,10 +14,15 @@ pr:
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.json'
template_path: 'templates/macOS-11.pkr.hcl'
target_datastore: 'ds-image'
variable_group_name: 'Mac-Cloud Image Generation'
primary_agent: 'true'
+6 -1
View File
@@ -14,10 +14,15 @@ pr:
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.json'
template_path: 'templates/macOS-12.pkr.hcl'
target_datastore: 'ds-image'
variable_group_name: 'Mac-Cloud Image Generation'
primary_agent: 'true'
@@ -0,0 +1,23 @@
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'
@@ -0,0 +1,23 @@
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'
@@ -11,7 +11,7 @@ LICENSE_BLOCK
USERNAME="${1}"
PW="${2}"
function kcpasswordEncode {
kcpasswordEncode() {
#ascii string
local thisString="${1}"
local i
@@ -23,7 +23,7 @@ change_framework_version() {
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
@@ -31,7 +31,7 @@ change_framework_version() {
local framework_path=$(get_framework_path "$framework")
if [ -d "${framework_path}/${version}" ]; then
sudo rm -f "${framework_path}/Current"
sudo rm -f ${framework_path}/Current
sudo ln -s "${framework_path}/${version}" "${framework_path}/Current"
else
echo "Invalid framework version ${framework_path}/${version}"
@@ -46,7 +46,7 @@ for arg in "$@"; do
case $key in
--mono | --ios | --android | --mac) change_framework_version $key $value ;;
*)
echo "Invalid parameter <${key}>"
echo "Invalid parameter <${key}>"
exit 1
;;
esac
+87 -91
View File
@@ -1,17 +1,16 @@
| Announcements |
|-|
| [[all OSs] Nodejs 14.x will be removed from the images on November, 26](https://github.com/actions/runner-images/issues/8779) |
| [Major Refactoring of GitHub Actions Runner Images Repository](https://github.com/actions/runner-images/issues/8706) |
| [[All OSes] Powershell Core will be updated to 7.4.x LTS on January, 28](https://github.com/actions/runner-images/issues/9115) |
***
# macOS 11
- OS Version: macOS 11.7.10 (20G1427)
- Kernel Version: Darwin 20.6.0
- Image Version: 20231127.1
- Image Version: 20240127.1
## Installed Software
### Language and Runtime
- .NET Core SDK: 6.0.417, 7.0.102, 7.0.202, 7.0.306, 7.0.404, 8.0.100
- .NET Core SDK: 6.0.418, 7.0.102, 7.0.202, 7.0.306, 7.0.405, 8.0.101
- Bash 3.2.57(1)-release
- Clang/LLVM 13.0.0
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
@@ -21,18 +20,17 @@
- GNU Fortran 10 (Homebrew GCC 10.5.0) - available by `gfortran-10` alias
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
- GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias
- Julia 1.9.4
- Kotlin 1.9.21-release-633
- Go 1.20.11
- Julia 1.10.0
- Kotlin 1.9.22-release-704
- Go 1.20.13
- Mono 6.12.0.188
- Node.js 18.18.2
- Node.js 18.19.0
- MSBuild 16.10.1.51301 (Mono 6.12.0.188)
- NVM 0.39.5
- NVM - Cached node versions: 16.20.2, 18.18.2, 20.10.0
- Perl 5.38.1
- PHP 8.3.0
- NVM 0.39.7
- NVM - Cached node versions: 16.20.2, 18.19.0, 20.11.0
- Perl 5.38.2
- Python 2.7.18
- Python3 3.12.0
- Python3 3.12.1
- R 4.3.2
- Ruby 2.7.8p225
@@ -40,16 +38,15 @@
- Bundler 2.4.22
- Carthage 0.39.1
- CocoaPods 1.14.3
- Composer 2.6.5
- Homebrew 4.1.22
- Miniconda 23.10.0
- NPM 9.8.1
- Homebrew 4.2.5
- Miniconda 23.11.0
- NPM 10.2.3
- NuGet 6.3.1.1
- Pip 20.3.4 (python 2.7)
- Pip3 23.3.1 (python 3.12)
- Pipx 1.2.1
- RubyGems 3.4.22
- Vcpkg 2023 (build from commit 2a01db703)
- Pip3 23.3.2 (python 3.12)
- Pipx 1.4.3
- RubyGems 3.4.10
- Vcpkg 2024 (build from commit 7032c5759)
- Yarn 1.22.19
#### Environment variables
@@ -60,60 +57,59 @@
### Project Management
- Apache Ant 1.10.14
- Apache Maven 3.9.5
- Gradle 8.4
- Sbt 1.9.7
- Apache Maven 3.9.6
- Gradle 8.5
- Sbt 1.9.8
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.21.2
- bazel 6.4.0
- azcopy 10.22.2
- bazel 7.0.2
- bazelisk 1.19.0
- bsdtar 3.3.2 - available by 'tar' alias
- Curl 8.4.0
- Curl 8.5.0
- Git 2.43.0
- Git LFS 3.4.0
- GitHub CLI 2.39.1
- Git LFS 3.4.1
- GitHub CLI 2.42.1
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.21.4
- gpg (GnuPG) 2.4.3
- helm v3.13.2+g2a2fb3b
- ImageMagick 7.1.1-21
- jq 1.7
- gpg (GnuPG) 2.4.4
- helm v3.14.0+g3fc9f4b
- jq 1.7.1
- mongo 5.0.21
- mongod 5.0.21
- Newman 6.0.0
- Newman 6.1.0
- OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.9.4
- pkg-config 0.29.2
- PostgreSQL 14.10 (Homebrew)
- psql (PostgreSQL) 14.10 (Homebrew)
- Sox 14.4.2
- Subversion (SVN) 1.14.2
- Subversion (SVN) 1.14.3
- Switchaudio-osx 1.2.2
- yq 4.40.3
- yq 4.40.5
- zstd 1.5.5
### Tools
- Aliyun CLI 3.0.188
- Aliyun CLI 3.0.197
- App Center CLI 2.14.0
- AWS CLI 2.14.0
- AWS SAM CLI 1.103.0
- AWS Session Manager CLI 1.2.497.0
- Azure CLI 2.54.0
- AWS CLI 2.15.15
- AWS SAM CLI 1.108.0
- AWS Session Manager CLI 1.2.553.0
- Azure CLI 2.56.0
- Azure CLI (azure-devops) 0.26.0
- Bicep CLI 0.23.1
- Cabal 3.6.2.0
- Cmake 3.27.8
- CodeQL Action Bundle 2.15.3
- Fastlane 2.217.0
- Bicep CLI 0.24.24
- Cabal 3.10.2.1
- Cmake 3.28.1
- CodeQL Action Bundle 2.16.1
- Fastlane 2.219.0
- GHC 9.8.1
- GHCup 0.1.20.0
- Jazzy 0.14.4
- Stack 2.13.1
- SwiftFormat 0.52.10
- Swig 4.1.1
- SwiftFormat 0.53.0
- Swig 4.2.0
- Xcode Command Line Tools 13.2.0.0.1.1638488800
### Linters
@@ -123,14 +119,14 @@
### Browsers
- Safari 16.6.1 (16615.3.12.11.5)
- SafariDriver 16.6.1 (16615.3.12.11.5)
- Google Chrome 119.0.6045.159
- Google Chrome for Testing 119.0.6045.105
- ChromeDriver 119.0.6045.105
- Microsoft Edge 119.0.2151.72
- Microsoft Edge WebDriver 119.0.2151.72
- Mozilla Firefox 120.0
- geckodriver 0.33.0
- Selenium server 4.15.0
- Google Chrome 121.0.6167.85
- Google Chrome for Testing 121.0.6167.85
- ChromeDriver 121.0.6167.85
- Microsoft Edge 121.0.2277.83
- Microsoft Edge WebDriver 121.0.2277.83
- Mozilla Firefox 122.0
- geckodriver 0.34.0
- Selenium server 4.17.0
#### Environment variables
| Name | Value |
@@ -142,10 +138,10 @@
### Java
| Version | Environment Variable |
| ------------------- | -------------------- |
| 8.0.392+8 (default) | JAVA_HOME_8_X64 |
| 11.0.21+9 | JAVA_HOME_11_X64 |
| 17.0.9+9 | JAVA_HOME_17_X64 |
| 21.0.1+12.0 | JAVA_HOME_21_X64 |
| 8.0.402+6 (default) | JAVA_HOME_8_X64 |
| 11.0.22+7 | JAVA_HOME_11_X64 |
| 17.0.10+7 | JAVA_HOME_17_X64 |
| 21.0.2+13.0 | JAVA_HOME_21_X64 |
### Cached Tools
@@ -157,49 +153,49 @@
- 3.1.4
#### PyPy
- 2.7.18 [PyPy 7.3.13]
- 2.7.18 [PyPy 7.3.15]
- 3.7.13 [PyPy 7.3.9]
- 3.8.16 [PyPy 7.3.11]
- 3.9.18 [PyPy 7.3.13]
- 3.10.13 [PyPy 7.3.13]
- 3.9.18 [PyPy 7.3.15]
- 3.10.13 [PyPy 7.3.15]
#### Python
- 3.7.17
- 3.8.18
- 3.9.18
- 3.10.13
- 3.11.6
- 3.12.0
- 3.11.7
- 3.12.1
#### Node.js
- 16.20.2
- 18.18.2
- 20.10.0
- 18.19.0
- 20.11.0
#### Go
- 1.19.13
- 1.20.11
- 1.21.4
- 1.20.13
- 1.21.6
### Rust Tools
- Cargo 1.74.0
- Rust 1.74.0
- Rustdoc 1.74.0
- Cargo 1.75.0
- Rust 1.75.0
- Rustdoc 1.75.0
- Rustup 1.26.0
#### Packages
- Bindgen 0.69.1
- Bindgen 0.69.2
- Cargo-audit 0.18.3
- Cargo-outdated 0.14.0
- Cbindgen 0.26.0
- Clippy 0.1.74
- Rustfmt 1.6.0-stable
- Clippy 0.1.75
- Rustfmt 1.7.0-stable
### PowerShell Tools
- PowerShell 7.2.17
- PowerShell 7.4.1
#### PowerShell Modules
- Az: 11.0.0
- Az: 11.2.0
- MarkdownPS: 1.9
- Pester: 5.5.0
- PSScriptAnalyzer: 1.21.0
@@ -216,7 +212,7 @@
| Version | Build | Path |
| -------------- | ---------- | ------------------------------------ |
| 2019 | 8.10.25.2 | /Applications/Visual Studio 2019.app |
| 2022 (default) | 17.6.7.417 | /Applications/Visual Studio.app |
| 2022 (default) | 17.6.8.400 | /Applications/Visual Studio.app |
##### Notes
```
@@ -329,18 +325,18 @@ mv "/Applications/Visual Studio 2019.app" "/Applications/Visual Studio.app"
| watchOS 8.3 | 13.2.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<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 |
### Android
| Package Name | Version |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 8.0 |
| Android Emulator | 32.1.15 |
| Android SDK Build-tools | 34.0.0<br>33.0.0 33.0.1 33.0.2<br>32.0.0<br>31.0.0<br>30.0.0 30.0.1 30.0.2 30.0.3<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3 |
| Android SDK Platforms | android-34-ext8 (rev 1)<br>android-34 (rev 2)<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)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3) |
| Android SDK Platform-Tools | 34.0.5 |
| Android Support Repository | 47.0.0 |
| CMake | 3.10.2<br>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.1.10909125 |
| Package Name | Version |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 8.0 |
| Android Emulator | 33.1.24 |
| Android SDK Build-tools | 34.0.0<br>33.0.0 33.0.1 33.0.2<br>32.0.0<br>31.0.0 |
| Android SDK Platforms | android-34-ext8 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 2)<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 | 34.0.5 |
| Android Support Repository | 47.0.0 |
| CMake | 3.10.2<br>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.1.10909125 |
#### Environment variables
| Name | Value |
@@ -356,5 +352,5 @@ mv "/Applications/Visual Studio 2019.app" "/Applications/Visual Studio.app"
- libXext 1.3.5
- libXft 2.3.8
- Tcl/Tk 8.6.13_5
- Zlib 1.3
- Zlib 1.3.1
+96 -97
View File
@@ -1,17 +1,16 @@
| Announcements |
|-|
| [[all OSs] Nodejs 14.x will be removed from the images on November, 26](https://github.com/actions/runner-images/issues/8779) |
| [Major Refactoring of GitHub Actions Runner Images Repository](https://github.com/actions/runner-images/issues/8706) |
| [[All OSes] Powershell Core will be updated to 7.4.x LTS on January, 28](https://github.com/actions/runner-images/issues/9115) |
***
# macOS 12
- OS Version: macOS 12.7.1 (21G920)
- OS Version: macOS 12.7.3 (21H1015)
- Kernel Version: Darwin 21.6.0
- Image Version: 20231127.1
- Image Version: 20240202.1
## Installed Software
### Language and Runtime
- .NET Core SDK: 6.0.417, 7.0.102, 7.0.202, 7.0.306, 7.0.404, 8.0.100
- .NET Core SDK: 6.0.418, 7.0.102, 7.0.202, 7.0.306, 7.0.405, 8.0.101
- 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`
@@ -21,35 +20,35 @@
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
- GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.2.0) - available by `gfortran-13` alias
- Julia 1.9.4
- Kotlin 1.9.21-release-633
- Go 1.20.11
- Julia 1.10.0
- Kotlin 1.9.22-release-704
- Go 1.20.13
- Mono 6.12.0.188
- Node.js 18.18.2
- Node.js 18.19.0
- MSBuild 16.10.1.51301 (Mono 6.12.0.188)
- NVM 0.39.5
- NVM - Cached node versions: 16.20.2, 18.18.2, 20.10.0
- Perl 5.38.1
- PHP 8.3.0
- NVM 0.39.7
- NVM - Cached node versions: 16.20.2, 18.19.0, 20.11.0
- Perl 5.38.2
- PHP 8.3.2
- Python 2.7.18
- Python3 3.12.0
- Python3 3.12.1
- R 4.3.2
- Ruby 3.0.6p216
### Package Management
- Bundler 2.4.22
- Bundler 2.5.5
- Carthage 0.39.1
- CocoaPods 1.14.3
- Composer 2.6.5
- Homebrew 4.1.22
- Miniconda 23.10.0
- NPM 9.8.1
- CocoaPods 1.15.0
- Composer 2.6.6
- Homebrew 4.2.6
- Miniconda 23.11.0
- NPM 10.2.3
- NuGet 6.3.1.1
- Pip 20.3.4 (python 2.7)
- Pip3 23.3.1 (python 3.12)
- Pipx 1.2.1
- RubyGems 3.4.22
- Vcpkg 2023 (build from commit 13c3c0fcc)
- Pip3 23.3.2 (python 3.12)
- Pipx 1.4.3
- RubyGems 3.5.5
- Vcpkg 2024 (build from commit 80403036a)
- Yarn 1.22.19
#### Environment variables
@@ -60,26 +59,26 @@
### Project Management
- Apache Ant 1.10.14
- Apache Maven 3.9.5
- Gradle 8.4
- Sbt 1.9.7
- Apache Maven 3.9.6
- Gradle 8.5
- Sbt 1.9.8
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.21.2
- bazel 6.4.0
- azcopy 10.23.0
- bazel 7.0.2
- bazelisk 1.19.0
- bsdtar 3.5.1 - available by 'tar' alias
- Curl 8.4.0
- Curl 8.6.0
- Git 2.43.0
- Git LFS 3.4.0
- GitHub CLI 2.39.1
- Git LFS 3.4.1
- GitHub CLI 2.43.1
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.21.4
- gpg (GnuPG) 2.4.3
- ImageMagick 7.1.1-21
- jq 1.7
- gpg (GnuPG) 2.4.4
- ImageMagick 7.1.1-27
- jq 1.7.1
- mongo 5.0.21
- mongod 5.0.21
- OpenSSL 1.1.1w 11 Sep 2023
@@ -88,33 +87,33 @@
- PostgreSQL 14.10 (Homebrew)
- psql (PostgreSQL) 14.10 (Homebrew)
- Sox 14.4.2
- Subversion (SVN) 1.14.2
- Subversion (SVN) 1.14.3
- Switchaudio-osx 1.2.2
- Vagrant 2.4.0
- Vagrant 2.4.1
- VirtualBox 6.1.38r153438
- yq 4.40.3
- yq 4.40.5
- zstd 1.5.5
### Tools
- App Center CLI 2.14.0
- AWS CLI 2.13.39
- AWS SAM CLI 1.103.0
- AWS Session Manager CLI 1.2.497.0
- Azure CLI 2.54.0
- AWS CLI 2.15.17
- AWS SAM CLI 1.108.0
- AWS Session Manager CLI 1.2.553.0
- Azure CLI 2.56.0
- Azure CLI (azure-devops) 0.26.0
- Bicep CLI 0.23.1
- Cabal 3.6.2.0
- Cmake 3.27.8
- CodeQL Action Bundle 2.15.3
- Colima 0.6.6
- Fastlane 2.217.0
- Bicep CLI 0.24.24
- Cabal 3.10.2.1
- Cmake 3.28.2
- CodeQL Action Bundle 2.16.1
- Colima 0.6.8
- Fastlane 2.219.0
- GHC 9.8.1
- GHCup 0.1.20.0
- Jazzy 0.14.4
- Stack 2.13.1
- SwiftFormat 0.52.10
- Swig 4.1.1
- Xcbeautify 1.0.1
- SwiftFormat 0.53.1
- Swig 4.2.0
- Xcbeautify 1.4.0
- Xcode Command Line Tools 14.2.0.0.1.1668646533
- Xcodes 1.4.1
@@ -123,16 +122,16 @@
- Yamllint 1.33.0
### Browsers
- Safari 17.1 (17616.2.9.11.9)
- SafariDriver 17.1 (17616.2.9.11.9)
- Google Chrome 119.0.6045.159
- Google Chrome for Testing 119.0.6045.105
- ChromeDriver 119.0.6045.105
- Microsoft Edge 119.0.2151.72
- Microsoft Edge WebDriver 119.0.2151.72
- Mozilla Firefox 120.0
- geckodriver 0.33.0
- Selenium server 4.15.0
- Safari 17.3 (17617.2.4.11.11)
- SafariDriver 17.3 (17617.2.4.11.11)
- Google Chrome 121.0.6167.139
- Google Chrome for Testing 121.0.6167.85
- ChromeDriver 121.0.6167.85
- Microsoft Edge 121.0.2277.98
- Microsoft Edge WebDriver 121.0.2277.98
- Mozilla Firefox 122.0
- geckodriver 0.34.0
- Selenium server 4.17.0
#### Environment variables
| Name | Value |
@@ -144,10 +143,10 @@
### Java
| Version | Environment Variable |
| ------------------- | -------------------- |
| 8.0.392+8 (default) | JAVA_HOME_8_X64 |
| 11.0.21+9 | JAVA_HOME_11_X64 |
| 17.0.9+9 | JAVA_HOME_17_X64 |
| 21.0.1+12.0 | JAVA_HOME_21_X64 |
| 8.0.402+6 (default) | JAVA_HOME_8_X64 |
| 11.0.22+7 | JAVA_HOME_11_X64 |
| 17.0.10+7 | JAVA_HOME_17_X64 |
| 21.0.2+13.0 | JAVA_HOME_21_X64 |
### Cached Tools
@@ -157,49 +156,49 @@
- 3.1.4
#### PyPy
- 2.7.18 [PyPy 7.3.13]
- 2.7.18 [PyPy 7.3.15]
- 3.7.13 [PyPy 7.3.9]
- 3.8.16 [PyPy 7.3.11]
- 3.9.18 [PyPy 7.3.13]
- 3.10.13 [PyPy 7.3.13]
- 3.9.18 [PyPy 7.3.15]
- 3.10.13 [PyPy 7.3.15]
#### Python
- 3.7.17
- 3.8.18
- 3.9.18
- 3.10.13
- 3.11.6
- 3.12.0
- 3.11.7
- 3.12.1
#### Node.js
- 16.20.2
- 18.18.2
- 20.10.0
- 18.19.0
- 20.11.0
#### Go
- 1.19.13
- 1.20.11
- 1.21.4
- 1.20.13
- 1.21.6
### Rust Tools
- Cargo 1.74.0
- Rust 1.74.0
- Rustdoc 1.74.0
- Cargo 1.75.0
- Rust 1.75.0
- Rustdoc 1.75.0
- Rustup 1.26.0
#### Packages
- Bindgen 0.69.1
- Bindgen 0.69.2
- Cargo-audit 0.18.3
- Cargo-outdated 0.14.0
- Cbindgen 0.26.0
- Clippy 0.1.74
- Rustfmt 1.6.0-stable
- Clippy 0.1.75
- Rustfmt 1.7.0-stable
### PowerShell Tools
- PowerShell 7.2.17
- PowerShell 7.4.1
#### PowerShell Modules
- Az: 11.0.0
- Az: 11.2.0
- MarkdownPS: 1.9
- Pester: 5.5.0
- PSScriptAnalyzer: 1.21.0
@@ -216,7 +215,7 @@
| Version | Build | Path |
| -------------- | ---------- | ------------------------------------ |
| 2019 | 8.10.25.2 | /Applications/Visual Studio 2019.app |
| 2022 (default) | 17.6.7.417 | /Applications/Visual Studio.app |
| 2022 (default) | 17.6.8.400 | /Applications/Visual Studio.app |
##### Notes
```
@@ -332,18 +331,18 @@ mv "/Applications/Visual Studio 2019.app" "/Applications/Visual Studio.app"
| 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 | 32.1.15 |
| Android SDK Build-tools | 34.0.0<br>33.0.0 33.0.1 33.0.2<br>32.0.0<br>31.0.0<br>30.0.0 30.0.1 30.0.2 30.0.3<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3 |
| Android SDK Platforms | android-34-ext8 (rev 1)<br>android-34 (rev 2)<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)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3) |
| Android SDK Platform-Tools | 34.0.5 |
| 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.1.10909125 |
| Package Name | Version |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 8.0 |
| Android Emulator | 33.1.24 |
| Android SDK Build-tools | 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-34-ext8 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 2)<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 | 34.0.5 |
| 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.1.10909125 |
#### Environment variables
| Name | Value |
@@ -359,12 +358,12 @@ mv "/Applications/Visual Studio 2019.app" "/Applications/Visual Studio.app"
- libXext 1.3.5
- libXft 2.3.8
- Tcl/Tk 8.6.13_5
- Zlib 1.3
- Zlib 1.3.1
#### Environment variables
| Name | Value |
| ----------------- | ----------------------------------------------------------------------------------------- |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v19/19.1.1-54734/ParallelsDesktop-19.1.1-54734.dmg |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v19/19.2.1-54832/ParallelsDesktop-19.2.1-54832.dmg |
##### Notes
```
+122 -114
View File
@@ -1,14 +1,18 @@
| Announcements |
|-|
| [[All OSes] Powershell Core will be updated to 7.4.x LTS on January, 28](https://github.com/actions/runner-images/issues/9115) |
***
# macOS 13
- OS Version: macOS 13.6 (22G120)
- OS Version: macOS 13.6.4 (22G513)
- Kernel Version: Darwin 22.6.0
- Image Version: 20231025.2
- Image Version: 20240204.1
## Installed Software
### Language and Runtime
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.403
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.405, 8.0.101
- 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.3.0) - available by `gcc-12` alias
@@ -16,87 +20,83 @@
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
- GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.2.0) - available by `gfortran-13` alias
- Julia 1.9.3
- Kotlin 1.9.10-release-459
- Kotlin 1.9.22-release-704
- Mono 6.12.0.188
- Node.js 18.18.2
- Perl 5.38.0
- PHP 8.2.11
- Python3 3.12.0
- R 4.3.1
- Node.js 20.11.0
- Perl 5.38.2
- PHP 8.3.2
- Python3 3.12.1
- Ruby 3.0.6p216
### Package Management
- Bundler 2.4.21
- Bundler 2.5.5
- Carthage 0.39.1
- CocoaPods 1.13.0
- Composer 2.6.5
- Homebrew 4.1.17
- NPM 9.8.1
- CocoaPods 1.15.0
- Composer 2.6.6
- Homebrew 4.2.6
- NPM 10.2.4
- NuGet 6.3.1.1
- Pip3 23.3.1 (python 3.12)
- Pipx 1.2.1
- RubyGems 3.4.21
- Vcpkg 2023 (build from commit 213c01f87)
- Pip3 24.0 (python 3.12)
- Pipx 1.4.3
- RubyGems 3.5.5
- Vcpkg 2024 (build from commit 80403036a)
- Yarn 1.22.19
### Project Management
- Apache Ant 1.10.14
- Apache Maven 3.9.5
- Gradle 8.4
- Apache Maven 3.9.6
- Gradle 8.6
### Utilities
- 7-Zip 17.05
- aria2 1.36.0
- azcopy 10.21.1
- bazel 6.4.0
- bazelisk 1.18.0
- aria2 1.37.0
- azcopy 10.23.0
- bazel 7.0.2
- bazelisk 1.19.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.4.0
- Git 2.42.0
- Git LFS 3.4.0
- GitHub CLI 2.37.0
- Curl 8.6.0
- Git 2.43.0
- Git LFS 3.4.1
- GitHub CLI 2.43.1
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.21.4
- gpg (GnuPG) 2.4.3
- jq 1.7
- gpg (GnuPG) 2.4.4
- jq 1.7.1
- OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.9.4
- pkg-config 0.29.2
- yq 4.35.2
- yq 4.40.5
- zstd 1.5.5
### Tools
- AWS CLI 2.13.29
- AWS SAM CLI 1.99.0
- AWS Session Manager CLI 1.2.497.0
- Azure CLI 2.53.1
- AWS CLI 2.15.17
- AWS SAM CLI 1.108.0
- AWS Session Manager CLI 1.2.553.0
- Azure CLI 2.56.0
- Azure CLI (azure-devops) 0.26.0
- Bicep CLI 0.22.6
- Cabal 3.6.2.0
- Cmake 3.27.7
- CodeQL Action Bundle 2.15.1
- Fastlane 2.216.0
- GHC 9.8.1
- GHCup 0.1.19.4
- Stack 2.13.1
- SwiftFormat 0.52.8
- Xcode Command Line Tools 15.0.0.0.1.1694021235
- Bicep CLI 0.24.24
- Cmake 3.28.2
- CodeQL Action Bundle 2.16.1
- Fastlane 2.219.0
- SwiftFormat 0.53.1
- Xcbeautify 1.4.0
- Xcode Command Line Tools 15.1.0.0.1.1700200546
- Xcodes 1.4.1
### Linters
- SwiftLint 0.53.0
### Browsers
- Safari 17.0 (18616.1.27.111.22)
- SafariDriver 17.0 (18616.1.27.111.22)
- Google Chrome 118.0.5993.117
- Google Chrome for Testing 118.0.5993.70
- ChromeDriver 118.0.5993.70
- Microsoft Edge 118.0.2088.69
- Microsoft Edge WebDriver 118.0.2088.69
- Mozilla Firefox 119.0
- geckodriver 0.33.0
- Selenium server 4.14.1
- Safari 17.3 (18617.2.4.11.11)
- SafariDriver 17.3 (18617.2.4.11.11)
- Google Chrome 121.0.6167.139
- Google Chrome for Testing 121.0.6167.85
- ChromeDriver 121.0.6167.85
- Microsoft Edge 121.0.2277.98
- Microsoft Edge WebDriver 121.0.2277.98
- Mozilla Firefox 122.0
- geckodriver 0.34.0
- Selenium server 4.17.0
#### Environment variables
| Name | Value |
@@ -106,12 +106,12 @@
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
### Java
| Version | Environment Variable |
| ------------------ | -------------------- |
| 8.0.392+8 | JAVA_HOME_8_X64 |
| 11.0.21+9 | JAVA_HOME_11_X64 |
| 17.0.9+9 (default) | JAVA_HOME_17_X64 |
| 21.0.1+12.0.LTS | JAVA_HOME_21_X64 |
| Version | Environment Variable |
| ------------------- | -------------------- |
| 8.0.402+6 | JAVA_HOME_8_X64 |
| 11.0.22+7 | JAVA_HOME_11_X64 |
| 17.0.10+7 (default) | JAVA_HOME_17_X64 |
| 21.0.2+13.0 | JAVA_HOME_21_X64 |
### Cached Tools
@@ -120,62 +120,57 @@
- 3.1.4
#### PyPy
- 2.7.18 [PyPy 7.3.13]
- 2.7.18 [PyPy 7.3.15]
- 3.7.13 [PyPy 7.3.9]
- 3.8.16 [PyPy 7.3.11]
- 3.9.18 [PyPy 7.3.13]
- 3.10.13 [PyPy 7.3.13]
- 3.9.18 [PyPy 7.3.15]
- 3.10.13 [PyPy 7.3.15]
#### Python
- 3.8.18
- 3.9.18
- 3.10.13
- 3.11.6
- 3.12.0
- 3.11.7
- 3.12.1
#### Node.js
- 16.20.2
- 18.18.2
- 20.9.0
- 18.19.0
- 20.11.0
#### Go
- 1.19.13
- 1.20.10
- 1.21.3
- 1.20.13
- 1.21.6
### Rust Tools
- Cargo 1.73.0
- Rust 1.73.0
- Rustdoc 1.73.0
- Cargo 1.75.0
- Rust 1.75.0
- Rustdoc 1.75.0
- Rustup 1.26.0
#### Packages
- Bindgen 0.68.1
- Cargo-audit 0.18.3
- Cargo-outdated 0.13.1
- Cbindgen 0.26.0
- Clippy 0.1.73
- Rustfmt 1.6.0-stable
- Clippy 0.1.75
- Rustfmt 1.7.0-stable
### PowerShell Tools
- PowerShell 7.2.15
- PowerShell 7.4.1
#### PowerShell Modules
- Az: 10.4.1
- Az: 11.2.0
- Pester: 5.5.0
- PSScriptAnalyzer: 1.21.0
### Xcode
| Version | Build | Path |
| ---------------- | ------- | ------------------------------ |
| 15.0.1 | 15A507 | /Applications/Xcode_15.0.1.app |
| 14.3.1 (default) | 14E300c | /Applications/Xcode_14.3.1.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 |
| 14.2 | 14C18 | /Applications/Xcode_14.2.app |
| 14.1 | 14B47b | /Applications/Xcode_14.1.app |
#### Xcode Support Tools
- xcpretty 0.3.0
#### Installed SDKs
| SDK | SDK Name | Xcode Version |
| ------------------------------------------------------- | --------------------------------------------- | ------------- |
@@ -183,62 +178,74 @@
| macOS 13.1 | macosx13.1 | 14.2 |
| 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 |
| iOS 16.1 | iphoneos16.1 | 14.1 |
| iOS 16.2 | iphoneos16.2 | 14.2 |
| 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 |
| Simulator - iOS 16.1 | iphonesimulator16.1 | 14.1 |
| Simulator - iOS 16.2 | iphonesimulator16.2 | 14.2 |
| 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 |
| tvOS 16.1 | appletvos16.1 | 14.1, 14.2 |
| 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 |
| Simulator - tvOS 16.1 | appletvsimulator16.1 | 14.1, 14.2 |
| 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 |
| watchOS 9.1 | watchos9.1 | 14.1, 14.2 |
| 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 |
| Simulator - watchOS 9.1 | watchsimulator9.1 | 14.1, 14.2 |
| 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 - 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 |
| DriverKit 23.0 | driverkit23.0 | 15.0.1 |
| 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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) |
### Android
| Package Name | Version |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 32.1.15 |
| Android SDK Build-tools | 34.0.0<br>33.0.2 |
| Android SDK Platforms | android-34-ext8 (rev 1)<br>android-34 (rev 2)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 34.0.5 |
| 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.1.10909125 (default) |
| SDK Patch Applier v4 | 1 |
| Package Name | Version |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 33.1.24 |
| Android SDK Build-tools | 34.0.0<br>33.0.2 33.0.3 |
| Android SDK Platforms | android-34-ext8 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 2)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 34.0.5 |
| 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.1.10909125 (default) |
#### Environment variables
| Name | Value |
@@ -249,3 +256,4 @@
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
+103 -92
View File
@@ -1,20 +1,18 @@
| Announcements |
|-|
| [[all OSs] Nodejs 14.x will be removed from the images on November, 26](https://github.com/actions/runner-images/issues/8779) |
| [Major Refactoring of GitHub Actions Runner Images Repository](https://github.com/actions/runner-images/issues/8706) |
| [[All OS] Android NDK r23 will be removed from images on November 13](https://github.com/actions/runner-images/issues/8383) |
| [[All OSes] Powershell Core will be updated to 7.4.x LTS on January, 28](https://github.com/actions/runner-images/issues/9115) |
***
# macOS 13
- OS Version: macOS 13.6.1 (22G313)
- OS Version: macOS 13.6.4 (22G513)
- Kernel Version: Darwin 22.6.0
- Image Version: 20231115.2
- Image Version: 20240204.1
## Installed Software
### Language and Runtime
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.404, 8.0.100
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.405, 8.0.101
- 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.3.0) - available by `gcc-12` alias
@@ -22,72 +20,72 @@
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
- GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.2.0) - available by `gfortran-13` alias
- Julia 1.9.4
- Kotlin 1.9.255-SNAPSHOT
- Kotlin 1.9.22-release-704
- Mono 6.12.0.188
- Node.js 18.18.2
- Perl 5.38.0
- R 4.3.2
- Node.js 20.11.0
- Perl 5.38.2
- Ruby 3.0.6p216
### Package Management
- Bundler 2.4.22
- Bundler 2.5.5
- Carthage 0.39.1
- CocoaPods 1.14.2
- Homebrew 4.1.20
- NPM 9.8.1
- CocoaPods 1.15.0
- Homebrew 4.2.6
- NPM 10.2.4
- NuGet 6.3.1.1
- RubyGems 3.4.22
- RubyGems 3.5.5
- Yarn 1.22.19
### Project Management
- Apache Ant 1.10.14
- Apache Maven 3.9.5
- Gradle 8.4
- Apache Maven 3.9.6
- Gradle 8.6
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.21.2
- bazel 6.4.0
- bazelisk 1.18.0
- azcopy 10.23.0
- bazel 7.0.2
- bazelisk 1.19.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.1.2
- Git 2.42.1
- Git LFS 3.4.0
- GitHub CLI 2.39.1
- Curl 8.4.0
- Git 2.43.0
- Git LFS 3.4.1
- GitHub CLI 2.43.1
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.21.4
- gpg (GnuPG) 2.4.3
- jq 1.7
- gpg (GnuPG) 2.4.4
- jq 1.7.1
- OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.9.4
- pkg-config 0.29.2
- yq 4.35.2
- yq 4.40.5
- zstd 1.5.5
### Tools
- AWS CLI 2.13.36
- AWS SAM CLI 1.102.0
- AWS Session Manager CLI 1.2.497.0
- Azure CLI 2.54.0
- AWS CLI 2.15.17
- AWS SAM CLI 1.108.0
- AWS Session Manager CLI 1.2.553.0
- Azure CLI 2.56.0
- Azure CLI (azure-devops) 0.26.0
- Bicep CLI 0.23.1
- Cmake 3.27.7
- CodeQL Action Bundle 2.15.2
- Fastlane 2.217.0
- SwiftFormat 0.52.9
- Xcode Command Line Tools 15.0.0.0.1.1694021235
- Bicep CLI 0.24.24
- Cmake 3.28.2
- CodeQL Action Bundle 2.16.1
- Fastlane 2.219.0
- SwiftFormat 0.53.1
- Xcbeautify 1.4.0
- Xcode Command Line Tools 15.1.0.0.1.1700200546
- Xcodes 1.4.1
### Linters
### Browsers
- Safari 17.1 (18616.2.9.11.10)
- SafariDriver 17.1 (18616.2.9.11.10)
- Google Chrome 119.0.6045.159
- Google Chrome for Testing 119.0.6045.105
- ChromeDriver 119.0.6045.105
- Selenium server 4.15.0
- Safari 17.3 (18617.2.4.11.11)
- SafariDriver 17.3 (18617.2.4.11.11)
- Google Chrome 121.0.6167.139
- Google Chrome for Testing 121.0.6167.85
- ChromeDriver 121.0.6167.85
- Selenium server 4.17.0
#### Environment variables
| Name | Value |
@@ -97,57 +95,56 @@
| GECKOWEBDRIVER | |
### Java
| Version | Environment Variable |
| ------------------ | -------------------- |
| 11.0.21+9 | JAVA_HOME_11_arm64 |
| 17.0.9+9 (default) | JAVA_HOME_17_arm64 |
| 21.0.1+12.0 | JAVA_HOME_21_arm64 |
| Version | Environment Variable |
| ------------------- | -------------------- |
| 11.0.22+7.1 | JAVA_HOME_11_arm64 |
| 17.0.10+7 (default) | JAVA_HOME_17_arm64 |
| 21.0.2+13.0 | JAVA_HOME_21_arm64 |
### Cached Tools
#### Python
- 3.11.6
- 3.12.0
- 3.11.7
- 3.12.1
#### Node.js
- 16.20.1
- 18.18.2
- 20.9.0
- 18.19.0
- 20.11.0
#### Go
- 1.19.13
- 1.20.11
- 1.21.4
- 1.20.13
- 1.21.6
### Rust Tools
- Cargo 1.73.0
- Rust 1.73.0
- Rustdoc 1.73.0
- Cargo 1.75.0
- Rust 1.75.0
- Rustdoc 1.75.0
- Rustup 1.26.0
#### Packages
- Clippy 0.1.73
- Rustfmt 1.6.0-stable
- Clippy 0.1.75
- Rustfmt 1.7.0-stable
### PowerShell Tools
- PowerShell 7.2.16
- PowerShell 7.4.1
#### PowerShell Modules
- Az: 11.0.0
- Az: 11.2.0
- Pester: 5.5.0
- PSScriptAnalyzer: 1.21.0
### Xcode
| Version | Build | Path |
| ---------------- | ------- | ------------------------------ |
| 15.0.1 | 15A507 | /Applications/Xcode_15.0.1.app |
| 14.3.1 (default) | 14E300c | /Applications/Xcode_14.3.1.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 |
| 14.2 | 14C18 | /Applications/Xcode_14.2.app |
| 14.1 | 14B47b | /Applications/Xcode_14.1.app |
#### Xcode Support Tools
- xcpretty 0.3.0
#### Installed SDKs
| SDK | SDK Name | Xcode Version |
| ------------------------------------------------------- | --------------------------------------------- | ------------- |
@@ -155,26 +152,35 @@
| macOS 13.1 | macosx13.1 | 14.2 |
| 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 |
| iOS 16.1 | iphoneos16.1 | 14.1 |
| iOS 16.2 | iphoneos16.2 | 14.2 |
| 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 |
| Simulator - iOS 16.1 | iphonesimulator16.1 | 14.1 |
| Simulator - iOS 16.2 | iphonesimulator16.2 | 14.2 |
| 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 |
| tvOS 16.1 | appletvos16.1 | 14.1, 14.2 |
| 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 |
| Simulator - tvOS 16.1 | appletvsimulator16.1 | 14.1, 14.2 |
| 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 |
| watchOS 9.1 | watchos9.1 | 14.1, 14.2 |
| 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 |
| Simulator - watchOS 9.1 | watchsimulator9.1 | 14.1, 14.2 |
| 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 |
| visionOS 1.0 | xros1.0 | 15.2 |
| Simulator - visionOS 1.0 | xrsimulator1.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 |
@@ -182,34 +188,39 @@
| DriverKit 22.2 | driverkit22.2 | 14.2 |
| 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 |
#### 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 |
### Android
| Package Name | Version |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 32.1.15 |
| Android SDK Build-tools | 34.0.0<br>33.0.2 |
| Android SDK Platforms | android-34-ext8 (rev 1)<br>android-34 (rev 2)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 34.0.5 |
| 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.1.10909125 (default) |
| Package Name | Version |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 33.1.24 |
| Android SDK Build-tools | 34.0.0<br>33.0.2 33.0.3 |
| Android SDK Platforms | android-34-ext8 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 2)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 34.0.5 |
| 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.1.10909125 (default) |
#### Environment variables
| Name | Value |
+201
View File
@@ -0,0 +1,201 @@
# macOS 14
- OS Version: macOS 14.2.1 (23C71)
- Kernel Version: Darwin 23.2.0
- Image Version: 20240116.1
## Installed Software
### Language and Runtime
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.405, 8.0.101
- Bash 3.2.57(1)-release
- 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.3.0) - available by `gcc-12` alias
- GCC 13 (Homebrew GCC 13.2.0) - available by `gcc-13` alias
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
- GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.2.0) - available by `gfortran-13` alias
- Julia 1.10.0
- Kotlin 1.9.22-release-704
- Mono 6.12.0.188
- Node.js 18.19.0
- Perl 5.38.2
- PHP 8.3.1
- Python3 3.11.7
- R 4.3.2
- Ruby 3.0.6p216
### Package Management
- Bundler 2.5.4
- Carthage 0.39.1
- CocoaPods 1.14.3
- Composer 2.6.6
- Homebrew 4.2.4
- NPM 10.2.3
- NuGet 6.3.1.1
- Pip3 23.3.1 (python 3.11)
- Pipx 1.4.2
- RubyGems 3.5.4
- Vcpkg 2024 (build from commit 91b17dd72)
- Yarn 1.22.19
### Project Management
- Apache Ant 1.10.14
- Apache Maven 3.9.6
- Gradle 8.5
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.21.2
- bazel 7.0.0
- bazelisk 1.19.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.5.0
- Git 2.43.0
- Git LFS 3.4.1
- GitHub CLI 2.42.0
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.21.4
- gpg (GnuPG) 2.4.3
- jq 1.7.1
- OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.9.4
- pkg-config 0.29.2
- yq 4.40.5
- zstd 1.5.5
### Tools
- AWS CLI 2.15.10
- AWS SAM CLI 1.107.0
- AWS Session Manager CLI 1.2.553.0
- Azure CLI 2.56.0
- Azure CLI (azure-devops) 0.26.0
- Bicep CLI 0.24.24
- Cmake 3.28.1
- CodeQL Action Bundle 2.15.5
- Fastlane 2.219.0
- SwiftFormat 0.53.0
- Xcbeautify 1.4.0
- Xcode Command Line Tools 15.1.0.0.1.1700200546
- Xcodes 1.4.1
### Linters
- SwiftLint 0.53.0
### Browsers
- Safari 17.2.1 (19617.1.17.11.12)
- SafariDriver 17.2.1 (19617.1.17.11.12)
- Google Chrome 120.0.6099.234
- Google Chrome for Testing 120.0.6099.109
- ChromeDriver 120.0.6099.109
- Microsoft Edge 120.0.2210.133
- Microsoft Edge WebDriver 120.0.2210.133
- Mozilla Firefox 121.0.1
- geckodriver 0.34.0
- Selenium server 4.16.1
#### 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.392+8 | JAVA_HOME_8_X64 |
| 11.0.21+9 | JAVA_HOME_11_X64 |
| 17.0.9+9 | JAVA_HOME_17_X64 |
| 21.0.1+12.0 (default) | JAVA_HOME_21_X64 |
### PowerShell Tools
- PowerShell 7.2.18
#### PowerShell Modules
- Az: 11.2.0
- Pester: 5.5.0
- PSScriptAnalyzer: 1.21.0
### Xcode
| Version | Build | Path |
| ---------------- | ------- | ------------------------------ |
| 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 |
#### Xcode Support Tools
- xcpretty 0.3.0
#### 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 - 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 |
| 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 |
#### 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 | 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 | 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.4 | 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.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.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.4 | 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.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.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) |
### Android
| Package Name | Version |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 33.1.24 |
| Android SDK Build-tools | 34.0.0<br>33.0.2 |
| Android SDK Platforms | android-34-ext8 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 2)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 34.0.5 |
| 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.1.10909125 (default) |
#### Environment variables
| Name | Value |
| ----------------------- | --------------------------------------------------- |
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
+190
View File
@@ -0,0 +1,190 @@
# macOS 14
- OS Version: macOS 14.2.1 (23C71)
- Kernel Version: Darwin 23.2.0
- Image Version: 20240116.1
## Installed Software
### Language and Runtime
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.405, 8.0.101
- Bash 3.2.57(1)-release
- 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.3.0) - available by `gcc-12` alias
- GCC 13 (Homebrew GCC 13.2.0) - available by `gcc-13` alias
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
- GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.2.0) - available by `gfortran-13` alias
- Julia 1.10.0
- Kotlin 1.9.22-release-704
- Mono 6.12.0.188
- Node.js 18.19.0
- Perl 5.38.2
- R 4.3.2
- Ruby 3.0.6p216
### Package Management
- Bundler 2.5.4
- Carthage 0.39.1
- CocoaPods 1.14.3
- Homebrew 4.2.4
- NPM 10.2.3
- NuGet 6.3.1.1
- RubyGems 3.5.4
- Yarn 1.22.19
### Project Management
- Apache Ant 1.10.14
- Apache Maven 3.9.6
- Gradle 8.5
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.21.2
- bazel 7.0.0
- bazelisk 1.19.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.4.0
- Git 2.43.0
- Git LFS 3.4.1
- GitHub CLI 2.42.0
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.21.4
- gpg (GnuPG) 2.4.3
- jq 1.7.1
- OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.9.4
- pkg-config 0.29.2
- yq 4.40.5
- zstd 1.5.5
### Tools
- AWS CLI 2.15.10
- AWS SAM CLI 1.107.0
- AWS Session Manager CLI 1.2.553.0
- Azure CLI 2.56.0
- Azure CLI (azure-devops) 0.26.0
- Bicep CLI 0.24.24
- Cmake 3.28.1
- CodeQL Action Bundle 2.15.5
- Fastlane 2.219.0
- SwiftFormat 0.53.0
- Xcbeautify 1.4.0
- Xcode Command Line Tools 15.1.0.0.1.1700200546
- Xcodes 1.4.1
### Linters
### Browsers
- Safari 17.2.1 (19617.1.17.11.12)
- SafariDriver 17.2.1 (19617.1.17.11.12)
- Google Chrome 120.0.6099.234
- Google Chrome for Testing 120.0.6099.109
- ChromeDriver 120.0.6099.109
- Selenium server 4.16.1
#### Environment variables
| Name | Value |
| --------------- | --------------------------------------- |
| CHROMEWEBDRIVER | /usr/local/share/chromedriver-mac-arm64 |
| EDGEWEBDRIVER | |
| GECKOWEBDRIVER | |
### Java
| Version | Environment Variable |
| --------------------- | -------------------- |
| 11.0.21+9 | JAVA_HOME_11_arm64 |
| 17.0.9+9 | JAVA_HOME_17_arm64 |
| 21.0.1+12.0 (default) | JAVA_HOME_21_arm64 |
### PowerShell Tools
- PowerShell 7.2.18
#### PowerShell Modules
- Az: 11.2.0
- Pester: 5.5.0
- PSScriptAnalyzer: 1.21.0
### Xcode
| Version | Build | Path |
| ---------------- | ------- | ------------------------------ |
| 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 |
#### Xcode Support Tools
- xcpretty 0.3.0
#### 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| visionOS 1.0 | xros1.0 | 15.2 |
| Simulator - visionOS 1.0 | xrsimulator1.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 |
| 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 |
#### 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 | 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 | 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.4 | 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.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.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.4 | 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.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.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.3.1<br>15.0.1<br>15.1<br>15.2 | Apple Vision Pro |
### Android
| Package Name | Version |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 33.1.24 |
| Android SDK Build-tools | 34.0.0<br>33.0.2 |
| Android SDK Platforms | android-34-ext8 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 2)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 34.0.5 |
| 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.1.10909125 (default) |
#### Environment variables
| Name | Value |
| ----------------------- | --------------------------------------------------- |
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
+1 -2
View File
@@ -21,7 +21,7 @@ $xcodeVersions | ForEach-Object -ThrottleLimit $threadCount -Parallel {
Import-Module "$env:HOME/image-generation/helpers/Common.Helpers.psm1"
Import-Module "$env:HOME/image-generation/helpers/Xcode.Installer.psm1" -DisableNameChecking
Install-XcodeVersion -Version $_.version -LinkTo $_.link
Install-XcodeVersion -Version $_.version -LinkTo $_.link -Sha256Sum $_.sha256
Confirm-XcodeIntegrity -Version $_.link
}
@@ -44,7 +44,6 @@ $xcodeVersions | ForEach-Object {
$xcodebuildPath = Get-XcodeToolPath -Version $_.link -ToolName 'xcodebuild'
Invoke-ValidateCommand "sudo $xcodebuildPath -downloadPlatform $runtime" | Out-Null
}
}
Invoke-XcodeRunFirstLaunch -Version $defaultXcode
@@ -7,9 +7,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"
: '
@@ -14,7 +14,7 @@ scutil --set LocalHostName $name
scutil --set ComputerName "${name}.local"
EOF
chmod +x "/usr/local/bin/change_hostname.sh"
chmod +x /usr/local/bin/change_hostname.sh
sudo tee -a /Library/LaunchDaemons/change_hostname.plist > /dev/null <<\EOF
<?xml version="1.0" encoding="UTF-8"?>
@@ -22,7 +22,7 @@ if is_Veertu; then
fi
# Change screen resolution to the maximum supported for 4Mb video memory
if [ -d "/Library/Application Support/VMware Tools" ]; then
if [[ -d "/Library/Application Support/VMware Tools" ]]; then
sudo "/Library/Application Support/VMware Tools/vmware-resolutionSet" 1176 885
fi
@@ -43,7 +43,6 @@ defaults write com.apple.VoiceOver4/default SCREnableAppleScript -bool YES
swiftc -suppress-warnings "${HOME}/image-generation/add-certificate.swift"
certs=(
AppleWWDRCAG3.cer
DeveloperIDG2CA.cer
@@ -52,9 +51,7 @@ for cert in ${certs[@]}; do
echo "Adding ${cert} certificate"
cert_path="${HOME}/${cert}"
curl -fsSL "https://www.apple.com/certificateauthority/${cert}" --output ${cert_path}
sudo ./add-certificate ${cert_path}
rm ${cert_path}
done
@@ -63,7 +60,7 @@ rm -f ./add-certificate
# enable-automationmode-without-authentication
if ! is_BigSur; then
retry=10
while [ $retry -gt 0 ]; do
while [[ $retry -gt 0 ]]; do
{
osascript <<EOF
tell application "Terminal"
@@ -80,7 +77,7 @@ EOF
} && break
retry=$((retry-1))
if [ $retry -eq 0 ]; then
if [[ $retry -eq 0 ]]; then
echo "No retry attempts left"
exit 1
fi
@@ -100,7 +97,7 @@ done
fi
# Create symlink for tests running
if [ ! -d "/usr/local/bin" ];then
if [[ ! -d "/usr/local/bin" ]];then
sudo mkdir -p -m 775 /usr/local/bin
sudo chown $USER:admin /usr/local/bin
fi
@@ -8,7 +8,7 @@ Launch_Daemons="/Library/LaunchDaemons"
# EOF in quotes to disable variable expansion
echo "Creating limit.maxfiles.plist"
cat > "${Launch_Daemons}/limit.maxfiles.plist" << EOF
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">
@@ -28,18 +28,17 @@ EOF
# Creating script for applying workaround https://developer.apple.com/forums/thread/735798
cat > "/Users/runner/limit-maxfiles.sh" << EOF
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"
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"
chmod 0644 ${Launch_Daemons}/limit.maxfiles.plist
echo "Done, limit.maxfiles has been updated"
@@ -7,7 +7,7 @@
################################################################################
PLIST=/Library/LaunchDaemons/sonoma.detectnewhardware.plist
cat <<EOF > "${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">
@@ -27,9 +27,8 @@ 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}"
/bin/chmod 644 ${PLIST}
/usr/sbin/chown root:wheel ${PLIST}
: '
The MIT License (MIT)
@@ -15,5 +15,5 @@ server time.windows.com
EOF
# Set the timezone to UTC.
echo The Timezone setting to UTC...
echo "The Timezone setting to UTC..."
ln -sf /usr/share/zoneinfo/UTC /etc/localtime
@@ -21,7 +21,7 @@ else
fi
release_label="macOS-${label_version}"
if is_VenturaX64 || is_SonomaX64; then
if is_Ventura || is_Sonoma; 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
@@ -5,7 +5,7 @@
################################################################################
# set screensaver idleTime to 0, to prevent turning screensaver on
macUUID=`ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-62`
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
@@ -22,7 +22,7 @@ systemValuesArray=(
"'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"
"'kTCCServiceScreenCapture','/usr/local/opt/runner/provisioner/provisioner',0,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
"'kTCCServiceScreenCapture','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
"'kTCCServiceAppleEvents','/usr/local/opt/runner/provisioner/provisioner',1,2,3,1,NULL,NULL,0,'com.apple.finder',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e66696e64657200000003',NULL,1592919552"
"'kTCCServiceAccessibility','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,NULL,1592919552"
# Allow Full Disk Access for "Microsoft Defender for macOS" to bypass installation on-flight
@@ -62,7 +62,7 @@ userValuesArray=(
"'kTCCServiceAppleEvents','/usr/libexec/sshd-keygen-wrapper',1,2,3,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'com.apple.Terminal',X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,1650386089"
"'kTCCServicePostEvent','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
"'kTCCServiceAppleEvents','/usr/local/opt/runner/provisioner/provisioner',1,2,3,1,NULL,NULL,0,'com.apple.finder',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e66696e64657200000003',NULL,1592919552"
"'kTCCServiceScreenCapture','/usr/local/opt/runner/provisioner/provisioner',0,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
"'kTCCServiceScreenCapture','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
"'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
@@ -13,23 +13,22 @@ if is_Arm64; then
fi
retry=10
while [ $retry -gt 0 ]; do
while [[ $retry -gt 0 ]]; do
openwindows=$(osascript -e 'tell application "System Events" to get every window of (every process whose class of windows contains window)') && break
retry=$((retry-1))
if [ $retry -eq 0 ]; then
if [[ $retry -eq 0 ]]; then
echo "No retry attempts left"
exit 1
fi
sleep 30
done
IFS=',' read -r -a windowslist <<< "$openwindows"
IFS=',' read -r -a windowslist <<< $openwindows
if [ -n "${openwindows}" ]; then
if [[ -n ${openwindows} ]]; then
echo "Found opened window:"
fi
for window in "${windowslist[@]}"; do
for window in ${windowslist[@]}; do
if [[ $window =~ "NotificationCenter" ]]; then
echo "[Warning] $window"
else
@@ -38,6 +37,6 @@ for window in "${windowslist[@]}"; do
fi
done
if [ "${scripterror}" = true ]; then
if [[ ${scripterror} = true ]]; then
exit 1
fi
@@ -1,19 +0,0 @@
#!/bin/bash -e -o pipefail
################################################################################
## File: configure-xcode-symlinks.sh
## Desc: Link the existing Xcodes into the correct location for provisionator.
## This is maintained for backwards compatibility only. Do not add new xcodes here.
################################################################################
source ~/utils/utils.sh
ln -sf /Applications/Xcode_8.app /Applications/Xcode8.app
ln -sf /Applications/Xcode_8.1.app /Applications/Xcode81.app
ln -sf /Applications/Xcode_9.app /Applications/Xcode9.app
ln -sf /Applications/Xcode_9.1.app /Applications/Xcode91.app
ln -sf /Applications/Xcode_9.2.app /Applications/Xcode92.app
ln -sf /Applications/Xcode_9.3.app /Applications/Xcode93.app
ln -sf /Applications/Xcode_9.3.app /Applications/Xcode_9.3_beta.app
ln -sf /Applications/Xcode_9.4.app /Applications/Xcode_9.4-beta.app
ln -sf /Applications/Xcode_9.4.app /Applications/Xcode_9.4_beta.app
ln -sf /Applications/Xcode_9.4.app /Applications/Xcode_9.4_beta_2.app
@@ -5,6 +5,7 @@
################################################################################
source ~/utils/utils.sh
XCODE_LIST=($(get_toolset_value '.xcode.versions | reverse | .[].link'))
DEFAULT_XCODE_VERSION=$(get_toolset_value '.xcode.default')
@@ -12,15 +13,14 @@ DEFAULT_XCODE_VERSION=$(get_toolset_value '.xcode.default')
# Assets.xcassets : error : CoreData: error: (6922) I/O error for database
# at $HOME/Library/Developer/Xcode/UserData/IB Support/Simulator Devices/{GUID}
echo "Erase a device's contents and settings:"
for XCODE_VERSION in "${XCODE_LIST[@]}"
do
for XCODE_VERSION in ${XCODE_LIST[@]}; do
echo " Xcode Version: ${XCODE_VERSION}"
launchctl remove com.apple.CoreSimulator.CoreSimulatorService || true
#add sleep to let CoreSimulatorService to exit
sleep 3
# Select xcode version by default
sudo xcode-select -s "/Applications/Xcode_${XCODE_VERSION}.app/Contents/Developer"
sudo xcode-select -s /Applications/Xcode_${XCODE_VERSION}.app/Contents/Developer
# Erase a device's contents and settings
xcrun simctl erase all
@@ -31,4 +31,4 @@ done
# Select xcode version by default
echo "Setting Xcode ${DEFAULT_XCODE_VERSION} as default"
sudo xcode-select -s "/Applications/Xcode_${DEFAULT_XCODE_VERSION}.app/Contents/Developer"
sudo xcode-select -s /Applications/Xcode_${DEFAULT_XCODE_VERSION}.app/Contents/Developer
@@ -8,13 +8,13 @@
source ~/utils/utils.sh
echo "Check if ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE folder exist..."
if [ ! -d $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE ]; then
if [[ ! -d $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE ]]; then
mkdir -p $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE
fi
download_url=$(get_github_package_download_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")
echo "Downloading action-versions $download_url"
archive_path=$(download_with_retry "$download_url")
tar -xzf "$archive_path" -C "$ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE"
archive_path=$(download_with_retry $download_url)
tar -xzf $archive_path -C $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE
invoke_tests "ActionArchiveCache"
@@ -6,39 +6,37 @@
source ~/utils/utils.sh
function filter_components_by_version {
minimumVersion=$1
add_filtered_instalaltion_components() {
local minimum_version=$1
shift
toolsArr=("$@")
local tools_array=("$@")
for item in ${toolsArr[@]}
do
for item in ${tools_array[@]}; do
# take the last argument after spliting string by ';'' and '-''
version=$(echo "${item##*[-;]}")
if verlte $minimumVersion $version
then
if [[ "$(printf "${minimum_version}\n${version}\n" | sort -V | head -n1)" == "$minimum_version" ]]; then
components+=($item)
fi
done
}
function get_full_ndk_version {
majorVersion=$1
ndkVersion=$(${SDKMANAGER} --list | grep "ndk;${majorVersion}.*" | awk '{gsub("ndk;", ""); print $1}' | sort -V | tail -n1)
get_full_ndk_version() {
local majorVersion=$1
ndkVersion=$(${SDKMANAGER} --list | grep "ndk;${majorVersion}.*" | awk '{gsub("ndk;", ""); print $1}' | sort -V | tail -n1)
echo "$ndkVersion"
}
components=()
ANDROID_PLATFORM=$(get_toolset_value '.android.platform_min_version')
ANDROID_BUILD_TOOL=$(get_toolset_value '.android.build_tools_min_version')
ANDROID_EXTRA_LIST=($(get_toolset_value '.android."extras"[]'))
ANDROID_ADDON_LIST=($(get_toolset_value '.android."addons"[]'))
ANDROID_ADDITIONAL_TOOLS=($(get_toolset_value '.android."additional_tools"[]'))
ANDROID_NDK_MAJOR_VERSIONS=($(get_toolset_value '.android.ndk."versions"[]'))
ANDROID_NDK_MAJOR_DEFAULT=$(get_toolset_value '.android.ndk.default')
ANDROID_NDK_MAJOR_LATEST=$(get_toolset_value '.android.ndk."versions"[-1]')
android_platform=$(get_toolset_value '.android.platform_min_version')
android_build_tool=$(get_toolset_value '.android.build_tools_min_version')
android_extra_list=($(get_toolset_value '.android."extras"[]'))
android_addon_list=($(get_toolset_value '.android."addons"[]'))
android_additional_tools=($(get_toolset_value '.android."additional_tools"[]'))
android_ndk_major_versions=($(get_toolset_value '.android.ndk."versions"[]'))
android_ndk_major_default=$(get_toolset_value '.android.ndk.default')
android_ndk_major_latest=$(get_toolset_value '.android.ndk."versions"[-1]')
# Get the latest command line tools from https://developer.android.com/studio#cmdline-tools
# Newer version(s) require Java 11 by default
# See https://github.com/actions/runner-images/issues/6960
@@ -81,15 +79,15 @@ echo "Installing latest tools & platform tools..."
echo y | $SDKMANAGER "tools" "platform-tools"
echo "Installing latest ndk..."
for ndk_version in "${ANDROID_NDK_MAJOR_VERSIONS[@]}"
for ndk_version in "${android_ndk_major_versions[@]}"
do
ndk_full_version=$(get_full_ndk_version $ndk_version)
echo y | $SDKMANAGER "ndk;$ndk_full_version"
done
ndkDefault=$(get_full_ndk_version $ANDROID_NDK_MAJOR_DEFAULT)
ndkDefault=$(get_full_ndk_version $android_ndk_major_default)
ANDROID_NDK_HOME=$ANDROID_HOME/ndk/$ndkDefault
ndkLatest=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LATEST)
ndkLatest=$(get_full_ndk_version $android_ndk_major_latest)
ANDROID_NDK_LATEST_HOME=$ANDROID_HOME/ndk/$ndkLatest
# ANDROID_NDK, ANDROID_NDK_HOME, and ANDROID_NDK_ROOT variables should be set as many customer builds depend on them https://github.com/actions/runner-images/issues/5879
echo "export ANDROID_NDK=$ANDROID_NDK_HOME" >> "${HOME}/.bashrc"
@@ -98,27 +96,27 @@ echo "export ANDROID_NDK_ROOT=$ANDROID_NDK_HOME" >> "${HOME}/.bashrc"
echo "export ANDROID_NDK_LATEST_HOME=$ANDROID_NDK_LATEST_HOME" >> "${HOME}/.bashrc"
availablePlatforms=($($SDKMANAGER --list | grep "platforms;android-[0-9]" | cut -d"|" -f 1 | sort -u))
filter_components_by_version $ANDROID_PLATFORM "${availablePlatforms[@]}"
add_filtered_instalaltion_components $android_platform "${availablePlatforms[@]}"
allBuildTools=($($SDKMANAGER --list --include_obsolete | grep "build-tools;" | cut -d"|" -f 1 | sort -u))
availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/})
filter_components_by_version $ANDROID_BUILD_TOOL "${availableBuildTools[@]}"
add_filtered_instalaltion_components $android_build_tool "${availableBuildTools[@]}"
echo "y" | $SDKMANAGER ${components[@]}
for extra_name in "${ANDROID_EXTRA_LIST[@]}"
for extra_name in "${android_extra_list[@]}"
do
echo "Installing extra $extra_name ..."
echo y | $SDKMANAGER "extras;$extra_name"
done
for addon_name in "${ANDROID_ADDON_LIST[@]}"
for addon_name in "${android_addon_list[@]}"
do
echo "Installing add-on $addon_name ..."
echo y | $SDKMANAGER "add-ons;$addon_name"
done
for tool_name in "${ANDROID_ADDITIONAL_TOOLS[@]}"
for tool_name in "${android_additional_tools[@]}"
do
echo "Installing additional tool $tool_name ..."
echo y | $SDKMANAGER "$tool_name"
@@ -6,11 +6,11 @@
source ~/utils/utils.sh
echo Installing aws...
echo "Installing aws..."
awscliv2_pkg_path=$(download_with_retry "https://awscli.amazonaws.com/AWSCLIV2.pkg")
sudo installer -pkg "$awscliv2_pkg_path" -target /
echo Installing aws sam cli...
echo "Installing aws sam cli..."
brew tap aws/tap
brew_smart_install aws-sam-cli
+11 -10
View File
@@ -5,18 +5,19 @@
################################################################################
source ~/utils/utils.sh
arch=$(get_arch)
# Check MacOS architecture and if ARM install using brew
if [ "$arch" == "arm64" ]; then
brew_smart_install azcopy
if is_Arm64; then
url="https://aka.ms/downloadazcopy-v10-mac-arm64"
else
# Temporary pin 10.21.2 version of AzCopy until 10.22.0 is fixed
archive_path=$(download_with_retry "https://azcopyvnext.azureedge.net/releases/release-10.21.2-20231106/azcopy_darwin_amd64_10.21.2.zip")
unzip -qq "$archive_path" -d /tmp/azcopy
extract_path=$(echo /tmp/azcopy/azcopy*)
cp "$extract_path/azcopy" "/usr/local/bin/azcopy"
chmod +x "/usr/local/bin/azcopy"
url="https://aka.ms/downloadazcopy-v10-mac"
fi
# Install AzCopy
archive_path=$(download_with_retry ${url})
unzip -qq $archive_path -d /tmp/azcopy
extract_path=$(echo /tmp/azcopy/azcopy*)
cp $extract_path/azcopy /usr/local/bin/azcopy
chmod +x /usr/local/bin/azcopy
invoke_tests "Common" "AzCopy"
+1 -1
View File
@@ -6,7 +6,7 @@
source ~/utils/utils.sh
echo Installing bicep cli...
echo "Installing bicep cli..."
brew tap azure/bicep
brew_smart_install bicep
+23 -23
View File
@@ -11,40 +11,40 @@ echo "Installing Google Chrome..."
brew install --cask google-chrome
# Parse Google Chrome version
FULL_CHROME_VERSION=$("/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --version)
FULL_CHROME_VERSION=${FULL_CHROME_VERSION#Google Chrome }
CHROME_VERSION=${FULL_CHROME_VERSION%.*}
echo "Google Chrome version is $FULL_CHROME_VERSION"
full_chrome_version=$("/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --version)
full_chrome_version=${full_chrome_version#Google Chrome }
chrome_version=${full_chrome_version%.*}
echo "Google Chrome version is $full_chrome_version"
# Get Google Chrome versions information
CHROME_PLATFORM="mac-$arch"
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="$(cat $(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')
echo "Installing Chrome Driver version $CHROMEDRIVER_VERSION"
chromedriver_version=$(echo $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_DIR="/usr/local/share/chromedriver-${CHROME_PLATFORM}"
CHROMEDRIVER_BIN="$CHROMEDRIVER_DIR/chromedriver"
chromedriver_url=$(echo $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"
CHROMEDRIVER_ARCHIVE_PATH=$(download_with_retry "$CHROMEDRIVER_URL")
unzip -qq "$CHROMEDRIVER_ARCHIVE_PATH" -d /tmp/
sudo mv "/tmp/chromedriver-${CHROME_PLATFORM}" "$CHROMEDRIVER_DIR"
ln -s "$CHROMEDRIVER_BIN" /usr/local/bin/chromedriver
echo "export CHROMEWEBDRIVER=$CHROMEDRIVER_DIR" >> "${HOME}/.bashrc"
chromedriver_archive_path=$(download_with_retry $chromedriver_url)
unzip -qq $chromedriver_archive_path -d /tmp/
sudo mv /tmp/chromedriver-$chrome_platform $chromedriver_dir
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')
echo "Installing Google Chrome for Testing version $CHROME_FOR_TESTING_VERSION"
chrome_for_testing_version=$(echo $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_APP="Google Chrome for Testing.app"
chrome_for_testing_url=$(echo $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")
unzip -qq "$CHROME_FOR_TESTING_ARCHIVE_PATH" -d /tmp/
mv "/tmp/chrome-${CHROME_PLATFORM}/${CHROME_FOR_TESTING_APP}" "/Applications/${CHROME_FOR_TESTING_APP}"
chrome_for_testing_archive_path=$(download_with_retry $chrome_for_testing_url)
unzip -qq $chrome_for_testing_archive_path -d /tmp/
mv "/tmp/chrome-$chrome_platform/$chrome_for_testing_app" "/Applications/$chrome_for_testing_app"
echo "Installing Selenium"
brew_smart_install "selenium-server"
@@ -8,7 +8,7 @@ source ~/utils/utils.sh
# Retrieve the CLI version of the latest CodeQL bundle.
defaults_json_path=$(download_with_retry https://raw.githubusercontent.com/github/codeql-action/v2/src/defaults.json)
bundle_version="$(jq -r '.cliVersion' "$defaults_json_path")"
bundle_version=$(jq -r '.cliVersion' $defaults_json_path)
bundle_tag_name="codeql-bundle-v$bundle_version"
echo "Downloading CodeQL bundle $bundle_version..."
@@ -16,17 +16,17 @@ echo "Downloading CodeQL bundle $bundle_version..."
# different operating systems within containers.
archive_path=$(download_with_retry "https://github.com/github/codeql-action/releases/download/$bundle_tag_name/codeql-bundle.tar.gz")
codeql_toolcache_path="$AGENT_TOOLSDIRECTORY/CodeQL/$bundle_version/x64"
mkdir -p "$codeql_toolcache_path"
codeql_toolcache_path=$AGENT_TOOLSDIRECTORY/CodeQL/$bundle_version/x64
mkdir -p $codeql_toolcache_path
echo "Unpacking the downloaded CodeQL bundle archive..."
tar -xzf "$archive_path" -C "$codeql_toolcache_path"
tar -xzf $archive_path -C $codeql_toolcache_path
# Touch a file to indicate to the CodeQL Action that this bundle shipped with the toolcache. This is
# to support overriding the CodeQL version specified in defaults.json on GitHub Enterprise.
touch "$codeql_toolcache_path/pinned-version"
touch $codeql_toolcache_path/pinned-version
# Touch a file to indicate to the toolcache that setting up CodeQL is complete.
touch "$codeql_toolcache_path.complete"
touch $codeql_toolcache_path.complete
invoke_tests "Common" "CodeQL Bundle"
@@ -28,9 +28,9 @@ for package in $cask_packages; do
# 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"
brew install $virtualbox_cask_path
else
brew install --cask "$package"
brew install --cask $package
fi
done
@@ -51,7 +51,7 @@ if is_Monterey; then
osascript $HOME/utils/confirm-identified-developers.scpt $USER_PASSWORD
} && break
if [ "$retry" -eq 0 ]; then
if [[ $retry -eq 0 ]]; then
echo "Executing AppleScript failed. No retries left"
exit 1
fi
@@ -75,23 +75,20 @@ if is_Monterey; then
dbQuery="SELECT * FROM kext_policy WHERE bundle_id LIKE 'com.parallels.kext.%';"
kext=$(sudo sqlite3 $dbName "$dbQuery")
if [ -z "$kext" ]; then
if [[ -z $kext ]]; then
echo "Parallels International GmbH not found"
exit 1
fi
# Create env variable
url=$(brew info --json=v2 --installed | jq -r '.casks[] | select(.name[] == "Parallels Desktop").url')
if [ -z "$url" ]; then
if [[ -z $url ]]; then
echo "Unable to parse url for Parallels Desktop cask"
exit 1
fi
echo "export PARALLELS_DMG_URL=$url" >> "${HOME}/.bashrc"
echo "export PARALLELS_DMG_URL=$url" >> ${HOME}/.bashrc
fi
# Invoke bazel to download bazel version via bazelisk
bazel
# Install Azure DevOps extension for Azure Command Line Interface
az extension add -n azure-devops
+15 -15
View File
@@ -13,32 +13,32 @@ arch=$(get_arch)
# Download installer from dot.net and keep it locally
DOTNET_INSTALL_SCRIPT="https://dot.net/v1/dotnet-install.sh"
install_script_path=$(download_with_retry $DOTNET_INSTALL_SCRIPT)
chmod +x "$install_script_path"
chmod +x $install_script_path
ARGS_LIST=()
args_list=()
echo "Parsing dotnet SDK (except rc and preview versions) from .json..."
DOTNET_VERSIONS=($(get_toolset_value ".dotnet.arch[\"$arch\"].versions | .[]"))
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")
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))')
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" | \
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
done
for ARGS in "${ARGS_LIST[@]}"; do
"$install_script_path" --version $ARGS -NoPath --arch $arch
for ARGS in ${args_list[@]}; do
$install_script_path --version $ARGS -NoPath --arch $arch
done
# dotnet installer doesn't create symlink to executable in /user/local/bin
@@ -46,12 +46,12 @@ done
ln -s ~/.dotnet/dotnet /usr/local/bin/dotnet
# Validate installation
if [ $(dotnet --list-sdks | wc -l) -lt "1" ]; then
if [[ $(dotnet --list-sdks | wc -l) -lt "1" ]]; then
echo "The .NET Core SDK is not installed"
exit 1
fi
echo 'export PATH="$PATH:$HOME/.dotnet/tools"' >> "$HOME/.bashrc"
echo 'export PATH="$PATH:$HOME/.dotnet/tools"' >> $HOME/.bashrc
echo "Dotnet operations have been completed successfully..."
invoke_tests "Common" ".NET"
+11 -11
View File
@@ -10,30 +10,30 @@ echo "Installing Microsoft Edge..."
brew install --cask microsoft-edge
EDGE_INSTALLATION_PATH="/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge"
EDGE_VERSION=$("$EDGE_INSTALLATION_PATH" --version | cut -d' ' -f 3)
EDGE_VERSION_MAJOR=$(echo $EDGE_VERSION | cut -d'.' -f 1)
edge_version=$("$EDGE_INSTALLATION_PATH" --version | cut -d' ' -f 3)
edge_version_major=$(echo $edge_version | cut -d'.' -f 1)
echo "Version of Microsoft Edge: ${EDGE_VERSION}"
echo "Version of Microsoft Edge: ${edge_version}"
echo "Installing Microsoft Edge WebDriver..."
EDGE_DRIVER_VERSION_FILE_PATH=$(download_with_retry "https://msedgedriver.azureedge.net/LATEST_RELEASE_${EDGE_VERSION_MAJOR}_MACOS")
EDGE_DRIVER_LATEST_VERSION=$(iconv -f utf-16 -t utf-8 "$EDGE_DRIVER_VERSION_FILE_PATH" | tr -d '\r')
EDGE_DRIVER_URL="https://msedgedriver.azureedge.net/${EDGE_DRIVER_LATEST_VERSION}/edgedriver_mac64.zip"
edge_driver_version_file_path=$(download_with_retry "https://msedgedriver.azureedge.net/LATEST_RELEASE_${edge_version_major}_MACOS")
edge_driver_latest_version=$(iconv -f utf-16 -t utf-8 "$edge_driver_version_file_path" | tr -d '\r')
edge_driver_url="https://msedgedriver.azureedge.net/${edge_driver_latest_version}/edgedriver_mac64.zip"
echo "Compatible version of WebDriver: ${EDGE_DRIVER_LATEST_VERSION}"
echo "Compatible version of WebDriver: ${edge_driver_latest_version}"
EDGE_DRIVER_ARCHIVE_PATH=$(download_with_retry "$EDGE_DRIVER_URL")
edge_driver_archive_path=$(download_with_retry "$edge_driver_url")
# Move webdriver to the separate directory to be consistent with the docs
# https://docs.microsoft.com/en-us/azure/devops/pipelines/test/continuous-test-selenium?view=azure-devops#decide-how-you-will-deploy-and-test-your-app
EDGE_DRIVER_DIR="/usr/local/share/edge_driver"
mkdir -p $EDGE_DRIVER_DIR
unzip -qq "$EDGE_DRIVER_ARCHIVE_PATH" -d "$EDGE_DRIVER_DIR"
ln -s "$EDGE_DRIVER_DIR/msedgedriver" "/usr/local/bin/msedgedriver"
unzip -qq $edge_driver_archive_path -d $EDGE_DRIVER_DIR
ln -s $EDGE_DRIVER_DIR/msedgedriver /usr/local/bin/msedgedriver
echo "export EDGEWEBDRIVER=${EDGE_DRIVER_DIR}" >> "${HOME}/.bashrc"
echo "export EDGEWEBDRIVER=${EDGE_DRIVER_DIR}" >> ${HOME}/.bashrc
# Configure Edge Updater to prevent auto update
# https://learn.microsoft.com/en-us/deployedge/edge-learnmore-edgeupdater-for-macos
@@ -14,6 +14,6 @@ brew_smart_install "geckodriver"
geckoPath="$(brew --prefix geckodriver)/bin"
echo "Add GECKOWEBDRIVER to bashrc..."
echo "export GECKOWEBDRIVER=${geckoPath}" >> "${HOME}/.bashrc"
echo "export GECKOWEBDRIVER=${geckoPath}" >> ${HOME}/.bashrc
invoke_tests "Browsers" "Firefox"
+1 -1
View File
@@ -14,7 +14,7 @@ done
# Delete default gfortran link if it exists https://github.com/actions/runner-images/issues/1280
gfortranPath=$(which gfortran) || true
if [ $gfortranPath ]; then
if [[ $gfortranPath ]]; then
rm $gfortranPath
fi
+3 -3
View File
@@ -6,12 +6,12 @@
source ~/utils/utils.sh
echo Installing Git...
echo "Installing Git..."
brew_smart_install "git"
git config --global --add safe.directory "*"
echo Installing Git LFS
echo "Installing Git LFS"
brew_smart_install "git-lfs"
# Update global git config
@@ -19,7 +19,7 @@ git lfs install
# Update system git config
sudo git lfs install --system
echo Disable all the Git help messages...
echo "Disable all the Git help messages..."
git config --global advice.pushUpdateRejected false
git config --global advice.pushNonFFCurrent false
git config --global advice.pushNonFFMatching false
+3 -3
View File
@@ -6,11 +6,11 @@
source ~/utils/utils.sh
DEFAULT_GO_VERSION=$(get_toolset_value '.go.default')
default_go_version=$(get_toolset_value '.go.default')
echo "Installing Go..."
brew_smart_install "go@${DEFAULT_GO_VERSION}"
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/
ln -sf $(brew --prefix go@${default_go_version})/bin/* /usr/local/bin/
invoke_tests "Common" "Go"
@@ -6,9 +6,9 @@
source ~/utils/utils.sh
curl --proto '=https' --tlsv1.2 -fsSL https://get-ghcup.haskell.org | 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"
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}')
@@ -10,7 +10,7 @@ arch=$(get_arch)
echo "Installing Homebrew..."
homebrew_installer_path=$(download_with_retry "https://raw.githubusercontent.com/Homebrew/install/master/install.sh")
/bin/bash "$homebrew_installer_path"
/bin/bash $homebrew_installer_path
if [[ $arch == "arm64" ]]; then
/opt/homebrew/bin/brew update
@@ -7,16 +7,16 @@
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 +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"
if [[ -d $HOME/.conda ]]; then
sudo chown -R $USER $HOME/.conda
fi
echo "export CONDA=/usr/local/miniconda" >> $HOME/.bashrc
@@ -14,10 +14,10 @@ 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"
brew_smart_install $versionToInstall
if ! which mongo ; then
brew link "$versionToInstall"
brew link $versionToInstall
fi
invoke_tests "Databases" "MongoDB"
+26 -23
View File
@@ -4,45 +4,48 @@
## Desc: Install Mono Framework
################################################################################
# Source utility functions
source ~/utils/utils.sh
# Install Mono Framework
MONO_VERSION_FULL=$(get_toolset_value '.mono.framework.version')
MONO_VERSION=$(echo "$MONO_VERSION_FULL" | cut -d. -f 1,2,3)
MONO_VERSION_SHORT=$(echo $MONO_VERSION_FULL | cut -d. -f 1,2)
MONO_PKG_URL="https://download.mono-project.com/archive/${MONO_VERSION}/macos-10-universal/MonoFramework-MDK-${MONO_VERSION_FULL}.macos10.xamarin.universal.pkg"
mono_version_full=$(get_toolset_value '.mono.framework.version')
mono_pkg_sha256=$(get_toolset_value '.mono.framework.sha256')
mono_version=$(echo $mono_version_full | cut -d. -f 1,2,3)
mono_version_short=$(echo $mono_version_full | cut -d. -f 1,2)
mono_pkg_url="https://download.mono-project.com/archive/${mono_version}/macos-10-universal/MonoFramework-MDK-${mono_version_full}.macos10.xamarin.universal.pkg"
MONO_VERSIONS_PATH='/Library/Frameworks/Mono.framework/Versions'
MONO_PKG_PATH=$(download_with_retry "$MONO_PKG_URL")
echo "Installing Mono Framework ${MONO_VERSION_FULL}..."
sudo installer -pkg "$MONO_PKG_PATH" -target /
mono_pkg_path=$(download_with_retry $mono_pkg_url)
use_checksum_comparison $mono_pkg_path $mono_pkg_sha256
echo "Installing Mono Framework ${mono_version_full}..."
sudo installer -pkg $mono_pkg_path -target /
# Download and install NUnit console
NUNIT_VERSION=$(get_toolset_value '.mono.nunit.version')
NUNIT_ARCHIVE_URL="https://github.com/nunit/nunit-console/releases/download/${NUNIT_VERSION}/NUnit.Console-${NUNIT_VERSION}.zip"
nunit_version=$(get_toolset_value '.mono.nunit.version')
nunit_archive_url="https://github.com/nunit/nunit-console/releases/download/${nunit_version}/NUnit.Console-${nunit_version}.zip"
nunit_archive_sha256=$(get_toolset_value '.mono.nunit.sha256')
NUNIT_PATH="/Library/Developer/nunit"
NUNIT_VERSION_PATH="$NUNIT_PATH/$NUNIT_VERSION"
nunit_version_path=$NUNIT_PATH/$nunit_version
NUNIT_ARCHIVE_PATH=$(download_with_retry "$NUNIT_ARCHIVE_URL")
echo "Installing NUnit ${NUNIT_VERSION}..."
sudo mkdir -p "$NUNIT_VERSION_PATH"
sudo unzip -q "$NUNIT_ARCHIVE_PATH" -d "$NUNIT_VERSION_PATH"
nunit_archive_path=$(download_with_retry $nunit_archive_url)
use_checksum_comparison $nunit_archive_path $nunit_archive_sha256
echo "Installing NUnit ${nunit_version}..."
sudo mkdir -p $nunit_version_path
sudo unzip -q $nunit_archive_path -d $nunit_version_path
# Create a wrapper script for nunit3-console
echo "Creating nunit3-console wrapper..."
NUNIT3_CONSOLE_WRAPPER=$(mktemp)
cat <<EOF > "$NUNIT3_CONSOLE_WRAPPER"
nunit3_console_wrapper=$(mktemp)
cat <<EOF > "$nunit3_console_wrapper"
#!/bin/bash -e -o pipefail
exec ${MONO_VERSIONS_PATH}/${MONO_VERSION}/bin/mono --debug \$MONO_OPTIONS $NUNIT_VERSION_PATH/nunit3-console.exe "\$@"
exec ${MONO_VERSIONS_PATH}/${mono_version}/bin/mono --debug \$MONO_OPTIONS $nunit_version_path/nunit3-console.exe "\$@"
EOF
cat "$NUNIT3_CONSOLE_WRAPPER"
sudo chmod +x "$NUNIT3_CONSOLE_WRAPPER"
sudo mv "$NUNIT3_CONSOLE_WRAPPER" "${MONO_VERSIONS_PATH}/${MONO_VERSION}/Commands/nunit3-console"
cat $nunit3_console_wrapper
sudo chmod +x $nunit3_console_wrapper
sudo mv $nunit3_console_wrapper "${MONO_VERSIONS_PATH}/${mono_version}/Commands/nunit3-console"
# Create a symlink for the short version of Mono (e.g., 6.12)
echo "Creating short symlink '${MONO_VERSION_SHORT}'..."
sudo ln -s "${MONO_VERSIONS_PATH}/${MONO_VERSION}" "${MONO_VERSIONS_PATH}/${MONO_VERSION_SHORT}"
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"
+1 -1
View File
@@ -14,7 +14,7 @@ brew link node@$defaultVersion --force --overwrite
echo Installing yarn...
yarn_installer_path=$(download_with_retry "https://yarnpkg.com/install.sh")
bash "$yarn_installer_path"
bash $yarn_installer_path
if is_BigSur || is_Monterey; then
npm_global_packages=$(get_toolset_value '.npm.global_packages[].name')
+3 -4
View File
@@ -6,12 +6,12 @@
source ~/utils/utils.sh
[ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}")
[[ -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_installer_path=$(download_with_retry "https://raw.githubusercontent.com/nvm-sh/nvm/$nvm_version/install.sh")
if bash "$nvm_installer_path"; then
. ~/.bashrc
if bash $nvm_installer_path; then
source ~/.bashrc
nvm --version
for version in $(get_toolset_value '.node.nvm_versions[]'); do
nvm install "v${version}"
@@ -19,7 +19,6 @@ if bash "$nvm_installer_path"; then
# set system node as default
nvm alias default system
echo "Node version manager has been installed successfully"
else
echo "Node version manager installation failed"
@@ -18,15 +18,15 @@ createEnvironmentVariable() {
if [[ ${DEFAULT} == "True" ]]; then
echo "Setting up JAVA_HOME variable to ${INSTALL_PATH_PATTERN}"
echo "export JAVA_HOME=${INSTALL_PATH_PATTERN}" >> "${HOME}/.bashrc"
echo "export JAVA_HOME=${INSTALL_PATH_PATTERN}" >> ${HOME}/.bashrc
fi
if [[ $arch == "arm64" ]]; then
echo "Setting up JAVA_HOME_${JAVA_VERSION}_arm64 variable to ${INSTALL_PATH_PATTERN}"
echo "export JAVA_HOME_${JAVA_VERSION}_arm64=${INSTALL_PATH_PATTERN}" >> "${HOME}/.bashrc"
echo "export JAVA_HOME_${JAVA_VERSION}_arm64=${INSTALL_PATH_PATTERN}" >> ${HOME}/.bashrc
else
echo "Setting up JAVA_HOME_${JAVA_VERSION}_X64 variable to ${INSTALL_PATH_PATTERN}"
echo "export JAVA_HOME_${JAVA_VERSION}_X64=${INSTALL_PATH_PATTERN}" >> "${HOME}/.bashrc"
echo "export JAVA_HOME_${JAVA_VERSION}_X64=${INSTALL_PATH_PATTERN}" >> ${HOME}/.bashrc
fi
}
@@ -58,12 +58,12 @@ installOpenJDK() {
fi
# Download and extract Java binaries
archive_path=$(download_with_retry "$archive_url")
archive_path=$(download_with_retry $archive_url)
echo "Creating ${javaToolcacheVersionArchPath} directory"
mkdir -p ${javaToolcacheVersionArchPath}
tar -xf "$archive_path" -C ${javaToolcacheVersionArchPath} --strip-components=1
tar -xf $archive_path -C ${javaToolcacheVersionArchPath} --strip-components=1
# Create complete file
if [[ $arch == "arm64" ]]; then
@@ -8,19 +8,11 @@ source ~/utils/utils.sh
export PATH="$PATH:/opt/pipx_bin"
toolset=$(get_toolset_path)
pipx_packages=$(jq -r ".pipx[] .package" $toolset)
pipx_packages=$(get_toolset_value '.pipx[].package')
for package in $pipx_packages; do
python_version=$(jq -r ".pipx[] | select(.package == \"$package\") .python" $toolset)
if [ "$python_version" != "null" ]; then
python_path="$HOME/hostedtoolcache/Python/$python_version*/x64/bin/python$python_version"
echo "Install $package into python $python_path"
pipx install $package --python $python_path
else
echo "Install $package into default python"
pipx install $package
fi
echo "Install $package into default python"
pipx install $package
done
invoke_tests "PipxPackages"
@@ -20,11 +20,11 @@ brew services start $postgreService
echo "Check PostgreSQL service is running"
i=10
COMMAND='pg_isready'
while [ $i -gt 0 ]; do
while [[ $i -gt 0 ]]; do
echo "Check PostgreSQL service status"
eval $COMMAND && break
((i--))
if [ $i == 0 ]; then
if [[ $i == 0 ]]; then
echo "PostgreSQL service not ready, all attempts exhausted"
exit 1
fi
@@ -10,21 +10,29 @@ echo Installing PowerShell...
arch=$(get_arch)
metadata_json_path=$(download_with_retry "https://raw.githubusercontent.com/PowerShell/PowerShell/master/tools/metadata.json")
version=$(jq -r '.LTSReleaseTag[0]' "$metadata_json_path")
download_url=$(get_github_package_download_url "PowerShell/PowerShell" "contains(\"osx-$arch.pkg\")" "$version" "$API_PAT")
pkg_path=$(download_with_retry "$download_url")
pwshVersionToolset=$(get_toolset_value '.pwsh.version')
pwshVersions=$(jq -r '.LTSReleaseTag[]' $metadata_json_path)
for version in ${pwshVersions[@]}; do
if [[ "$version" =~ "$pwshVersionToolset" ]]; then
download_url=$(resolve_github_release_asset_url "PowerShell/PowerShell" "contains(\"osx-$arch.pkg\")" "$version" "$API_PAT")
break
fi
done
pkg_path=$(download_with_retry $download_url)
# Work around the issue on macOS Big Sur 11.5 or higher for possible error message ("can't be opened because Apple cannot check it for malicious software") when installing the package
sudo xattr -rd com.apple.quarantine "$pkg_path"
sudo xattr -rd com.apple.quarantine $pkg_path
sudo installer -pkg "$pkg_path" -target /
sudo installer -pkg $pkg_path -target /
# Install PowerShell modules
psModules=$(get_toolset_value '.powershellModules[].name')
for module in ${psModules[@]}; do
echo "Installing $module module"
moduleVersions="$(get_toolset_value ".powershellModules[] | select(.name==\"$module\") | .versions[]?")"
if [[ -z "$moduleVersions" ]];then
if [[ -z $moduleVersions ]];then
# Check MacOS architecture and sudo on Arm64
if [[ $arch == "arm64" ]]; then
sudo pwsh -command "& {Install-Module $module -Force -Scope AllUsers}"
+13 -14
View File
@@ -6,23 +6,22 @@
source ~/utils/utils.sh
function InstallPyPy
{
PACKAGE_URL=$1
InstallPyPy() {
local package_url=$1
PACKAGE_TAR_NAME=$(basename "$PACKAGE_URL")
PACKAGE_TAR_NAME=$(basename $package_url)
echo "Downloading tar archive '$PACKAGE_TAR_NAME'"
archive_path=$(download_with_retry "$PACKAGE_URL")
archive_path=$(download_with_retry $package_url)
echo "Expand '$PACKAGE_TAR_NAME' to the /tmp folder"
tar xf "$archive_path" -C /tmp
tar xf $archive_path -C /tmp
# Get Python version
PACKAGE_NAME=${PACKAGE_TAR_NAME/.tar.bz2/}
MAJOR_VERSION=$(echo ${PACKAGE_NAME/pypy/} | cut -d. -f1)
PYTHON_MAJOR="python$MAJOR_VERSION"
if [ $MAJOR_VERSION != 2 ]; then
if [[ $MAJOR_VERSION != 2 ]]; then
PYPY_MAJOR="pypy$MAJOR_VERSION"
else
PYPY_MAJOR="pypy"
@@ -40,14 +39,14 @@ function InstallPyPy
PYPY_TOOLCACHE_VERSION_ARCH_PATH=$PYPY_TOOLCACHE_VERSION_PATH/x64
echo "Check if PyPy hostedtoolcache folder exist..."
if [ ! -d $PYPY_TOOLCACHE_PATH ]; then
if [[ ! -d $PYPY_TOOLCACHE_PATH ]]; then
mkdir -p $PYPY_TOOLCACHE_PATH
fi
echo "Create PyPy '$PYPY_TOOLCACHE_VERSION_PATH' folder"
mkdir $PYPY_TOOLCACHE_VERSION_PATH
echo "Move PyPy '$PACKAGE_TEMP_FOLDER' binaries to '$PYPY_TOOLCACHE_VERSION_ARCH_PATH' folder"
echo "Move PyPy $PACKAGE_TEMP_FOLDER binaries to $PYPY_TOOLCACHE_VERSION_ARCH_PATH folder"
mv $PACKAGE_TEMP_FOLDER $PYPY_TOOLCACHE_VERSION_ARCH_PATH
echo "Create additional symlinks (Required for UsePythonVersion Azure DevOps task)"
@@ -58,8 +57,8 @@ function InstallPyPy
echo $PYPY_FULL_VERSION > "PYPY_VERSION"
# Starting from PyPy 7.3.4 these links are already included in the package
[ -f ./$PYTHON_MAJOR ] || ln -s $PYPY_MAJOR $PYTHON_MAJOR
[ -f ./python ] || ln -s $PYTHON_MAJOR python
[[ -f ./$PYTHON_MAJOR ]] || ln -s $PYPY_MAJOR $PYTHON_MAJOR
[[ -f ./python ]] || ln -s $PYTHON_MAJOR python
chmod +x ./python ./$PYTHON_MAJOR
@@ -76,12 +75,12 @@ versions_json_path=$(download_with_retry "https://downloads.python.org/pypy/vers
toolsetVersions=$(get_toolset_value '.toolcache[] | select(.name | contains("PyPy")) | .arch.'$arch'.versions[]')
for toolsetVersion in $toolsetVersions; do
latestMajorPyPyVersion=$(cat "$versions_json_path" |
latestMajorPyPyVersion=$(cat $versions_json_path |
jq -r --arg toolsetVersion $toolsetVersion '.[]
| select((.python_version | startswith($toolsetVersion)) and .stable == true).files[]
| select(.platform == "darwin").download_url' | head -1)
if [[ -z "$latestMajorPyPyVersion" ]]; then
echo "Failed to get PyPy version '$toolsetVersion'"
if [[ -z $latestMajorPyPyVersion ]]; then
echo "Failed to get PyPy version $toolsetVersion"
exit 1
fi
InstallPyPy $latestMajorPyPyVersion
+8 -6
View File
@@ -11,18 +11,20 @@ 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
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
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 /
sudo installer -applyChoiceChangesXML $choice_changes_xml -pkg $python2_pkg -target /
pip install --upgrade pip
@@ -44,8 +46,8 @@ export PIPX_HOME=/usr/local/opt/pipx
brew_smart_install "pipx"
echo "export PIPX_BIN_DIR=${PIPX_BIN_DIR}" >> "${HOME}/.bashrc"
echo "export PIPX_HOME=${PIPX_HOME}" >> "${HOME}/.bashrc"
echo 'export PATH="$PIPX_BIN_DIR:$PATH"' >> "${HOME}/.bashrc"
echo "export PIPX_BIN_DIR=${PIPX_BIN_DIR}" >> ${HOME}/.bashrc
echo "export PIPX_HOME=${PIPX_HOME}" >> ${HOME}/.bashrc
echo 'export PATH="$PIPX_BIN_DIR:$PATH"' >> ${HOME}/.bashrc
invoke_tests "Python"
@@ -4,5 +4,5 @@
## Desc: Install Rosetta
################################################################################
echo 'Installing Rosetta'
echo "Installing Rosetta"
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
+12 -12
View File
@@ -8,7 +8,7 @@ source ~/utils/utils.sh
arch=$(get_arch)
DEFAULT_RUBY_VERSION=$(get_toolset_value '.ruby.default')
echo Installing Ruby...
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
@@ -16,12 +16,12 @@ else
export PATH=/usr/local/opt/ruby@${DEFAULT_RUBY_VERSION}/bin:$PATH
fi
GEM_PATH=`gem env|awk '/EXECUTABLE DIRECTORY/ {print $4}'`
echo "GEM_PATH=$GEM_PATH" >> "$HOME/.bashrc"
GEM_PATH=$(gem env|awk '/EXECUTABLE DIRECTORY/ {print $4}')
echo "GEM_PATH=$GEM_PATH" >> $HOME/.bashrc
if [[ $arch == "arm64" ]]; then
echo 'export PATH="$GEM_PATH:/opt/homebrew/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> "$HOME/.bashrc"
echo 'export PATH="$GEM_PATH:/opt/homebrew/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> $HOME/.bashrc
else
echo 'export PATH="$GEM_PATH:/usr/local/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> "$HOME/.bashrc"
echo 'export PATH="$GEM_PATH:/usr/local/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> $HOME/.bashrc
fi
if ! is_Arm64; then
@@ -29,13 +29,13 @@ if ! is_Arm64; then
[ -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"
RUBY_PATH=$AGENT_TOOLSDIRECTORY/Ruby
echo "Check if Ruby hostedtoolcache folder exists..."
if [ ! -d $RUBY_PATH ]; then
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)
@@ -47,10 +47,10 @@ if ! is_Arm64; then
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 "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
@@ -6,14 +6,14 @@
source ~/utils/utils.sh
echo Updating RubyGems...
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
gemsToInstall=$(get_toolset_value '.ruby.rubygems | .[]')
if [ -n "$gemsToInstall" ]; then
if [[ -n $gemsToInstall ]]; then
for gem in $gemsToInstall; do
echo "Installing gem $gem"
gem install $gem
+5 -5
View File
@@ -6,23 +6,23 @@
source ~/utils/utils.sh
echo Installing Rustup...
echo "Installing Rustup..."
brew_smart_install "rustup-init"
echo Installing Rust language...
echo "Installing Rust language..."
rustup-init -y --no-modify-path --default-toolchain=stable --profile=minimal
echo Initialize environment variables...
echo "Initialize environment variables..."
CARGO_HOME=$HOME/.cargo
echo Install common tools...
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...
echo "Cleanup Cargo registry cached data..."
rm -rf $CARGO_HOME/registry/*
invoke_tests "Rust"
+1 -1
View File
@@ -13,7 +13,7 @@ sudo safaridriver --enable
echo "Enabling the 'Allow Remote Automation' option in Safari's Develop menu"
mkdir -p $HOME/Library/WebDriver
safari_plist="$HOME/Library/WebDriver/com.apple.Safari.plist"
# "|| true" is needed to suppress exit code 1 in case if property or file doesn't exist
# "|| true" is needed to suppress exit code 1 in case if property or file doesn't exist
/usr/libexec/PlistBuddy -c 'delete AllowRemoteAutomation' $safari_plist || true
/usr/libexec/PlistBuddy -c 'add AllowRemoteAutomation bool true' $safari_plist
@@ -6,13 +6,13 @@
source ~/utils/utils.sh
echo Installing Swiftlint...
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)
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"
@@ -8,45 +8,45 @@ 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')
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)
vsmac_download_url=$(buildVSMacDownloadUrl $vsmac_version)
fi
echo "Installing Visual Studio ${VSMAC_VERSION} for Mac"
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##*/}")
vsmac_installer=$(download_with_retry $vsmac_download_url "$TMPMOUNT/downloads/${vsmac_download_url##*/}")
echo "Mounting Visual Studio..."
hdiutil attach "$VSMAC_INSTALLER" -mountpoint "$TMPMOUNT"
hdiutil attach $vsmac_installer -mountpoint $TMPMOUNT
echo "Moving Visual Studio to /Applications/..."
pushd "$TMPMOUNT"
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"
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"
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')
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
for version in ${vsmac_versions[@]}; do
install_vsmac $version $default_vsmac_version
done
invoke_tests "Common" "VSMac"
+34 -31
View File
@@ -7,25 +7,25 @@
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')
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
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'
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"
TMPMOUNT=$(/usr/bin/mktemp -d /tmp/visualstudio.XXXX)
TMPMOUNT_FRAMEWORKS=$TMPMOUNT/frameworks
createBackupFolders
pushd $TMPMOUNT
@@ -34,36 +34,36 @@ pushd $TMPMOUNT
downloadNUnitConsole
# Install Mono sdks
for VERSION in "${MONO_VERSIONS[@]}"; do installMono $VERSION; done
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
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
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
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
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"
createBundleLink $latest_sdk_symlink "Latest"
createBundleLink $current_sdk_symlink "Current"
#
# Fix nuget in some mono versions because of known bugs
@@ -75,15 +75,18 @@ createUWPShim
popd
echo "Clean up packages..."
sudo rm -rf "$TMPMOUNT"
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
/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"
@@ -7,8 +7,8 @@
source ~/utils/utils.sh
is_clt_installed() {
clt_path=`xcode-select -p 2>&1`
[[ -d "$clt_path" ]]
clt_path=$(xcode-select -p 2>&1)
[[ -d $clt_path ]]
}
install_clt() {
@@ -1,29 +0,0 @@
#!/bin/bash -e -o pipefail
################################################################################
## File: install-xcode-simulators.sh
## Desc: Install Xcode simulators
################################################################################
source ~/utils/utils.sh
# Downloading and installing simulators
SIMS_TO_INSTALL=(
"8.4"
"9.0"
"9.1"
"9.2"
"9.3"
"10.0"
"10.1"
"10.2"
"10.3"
)
for SIM_VERSION in ${SIMS_TO_INSTALL[@]}
do
echo "Installing iOS $SIM_VERSION ..."
sudo xcversion simulators --install="iOS ${SIM_VERSION}"
echo "Successfuly installed iOS $SIM_VERSION ..."
done
echo "Done installing simulator runtimes."
@@ -38,7 +38,9 @@ $languageAndRuntime.AddToolVersion("Bash", $(Get-BashVersion))
$languageAndRuntime.AddNodes($(Get-ClangLLVMVersions))
$languageAndRuntime.AddNodes($(Get-GccVersions))
$languageAndRuntime.AddNodes($(Get-FortranVersions))
$languageAndRuntime.AddToolVersion("Julia", $(Get-JuliaVersion))
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))
@@ -51,7 +53,7 @@ if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
$languageAndRuntime.AddToolVersionsListInline("NVM - Cached node versions", $(Get-NVMNodeVersionList), '^\d+')
}
$languageAndRuntime.AddToolVersion("Perl", $(Get-PerlVersion))
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
if ((-not $os.IsBigSur) -and (-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
$languageAndRuntime.AddToolVersion("PHP", $(Get-PHPVersion))
}
@@ -62,7 +64,9 @@ if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
$languageAndRuntime.AddToolVersion("Python3", $(Get-Python3Version))
}
$languageAndRuntime.AddToolVersion("R", $(Get-RVersion))
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
$languageAndRuntime.AddToolVersion("R", $(Get-RVersion))
}
$languageAndRuntime.AddToolVersion("Ruby", $(Get-RubyVersion))
# Package Management
@@ -70,7 +74,7 @@ $packageManagement = $installedSoftware.AddHeader("Package Management")
$packageManagement.AddToolVersion("Bundler", $(Get-BundlerVersion))
$packageManagement.AddToolVersion("Carthage", $(Get-CarthageVersion))
$packageManagement.AddToolVersion("CocoaPods", $(Get-CocoaPodsVersion))
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
if ((-not $os.IsBigSur) -and (-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
$packageManagement.AddToolVersion("Composer", $(Get-ComposerVersion))
}
$packageManagement.AddToolVersion("Homebrew", $(Get-HomebrewVersion))
@@ -124,7 +128,7 @@ $utilities.AddToolVersion("gpg (GnuPG)", $(Get-GPGVersion))
if ($os.IsBigSur) {
$utilities.AddToolVersion("helm", $(Get-HelmVersion))
}
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
if ((-not $os.IsBigSur) -and (-not $os.IsVentura) -and (-not $os.IsSonoma)) {
$utilities.AddToolVersion("ImageMagick", $(Get-ImageMagickVersion))
}
$utilities.AddToolVersion("jq", $(Get-JqVersion))
@@ -212,27 +216,26 @@ $java = $installedSoftware.AddHeader("Java")
$java.AddTable($(Get-JavaVersions))
# Toolcache
if (-not $os.IsSonoma) {
$toolcache = $installedSoftware.AddHeader("Cached Tools")
$toolcache.AddNodes($(Build-ToolcacheSection))
# Rust
$rust = $installedSoftware.AddHeader("Rust Tools")
$rust.AddToolVersion("Cargo", $(Get-RustCargoVersion))
$rust.AddToolVersion("Rust", $(Get-RustVersion))
$rust.AddToolVersion("Rustdoc", $(Get-RustdocVersion))
$rust.AddToolVersion("Rustup", $(Get-RustupVersion))
$toolcache = $installedSoftware.AddHeader("Cached Tools")
$toolcache.AddNodes($(Build-ToolcacheSection))
$rustPackages = $rust.AddHeader("Packages")
if (-not $os.IsVentura) {
$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))
# Rust
$rust = $installedSoftware.AddHeader("Rust Tools")
$rust.AddToolVersion("Cargo", $(Get-RustCargoVersion))
$rust.AddToolVersion("Rust", $(Get-RustVersion))
$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")
@@ -275,9 +278,10 @@ Get-XcodeInfoList | Out-Null
$xcodeInfo = Get-XcodeInfoList
$xcode.AddTable($(Build-XcodeTable $xcodeInfo))
$xcodeTools = $xcode.AddHeader("Xcode Support Tools")
$xcodeTools.AddNodes($(Build-XcodeSupportToolsSection))
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))
@@ -154,7 +154,7 @@ function Build-OSInfoSection {
)
$fieldsToInclude = @("System Version:", "Kernel Version:")
$rawSystemInfo = Invoke-Expression "system_profiler SPSoftwareDataType"
$rawSystemInfo = Run-Command "system_profiler SPSoftwareDataType"
$parsedSystemInfo = $rawSystemInfo | Where-Object { -not ($_ | Select-String -NotMatch $fieldsToInclude) } | ForEach-Object { $_.Trim() }
$parsedSystemInfo[0] -match "System Version: macOS (?<version>\d+)" | Out-Null
$version = $Matches.Version
@@ -169,12 +169,12 @@ function Build-OSInfoSection {
}
function Get-MonoVersion {
$monoVersion = mono --version | Out-String | Take-Part -Part 4
$monoVersion = Run-Command "mono --version" | Out-String | Take-Part -Part 4
return $monoVersion
}
function Get-MSBuildVersion {
$msbuildVersion = msbuild -version | Select-Object -Last 1
$msbuildVersion = Run-Command "msbuild -version" | Select-Object -Last 1
$monoVersion = Get-MonoVersion
return "$msbuildVersion (Mono $monoVersion)"
}
@@ -250,7 +250,7 @@ function Get-NuGetVersion {
}
function Get-CondaVersion {
$condaVersion = Invoke-Expression "conda --version"
$condaVersion = Run-Command "conda --version"
return ($condaVersion -replace "^conda").Trim()
}
@@ -312,7 +312,7 @@ function Get-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 -Command "packer --version"
$result = Run-Command "packer --version"
$packerVersion = [regex]::matches($result, "(\d+.){2}\d+").Value
return $packerVersion
}
@@ -538,22 +538,22 @@ function Get-JazzyVersion {
}
function Get-ZlibVersion {
$zlibVersion = brew info --json zlib | jq -r '.[].installed[].version'
$zlibVersion = (Run-Command "brew info --json zlib" | ConvertFrom-Json).installed.version
return $zlibVersion
}
function Get-LibXftVersion {
$libXftVersion = brew info --json libxft | jq -r '.[].installed[].version'
$libXftVersion = (Run-Command "brew info --json libxft" | ConvertFrom-Json).installed.version
return $libXftVersion
}
function Get-LibXextVersion {
$libXextVersion = brew info --json libxext | jq -r '.[].installed[].version'
$libXextVersion = (Run-Command "brew info --json libxext" | ConvertFrom-Json).installed.version
return $libXextVersion
}
function Get-TclTkVersion {
$tcltkVersion = brew info --json tcl-tk | jq -r '.[].installed[].version'
$tcltkVersion = (Run-Command "brew info --json tcl-tk" | ConvertFrom-Json).installed.version
return $tcltkVersion
}
@@ -37,10 +37,14 @@ function Build-ToolcacheSection {
$nodes = @()
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonoma)) {
$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"),
[ToolVersionsListNode]::new("PyPy", $(Get-ToolcachePyPyVersions), '^\d+\.\d+', "List")
[ToolVersionsListNode]::new("Ruby", $(Get-ToolcacheRubyVersions), '^\d+\.\d+', "List")
)
}
@@ -40,9 +40,17 @@ function Get-OSVersion {
}
}
# Get the value of the toolset
function Get-ToolsetContent {
$toolsetPath = Join-Path $env:HOME "image-generation" "toolset.json"
<#
.SYNOPSIS
Retrieves the content of the toolset.json file.
.DESCRIPTION
This function reads the toolset.json in path provided by IMAGE_FOLDER
environment variable and returns the content as a PowerShell object.
#>
$toolsetPath = Join-Path $env:IMAGE_FOLDER "toolset.json"
$toolsetJson = Get-Content -Path $toolsetPath -Raw
ConvertFrom-Json -InputObject $toolsetJson
}
@@ -6,7 +6,9 @@ function Install-XcodeVersion {
[Parameter(Mandatory)]
[string] $Version,
[Parameter(Mandatory)]
[string] $LinkTo
[string] $LinkTo,
[Parameter(Mandatory)]
[string] $Sha256Sum
)
$xcodeDownloadDirectory = "$env:HOME/Library/Caches/XcodeInstall"
@@ -28,7 +30,14 @@ function Invoke-DownloadXcodeArchive {
$tempXipDirectory = New-Item -Path $DownloadDirectory -Name "Xcode$Version" -ItemType "Directory"
$xcodeFileName = 'Xcode-{0}.xip' -f $Version
$xcodeUri = '{0}{1}?{2}'-f ${env:XCODE_INSTALL_STORAGE_URL}, $xcodeFileName, ${env:XCODE_INSTALL_SAS}
Invoke-DownloadWithRetry -Url $xcodeUri -Path (Join-Path $tempXipDirectory.FullName $xcodeFileName) | Out-Null
$xcodeFullPath = Join-Path $tempXipDirectory.FullName $xcodeFileName
Invoke-DownloadWithRetry -Url $xcodeUri -Path $xcodeFullPath | Out-Null
# Validating checksum
$xcodeSha256 = Get-FileHash -Path $xcodeFullPath -Algorithm SHA256 | Select-Object -ExpandProperty Hash
if ($xcodeSha256 -ne $Sha256Sum) {
throw "Xcode $Version checksum mismatch. Expected: $Sha256Sum, Actual: $xcodeSha256"
}
return $tempXipDirectory
}
@@ -56,6 +65,7 @@ function Get-AvailableXcodeVersions {
$availableVersions = $rawVersionsList | ForEach-Object {
$partStable,$partMajor = $_.Split(" ", 2)
$semver = $stableSemver = [SemVer]::Parse($partStable)
if ($partMajor) {
# Convert 'beta 3' -> 'beta.3', 'Release Candidate' -> 'releasecandidate', 'GM Seed 2' -> 'gmseed.2'
$normalizedLabel = $partMajor.toLower() -replace " (\d)", '.$1' -replace " ([a-z])", '$1'
+42 -65
View File
@@ -78,51 +78,15 @@ is_BigSur() {
}
is_Veertu() {
[ -d "/Library/Application Support/Veertu" ]
}
get_toolset_path() {
echo "$HOME/image-generation/toolset.json"
[[ -d "/Library/Application Support/Veertu" ]]
}
get_toolset_value() {
local toolset_path=$(get_toolset_path)
local toolset_path=$(echo "$IMAGE_FOLDER/toolset.json")
local query=$1
echo "$(jq -r "$query" $toolset_path)"
}
verlte() {
sortedVersion=$(echo -e "$1\n$2" | sort -V | head -n1)
[ "$1" = "$sortedVersion" ]
}
brew_cask_install_ignoring_sha256() {
local TOOL_NAME=$1
CASK_DIR="$(brew --repo homebrew/cask)/Casks"
chmod a+w "$CASK_DIR/$TOOL_NAME.rb"
SHA=$(grep "sha256" "$CASK_DIR/$TOOL_NAME.rb" | awk '{print $2}')
sed -i '' "s/$SHA/:no_check/" "$CASK_DIR/$TOOL_NAME.rb"
brew install --cask $TOOL_NAME
pushd $CASK_DIR
git checkout HEAD -- "$TOOL_NAME.rb"
popd
}
get_brew_os_keyword() {
if is_BigSur; then
echo "big_sur"
elif is_Monterey; then
echo "monterey"
elif is_Ventura; then
echo "ventura"
elif is_Sonoma; then
echo "sonoma"
else
echo "null"
fi
}
# brew provides package bottles for different macOS versions
# The 'brew install' command will fail if a package bottle does not exist
# Use the '--build-from-source' option to build from source in this case
@@ -172,7 +136,6 @@ brew_smart_install() {
configure_system_tccdb () {
local values=$1
local dbPath="/Library/Application Support/com.apple.TCC/TCC.db"
local sqlQuery="INSERT OR IGNORE INTO access VALUES($values);"
sudo sqlite3 "$dbPath" "$sqlQuery"
@@ -180,46 +143,38 @@ configure_system_tccdb () {
configure_user_tccdb () {
local values=$1
local dbPath="$HOME/Library/Application Support/com.apple.TCC/TCC.db"
local sqlQuery="INSERT OR IGNORE INTO access VALUES($values);"
sqlite3 "$dbPath" "$sqlQuery"
}
get_github_package_download_url() {
local REPO_ORG=$1
local FILTER=$2
local VERSION=$3
local API_PAT=$4
local SEARCH_IN_COUNT="100"
resolve_github_release_asset_url() {
local repo=$1
local filter=$2
local version=${3:-"*"}
local api_pat=$4
[ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}")
page_size="100"
failed=true
for i in {1..10}; do
curl "${authString[@]}" -fsSL "https://api.github.com/repos/${REPO_ORG}/releases?per_page=${SEARCH_IN_COUNT}" >/tmp/get_github_package_download_url.json && failed=false || sleep 60
[ "$failed" = false ] && break
done
[ -n "$api_pat" ] && authString=(-H "Authorization: token ${api_pat}")
if [ "$failed" = true ]; then
echo "Failed: get_github_package_download_url"
exit 1;
fi
json=$(curl "${authString[@]}" -fsSL "https://api.github.com/repos/${repo}/releases?per_page=${page_size}")
json=$(cat /tmp/get_github_package_download_url.json)
if [[ "$VERSION" == "latest" ]]; then
tagName=$(echo $json | jq -r '.[] | select((.prerelease==false) and (.assets | length > 0)).tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]" | tail -1)
if [[ $version == "latest" ]]; then
tag_name=$(echo $json | jq -r '.[].tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]|beta" | tail -n 1)
elif [[ $version == *"*"* ]]; then
tag_name=$(echo $json | jq -r '.[].tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]|beta" | egrep "${version}" | tail -n 1)
else
tagName=$(echo $json | jq -r '.[] | select(.prerelease==false).tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]" | egrep "\w*${VERSION}" | tail -1)
tag_name=$(echo $json | jq -r '.[].tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]|beta" | egrep "${version}")
fi
downloadUrl=$(echo $json | jq -r ".[] | select(.tag_name==\"${tagName}\").assets[].browser_download_url | select(${FILTER})" | head -n 1)
if [ -z "$downloadUrl" ]; then
echo "Failed to parse a download url for the '${tagName}' tag using '${FILTER}' filter"
download_url=$(echo $json | jq -r ".[] | select(.tag_name==\"${tag_name}\").assets[].browser_download_url | select(${filter})" | head -n 1)
if [ -z "$download_url" ]; then
echo "Failed to parse a download url for the '${tag_name}' tag using '${filter}' filter"
exit 1
fi
echo $downloadUrl
echo $download_url
}
# Close all finder windows because they can interfere with UI tests
@@ -235,3 +190,25 @@ get_arch() {
echo "x64"
fi
}
use_checksum_comparison() {
local file_path=$1
local checksum=$2
local sha_type=${3:-"256"}
echo "Performing checksum verification"
if [[ ! -f "$file_path" ]]; then
echo "File not found: $file_path"
exit 1
fi
local_file_hash=$(shasum --algorithm "$sha_type" "$file_path" | awk '{print $1}')
if [[ "$local_file_hash" != "$checksum" ]]; then
echo "Checksum verification failed. Expected hash: $checksum; Actual hash: $local_file_hash."
exit 1
else
echo "Checksum verification passed"
fi
}
@@ -160,7 +160,7 @@ installNunitConsole() {
#!/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 chmod +x $TMP_WRAPPER_PATH
sudo mv "$TMP_WRAPPER_PATH" "${MONO_VERSIONS_PATH}/${MONO_VERSION}/Commands/nunit3-console"
}
@@ -123,7 +123,7 @@ Describe "Aliyun CLI" -Skip:($os.IsMonterey -or $os.IsVentura -or $os.IsSonoma)
}
}
Describe "Julia" {
Describe "Julia" -Skip:($os.IsVentura -or $os.IsSonoma) {
It "Julia" {
"julia --version" | Should -ReturnZeroExitCode
}
@@ -159,7 +159,7 @@ Describe "virtualbox" -Skip:($os.IsBigSur -or $os.IsVentura -or $os.IsSonoma) {
}
}
Describe "R" {
Describe "R" -Skip:($os.IsVentura -or $os.IsSonoma) {
It "R" {
"R --version" | Should -ReturnZeroExitCode
}
@@ -191,7 +191,7 @@ Describe "yq" {
}
}
Describe "imagemagick" -Skip:($os.IsVentura -or $os.IsSonoma) {
Describe "imagemagick" -Skip:($os.IsBigSur -or $os.IsVentura -or $os.IsSonoma) {
It "imagemagick" {
"magick -version" | Should -ReturnZeroExitCode
}
+2 -2
View File
@@ -3,7 +3,7 @@ Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
$os = Get-OSVersion
Describe "PHP" {
Context "PHP" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64) {
Context "PHP" -Skip:($os.IsBigSur -or $os.IsVenturaArm64 -or $os.IsSonomaArm64) {
It "PHP Path" {
Get-ToolPath "php" | Should -Not -BeLike "/usr/bin/php*"
}
@@ -14,7 +14,7 @@ Describe "PHP" {
}
}
Context "Composer" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64) {
Context "Composer" -Skip:($os.IsBigSur -or $os.IsVenturaArm64 -or $os.IsSonomaArm64) {
It "Composer" {
"composer --version" | Should -ReturnZeroExitCode
}
@@ -0,0 +1,11 @@
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
$os = Get-OSVersion
Describe "Rosetta" -Skip:(-not $os.IsArm64) {
It "Rosetta is available" {
$commandResult = Get-CommandResult "/usr/bin/pgrep oahd"
$commandResult.Output | Should -Match "\d+"
$commandResult.ExitCode | Should -Be 0
}
}
+1 -1
View File
@@ -32,7 +32,7 @@ Describe "Fastlane" {
}
}
Describe "xcpretty" {
Describe "xcpretty" -Skip:($os.IsVentura -or $os.IsSonoma) {
It "xcpretty" {
"xcpretty --version" | Should -ReturnZeroExitCode
}
@@ -99,7 +99,7 @@ Describe "Toolcache" {
}
}
}
Context "PyPy" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64) {
Context "PyPy" -Skip:($os.IsVenturaArm64 -or $os.IsSonoma) {
$pypyDirectory = Join-Path $toolcacheDirectory "PyPy"
$pypyPackage = $packages | Where-Object { $_.ToolName -eq "pypy" } | Select-Object -First 1
$testCase = @{ PypyDirectory = $pypyDirectory }
@@ -2,7 +2,7 @@ Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
$os = Get-OSVersion
Describe "Apache" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64) {
Describe "Apache" -Skip:($os.IsVentura -or $os.IsSonoma) {
It "Apache CLI" {
"httpd -v" | Should -ReturnZeroExitCode
}
-262
View File
@@ -1,262 +0,0 @@
{
"variables": {
"vcenter_server": null,
"vcenter_username": null,
"vcenter_password": null,
"vcenter_datacenter": null,
"cluster_or_esxi_host": null,
"esxi_datastore": null,
"build_id": null,
"baseimage_name": null,
"output_folder": null,
"vm_username": null,
"vm_password": null,
"github_api_pat": null,
"xcode_install_storage_url": null,
"xcode_install_sas": null,
"image_os": "macos11"
},
"builders": [
{
"type": "vsphere-clone",
"vcenter_server": "{{user `vcenter_server`}}",
"username": "{{user `vcenter_username`}}",
"password": "{{user `vcenter_password`}}",
"insecure_connection": true,
"datacenter": "{{ user `vcenter_datacenter` }}",
"template": "{{ user `baseimage_name` }}",
"folder": "{{user `output_folder` }}",
"host": "{{user `cluster_or_esxi_host`}}",
"datastore": "{{user `esxi_datastore`}}",
"vm_name": "{{user `build_id`}}",
"ssh_username": "{{user `vm_username`}}",
"ssh_password": "{{user `vm_password`}}",
"CPUs": "5",
"cpu_cores": "5",
"RAM": "24576",
"NestedHV": "true",
"shutdown_timeout": "15m"
}
],
"provisioners": [
{
"type": "shell",
"inline": "mkdir ~/image-generation"
},
{
"type": "file",
"sources": [
"./assets/xamarin-selector",
"./scripts/tests",
"./scripts/docs-gen",
"./scripts/helpers"
],
"destination": "~/image-generation/"
},
{
"type": "file",
"source": "../../helpers/software-report-base",
"destination": "~/image-generation/docs-gen/"
},
{
"type": "file",
"source": "./assets/add-certificate.swift",
"destination": "~/image-generation/add-certificate.swift"
},
{
"type": "file",
"source": "./assets/bashrc",
"destination": "~/.bashrc"
},
{
"type": "file",
"source": "./assets/bashprofile",
"destination": "~/.bash_profile"
},
{
"type": "file",
"source": "./assets/bootstrap-provisioner",
"destination": "~/bootstrap"
},
{
"type": "file",
"source": "./toolsets/toolset-11.json",
"destination": "~/image-generation/toolset.json"
},
{
"type": "shell",
"inline": [
"mv ~/image-generation/docs-gen ~/image-generation/software-report",
"mv ~/image-generation/xamarin-selector ~/image-generation/assets",
"mkdir ~/utils",
"mv ~/image-generation/helpers/confirm-identified-developers.scpt ~/utils",
"mv ~/image-generation/helpers/invoke-tests.sh ~/utils",
"mv ~/image-generation/helpers/utils.sh ~/utils",
"mv ~/image-generation/helpers/xamarin-utils.sh ~/utils"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"scripts": [
"./scripts/build/install-xcode-clt.sh",
"./scripts/build/install-homebrew.sh"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}",
"scripts": [
"./scripts/build/install-xcode-clt.sh",
"./scripts/build/configure-network-interface-detection.sh",
"./scripts/build/configure-autologin.sh",
"./scripts/build/configure-auto-updates.sh",
"./scripts/build/configure-screensaver.sh",
"./scripts/build/configure-ntpconf.sh",
"./scripts/build/configure-max-files-limitation.sh",
"./scripts/build/configure-shell.sh"
],
"environment_vars": [
"PASSWORD={{user `vm_password`}}",
"USERNAME={{user `vm_username`}}"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"scripts": [
"./scripts/build/configure-preimagedata.sh",
"./scripts/build/configure-ssh.sh",
"./scripts/build/configure-machine.sh"
],
"environment_vars": [
"IMAGE_VERSION={{user `build_id`}}",
"IMAGE_OS={{user `image_os`}}"
]
},
{
"type": "shell",
"execute_command": "sudo {{ .Vars }} {{ .Path }}",
"inline": [
"echo 'Reboot VM'",
"shutdown -r now"
],
"expect_disconnect": true
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"pause_before": "30s",
"scripts": [
"./scripts/build/configure-windows.sh",
"./scripts/build/install-powershell.sh",
"./scripts/build/install-dotnet.sh",
"./scripts/build/install-python.sh",
"./scripts/build/install-azcopy.sh",
"./scripts/build/install-openssl.sh",
"./scripts/build/install-ruby.sh",
"./scripts/build/install-rubygems.sh",
"./scripts/build/install-git.sh",
"./scripts/build/install-mongodb.sh",
"./scripts/build/install-node.sh"
],
"environment_vars": [
"API_PAT={{user `github_api_pat`}}"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}",
"script": "./scripts/build/Install-Xcode.ps1",
"environment_vars": [
"XCODE_INSTALL_STORAGE_URL={{user `xcode_install_storage_url`}}",
"XCODE_INSTALL_SAS={{user `xcode_install_sas`}}"
]
},
{
"type": "shell",
"execute_command": "sudo {{ .Vars }} {{ .Path }}",
"inline": [
"echo 'Reboot VM'",
"shutdown -r now"
],
"expect_disconnect": true
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"scripts": [
"./scripts/build/install-actions-cache.sh",
"./scripts/build/install-common-utils.sh",
"./scripts/build/install-llvm.sh",
"./scripts/build/install-golang.sh",
"./scripts/build/install-swiftlint.sh",
"./scripts/build/install-openjdk.sh",
"./scripts/build/install-php.sh",
"./scripts/build/install-aws-tools.sh",
"./scripts/build/install-rust.sh",
"./scripts/build/install-gcc.sh",
"./scripts/build/install-haskell.sh",
"./scripts/build/install-cocoapods.sh",
"./scripts/build/install-android-sdk.sh",
"./scripts/build/install-xamarin.sh",
"./scripts/build/install-visualstudio.sh",
"./scripts/build/install-nvm.sh",
"./scripts/build/install-apache.sh",
"./scripts/build/install-nginx.sh",
"./scripts/build/install-postgresql.sh",
"./scripts/build/install-audiodevice.sh",
"./scripts/build/install-vcpkg.sh",
"./scripts/build/install-miniconda.sh",
"./scripts/build/install-safari.sh",
"./scripts/build/install-chrome.sh",
"./scripts/build/install-edge.sh",
"./scripts/build/install-firefox.sh",
"./scripts/build/install-pypy.sh",
"./scripts/build/install-pipx-packages.sh",
"./scripts/build/install-bicep.sh",
"./scripts/build/install-codeql-bundle.sh"
],
"environment_vars": [
"API_PAT={{user `github_api_pat`}}"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}",
"scripts": [
"./scripts/build/Install-Toolset.ps1",
"./scripts/build/Configure-Toolset.ps1"
]
},
{
"type": "shell",
"execute_command": "ruby {{ .Path }}",
"scripts": [
"./scripts/build/configure-xcode-simulators.rb"
]
},
{
"type": "shell",
"inline": [
"pwsh -File \"$HOME/image-generation/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"$HOME/image-generation/output/software-report\" -ImageName {{user `build_id`}}",
"pwsh -File \"$HOME/image-generation/tests/RunAll-Tests.ps1\""
]
},
{
"type": "file",
"direction": "download",
"source": "~/image-generation/output/*",
"destination": "../image-output/"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"scripts": [
"./scripts/build/configure-hostname.sh",
"./scripts/build/configure-system.sh"
]
}
]
}
+308
View File
@@ -0,0 +1,308 @@
packer {
required_plugins {
vsphere = {
source = "github.com/hashicorp/vsphere"
version = "~> 1"
}
}
}
locals {
image_folder = "/Users/${var.vm_username}/image-generation"
}
variable "baseimage_name" {
type = string
}
variable "build_id" {
type = string
}
variable "cluster_or_esxi_host" {
type = string
}
variable "esxi_datastore" {
type = string
}
variable "github_api_pat" {
type = string
default = ""
sensitive = true
}
variable "image_os" {
type = string
default = "macos11"
}
variable "output_folder" {
type = string
}
variable "vcenter_datacenter" {
type = string
}
variable "vcenter_password" {
type = string
sensitive = true
}
variable "vcenter_server" {
type = string
}
variable "vcenter_username" {
type = string
sensitive = true
}
variable "vm_password" {
type = string
sensitive = true
}
variable "vm_username" {
type = string
sensitive = true
}
variable "xcode_install_sas" {
type = string
sensitive = true
}
variable "xcode_install_storage_url" {
type = string
sensitive = true
}
source "vsphere-clone" "template" {
CPUs = "5"
NestedHV = "true"
RAM = "24576"
cpu_cores = "5"
datacenter = "${var.vcenter_datacenter}"
datastore = "${var.esxi_datastore}"
folder = "${var.output_folder}"
host = "${var.cluster_or_esxi_host}"
insecure_connection = true
password = "${var.vcenter_password}"
shutdown_timeout = "15m"
ssh_password = "${var.vm_password}"
ssh_username = "${var.vm_username}"
template = "${var.baseimage_name}"
username = "${var.vcenter_username}"
vcenter_server = "${var.vcenter_server}"
vm_name = "${var.build_id}"
}
build {
sources = ["source.vsphere-clone.template"]
provisioner "shell" {
inline = ["mkdir ${local.image_folder}"]
}
provisioner "file" {
destination = "${local.image_folder}/"
sources = [
"${path.root}/../assets/xamarin-selector",
"${path.root}/../scripts/tests",
"${path.root}/../scripts/docs-gen",
"${path.root}/../scripts/helpers"
]
}
provisioner "file" {
destination = "${local.image_folder}/docs-gen/"
source = "${path.root}/../../../helpers/software-report-base"
}
provisioner "file" {
destination = "${local.image_folder}/add-certificate.swift"
source = "${path.root}/../assets/add-certificate.swift"
}
provisioner "file" {
destination = "~/.bashrc"
source = "${path.root}/../assets/bashrc"
}
provisioner "file" {
destination = "~/.bash_profile"
source = "${path.root}/../assets/bashprofile"
}
provisioner "shell" {
inline = [ "mkdir ~/bootstrap" ]
}
provisioner "file" {
destination = "~/bootstrap"
source = "${path.root}/../assets/bootstrap-provisioner/"
}
provisioner "file" {
destination = "${local.image_folder}/toolset.json"
source = "${path.root}/../toolsets/toolset-11.json"
}
provisioner "shell" {
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
inline = [
"mv ${local.image_folder}/docs-gen ${local.image_folder}/software-report",
"mv ${local.image_folder}/xamarin-selector ${local.image_folder}/assets",
"mkdir ~/utils",
"mv ${local.image_folder}/helpers/confirm-identified-developers.scpt ~/utils",
"mv ${local.image_folder}/helpers/invoke-tests.sh ~/utils",
"mv ${local.image_folder}/helpers/utils.sh ~/utils",
"mv ${local.image_folder}/helpers/xamarin-utils.sh ~/utils"
]
}
provisioner "shell" {
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/install-xcode-clt.sh",
"${path.root}/../scripts/build/install-homebrew.sh"
]
}
provisioner "shell" {
environment_vars = ["PASSWORD=${var.vm_password}", "USERNAME=${var.vm_username}"]
execute_command = "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/install-xcode-clt.sh",
"${path.root}/../scripts/build/configure-network-interface-detection.sh",
"${path.root}/../scripts/build/configure-autologin.sh",
"${path.root}/../scripts/build/configure-auto-updates.sh",
"${path.root}/../scripts/build/configure-screensaver.sh",
"${path.root}/../scripts/build/configure-ntpconf.sh",
"${path.root}/../scripts/build/configure-max-files-limitation.sh",
"${path.root}/../scripts/build/configure-shell.sh"
]
}
provisioner "shell" {
environment_vars = ["IMAGE_VERSION=${var.build_id}", "IMAGE_OS=${var.image_os}"]
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/configure-preimagedata.sh",
"${path.root}/../scripts/build/configure-ssh.sh",
"${path.root}/../scripts/build/configure-machine.sh"
]
}
provisioner "shell" {
execute_command = "sudo {{ .Vars }} {{ .Path }}"
expect_disconnect = true
inline = ["echo 'Reboot VM'", "shutdown -r now"]
}
provisioner "shell" {
environment_vars = ["API_PAT=${var.github_api_pat}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}"
pause_before = "30s"
scripts = [
"${path.root}/../scripts/build/configure-windows.sh",
"${path.root}/../scripts/build/install-powershell.sh",
"${path.root}/../scripts/build/install-dotnet.sh",
"${path.root}/../scripts/build/install-python.sh",
"${path.root}/../scripts/build/install-azcopy.sh",
"${path.root}/../scripts/build/install-openssl.sh",
"${path.root}/../scripts/build/install-ruby.sh",
"${path.root}/../scripts/build/install-rubygems.sh",
"${path.root}/../scripts/build/install-git.sh",
"${path.root}/../scripts/build/install-mongodb.sh",
"${path.root}/../scripts/build/install-node.sh"
]
}
provisioner "shell" {
environment_vars = ["XCODE_INSTALL_STORAGE_URL=${var.xcode_install_storage_url}", "XCODE_INSTALL_SAS=${var.xcode_install_sas}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}"
script = "${path.root}/../scripts/build/Install-Xcode.ps1"
}
provisioner "shell" {
execute_command = "sudo {{ .Vars }} {{ .Path }}"
expect_disconnect = true
inline = ["echo 'Reboot VM'", "shutdown -r now"]
}
provisioner "shell" {
environment_vars = ["API_PAT=${var.github_api_pat}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/install-actions-cache.sh",
"${path.root}/../scripts/build/install-common-utils.sh",
"${path.root}/../scripts/build/install-llvm.sh",
"${path.root}/../scripts/build/install-golang.sh",
"${path.root}/../scripts/build/install-swiftlint.sh",
"${path.root}/../scripts/build/install-openjdk.sh",
"${path.root}/../scripts/build/install-aws-tools.sh",
"${path.root}/../scripts/build/install-rust.sh",
"${path.root}/../scripts/build/install-gcc.sh",
"${path.root}/../scripts/build/install-haskell.sh",
"${path.root}/../scripts/build/install-cocoapods.sh",
"${path.root}/../scripts/build/install-android-sdk.sh",
"${path.root}/../scripts/build/install-xamarin.sh",
"${path.root}/../scripts/build/install-visualstudio.sh",
"${path.root}/../scripts/build/install-nvm.sh",
"${path.root}/../scripts/build/install-apache.sh",
"${path.root}/../scripts/build/install-nginx.sh",
"${path.root}/../scripts/build/install-postgresql.sh",
"${path.root}/../scripts/build/install-audiodevice.sh",
"${path.root}/../scripts/build/install-vcpkg.sh",
"${path.root}/../scripts/build/install-miniconda.sh",
"${path.root}/../scripts/build/install-safari.sh",
"${path.root}/../scripts/build/install-chrome.sh",
"${path.root}/../scripts/build/install-edge.sh",
"${path.root}/../scripts/build/install-firefox.sh",
"${path.root}/../scripts/build/install-pypy.sh",
"${path.root}/../scripts/build/install-pipx-packages.sh",
"${path.root}/../scripts/build/install-bicep.sh",
"${path.root}/../scripts/build/install-codeql-bundle.sh"
]
}
provisioner "shell" {
environment_vars = ["IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/Install-Toolset.ps1",
"${path.root}/../scripts/build/Configure-Toolset.ps1"
]
}
provisioner "shell" {
execute_command = "ruby {{ .Path }}"
script = "${path.root}/../scripts/build/configure-xcode-simulators.rb"
}
provisioner "shell" {
environment_vars = ["IMAGE_FOLDER=${local.image_folder}"]
inline = [
"pwsh -File \"${local.image_folder}/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"${local.image_folder}/output/software-report\" -ImageName ${var.build_id}",
"pwsh -File \"${local.image_folder}/tests/RunAll-Tests.ps1\""
]
}
provisioner "file" {
destination = "${path.root}/../../image-output/"
direction = "download"
source = "${local.image_folder}/output/*"
}
provisioner "shell" {
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/configure-hostname.sh",
"${path.root}/../scripts/build/configure-system.sh"
]
}
}
+155 -148
View File
@@ -2,11 +2,15 @@ packer {
required_plugins {
veertu-anka = {
version = ">= v3.2.0"
source = "github.com/veertuinc/veertu-anka"
source = "github.com/veertuinc/veertu-anka"
}
}
}
locals {
image_folder = "/Users/${var.vm_username}/image-generation"
}
variable "source_vm_name" {
type = string
}
@@ -20,259 +24,262 @@ variable "build_id" {
}
variable "vm_username" {
type = string
type = string
sensitive = true
}
variable "vm_password" {
type = string
type = string
sensitive = true
}
variable "github_api_pat" {
type = string
type = string
default = ""
}
variable "xcode_install_storage_url" {
type = string
type = string
sensitive = true
}
variable "xcode_install_sas" {
type = string
type = string
sensitive = true
}
variable "vcpu_count" {
type = string
type = string
default = "6"
}
variable "ram_size" {
type = string
type = string
default = "24G"
}
variable "image_os" {
type = string
type = string
default = "macos12"
}
source "veertu-anka-vm-clone" "template" {
vm_name = "${var.build_id}"
vm_name = "${var.build_id}"
source_vm_name = "${var.source_vm_name}"
source_vm_tag = "${var.source_vm_tag}"
vcpu_count = "${var.vcpu_count}"
ram_size = "${var.ram_size}"
stop_vm = "true"
source_vm_tag = "${var.source_vm_tag}"
vcpu_count = "${var.vcpu_count}"
ram_size = "${var.ram_size}"
stop_vm = "true"
}
build {
sources = [
"source.veertu-anka-vm-clone.template"
]
sources = ["source.veertu-anka-vm-clone.template"]
provisioner "shell" {
inline = [
"mkdir ~/image-generation"
]
inline = ["mkdir ${local.image_folder}"]
}
provisioner "file" {
destination = "image-generation/"
destination = "${local.image_folder}/"
sources = [
"./assets/xamarin-selector",
"./scripts/tests",
"./scripts/docs-gen",
"./scripts/helpers"
"${path.root}/../assets/xamarin-selector",
"${path.root}/../scripts/tests",
"${path.root}/../scripts/docs-gen",
"${path.root}/../scripts/helpers"
]
}
provisioner "file" {
destination = "image-generation/docs-gen/"
source = "../../helpers/software-report-base"
destination = "${local.image_folder}/docs-gen/"
source = "${path.root}/../../../helpers/software-report-base"
}
provisioner "file" {
destination = "image-generation/add-certificate.swift"
source = "./assets/add-certificate.swift"
destination = "${local.image_folder}/add-certificate.swift"
source = "${path.root}/../assets/add-certificate.swift"
}
provisioner "file" {
destination = ".bashrc"
source = "./assets/bashrc"
source = "${path.root}/../assets/bashrc"
}
provisioner "file" {
destination = ".bash_profile"
source = "./assets/bashprofile"
source = "${path.root}/../assets/bashprofile"
}
provisioner "shell" {
inline = [
"mkdir ~/bootstrap"
]
inline = [ "mkdir ~/bootstrap" ]
}
provisioner "file" {
destination = "bootstrap"
source = "./assets/bootstrap-provisioner/"
source = "${path.root}/../assets/bootstrap-provisioner/"
}
provisioner "file" {
destination = "image-generation/toolset.json"
source = "./toolsets/toolset-12.json"
destination = "${local.image_folder}/toolset.json"
source = "${path.root}/../toolsets/toolset-12.json"
}
provisioner "shell" {
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
inline = [
"mv ~/image-generation/docs-gen ~/image-generation/software-report",
"mv ~/image-generation/xamarin-selector ~/image-generation/assets",
"mv ${local.image_folder}/docs-gen ${local.image_folder}/software-report",
"mv ${local.image_folder}/xamarin-selector ${local.image_folder}/assets",
"mkdir ~/utils",
"mv ~/image-generation/helpers/confirm-identified-developers.scpt ~/utils",
"mv ~/image-generation/helpers/invoke-tests.sh ~/utils",
"mv ~/image-generation/helpers/utils.sh ~/utils",
"mv ~/image-generation/helpers/xamarin-utils.sh ~/utils"
"mv ${local.image_folder}/helpers/confirm-identified-developers.scpt ~/utils",
"mv ${local.image_folder}/helpers/invoke-tests.sh ~/utils",
"mv ${local.image_folder}/helpers/utils.sh ~/utils",
"mv ${local.image_folder}/helpers/xamarin-utils.sh ~/utils"
]
}
provisioner "shell" {
scripts = [
"./scripts/build/install-xcode-clt.sh",
"./scripts/build/install-homebrew.sh"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/install-xcode-clt.sh",
"${path.root}/../scripts/build/install-homebrew.sh"
]
}
provisioner "shell" {
scripts = [
"./scripts/build/configure-tccdb-macos.sh",
"./scripts/build/configure-network-interface-detection.sh",
"./scripts/build/configure-autologin.sh",
"./scripts/build/configure-auto-updates.sh",
"./scripts/build/configure-screensaver.sh",
"./scripts/build/configure-ntpconf.sh",
"./scripts/build/configure-max-files-limitation.sh",
"./scripts/build/configure-shell.sh"
environment_vars = ["PASSWORD=${var.vm_password}", "USERNAME=${var.vm_username}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/configure-tccdb-macos.sh",
"${path.root}/../scripts/build/configure-network-interface-detection.sh",
"${path.root}/../scripts/build/configure-autologin.sh",
"${path.root}/../scripts/build/configure-auto-updates.sh",
"${path.root}/../scripts/build/configure-screensaver.sh",
"${path.root}/../scripts/build/configure-ntpconf.sh",
"${path.root}/../scripts/build/configure-max-files-limitation.sh",
"${path.root}/../scripts/build/configure-shell.sh"
]
environment_vars = [
"PASSWORD=${var.vm_password}",
"USERNAME=${var.vm_username}"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
}
provisioner "shell" {
scripts = [
"./scripts/build/configure-preimagedata.sh",
"./scripts/build/configure-ssh.sh",
"./scripts/build/configure-machine.sh"
environment_vars = ["IMAGE_VERSION=${var.build_id}", "IMAGE_OS=${var.image_os}", "PASSWORD=${var.vm_password}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/configure-preimagedata.sh",
"${path.root}/../scripts/build/configure-ssh.sh",
"${path.root}/../scripts/build/configure-machine.sh"
]
environment_vars = [
"IMAGE_VERSION=${var.build_id}",
"IMAGE_OS=${var.image_os}",
"PASSWORD=${var.vm_password}"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
}
provisioner "shell" {
execute_command = "source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
expect_disconnect = true
inline = ["echo 'Reboot VM'", "shutdown -r now"]
}
provisioner "shell" {
pause_before = "30s"
scripts = [
"./scripts/build/configure-windows.sh",
"./scripts/build/install-powershell.sh",
"./scripts/build/install-dotnet.sh",
"./scripts/build/install-python.sh",
"./scripts/build/install-azcopy.sh",
"./scripts/build/install-openssl.sh",
"./scripts/build/install-ruby.sh",
"./scripts/build/install-rubygems.sh",
"./scripts/build/install-git.sh",
"./scripts/build/install-mongodb.sh",
"./scripts/build/install-node.sh",
"./scripts/build/install-common-utils.sh"
environment_vars = ["API_PAT=${var.github_api_pat}", "USER_PASSWORD=${var.vm_password}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
pause_before = "30s"
scripts = [
"${path.root}/../scripts/build/configure-windows.sh",
"${path.root}/../scripts/build/install-powershell.sh",
"${path.root}/../scripts/build/install-dotnet.sh",
"${path.root}/../scripts/build/install-python.sh",
"${path.root}/../scripts/build/install-azcopy.sh",
"${path.root}/../scripts/build/install-openssl.sh",
"${path.root}/../scripts/build/install-ruby.sh",
"${path.root}/../scripts/build/install-rubygems.sh",
"${path.root}/../scripts/build/install-git.sh",
"${path.root}/../scripts/build/install-mongodb.sh",
"${path.root}/../scripts/build/install-node.sh",
"${path.root}/../scripts/build/install-common-utils.sh"
]
environment_vars = [
"API_PAT=${var.github_api_pat}",
"USER_PASSWORD=${var.vm_password}"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
}
provisioner "shell" {
script = "./scripts/build/Install-Xcode.ps1"
environment_vars = [
"XCODE_INSTALL_STORAGE_URL=${var.xcode_install_storage_url}",
"XCODE_INSTALL_SAS=${var.xcode_install_sas}"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
environment_vars = ["XCODE_INSTALL_STORAGE_URL=${var.xcode_install_storage_url}", "XCODE_INSTALL_SAS=${var.xcode_install_sas}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
script = "${path.root}/../scripts/build/Install-Xcode.ps1"
}
provisioner "shell" {
execute_command = "source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
expect_disconnect = true
inline = ["echo 'Reboot VM'", "shutdown -r now"]
}
provisioner "shell" {
scripts = [
"./scripts/build/install-actions-cache.sh",
"./scripts/build/install-llvm.sh",
"./scripts/build/install-golang.sh",
"./scripts/build/install-swiftlint.sh",
"./scripts/build/install-openjdk.sh",
"./scripts/build/install-php.sh",
"./scripts/build/install-aws-tools.sh",
"./scripts/build/install-rust.sh",
"./scripts/build/install-gcc.sh",
"./scripts/build/install-haskell.sh",
"./scripts/build/install-cocoapods.sh",
"./scripts/build/install-android-sdk.sh",
"./scripts/build/install-xamarin.sh",
"./scripts/build/install-visualstudio.sh",
"./scripts/build/install-nvm.sh",
"./scripts/build/install-apache.sh",
"./scripts/build/install-nginx.sh",
"./scripts/build/install-postgresql.sh",
"./scripts/build/install-audiodevice.sh",
"./scripts/build/install-vcpkg.sh",
"./scripts/build/install-miniconda.sh",
"./scripts/build/install-safari.sh",
"./scripts/build/install-chrome.sh",
"./scripts/build/install-edge.sh",
"./scripts/build/install-firefox.sh",
"./scripts/build/install-pypy.sh",
"./scripts/build/install-pipx-packages.sh",
"./scripts/build/install-bicep.sh",
"./scripts/build/install-codeql-bundle.sh"
environment_vars = ["API_PAT=${var.github_api_pat}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/install-actions-cache.sh",
"${path.root}/../scripts/build/install-llvm.sh",
"${path.root}/../scripts/build/install-golang.sh",
"${path.root}/../scripts/build/install-swiftlint.sh",
"${path.root}/../scripts/build/install-openjdk.sh",
"${path.root}/../scripts/build/install-php.sh",
"${path.root}/../scripts/build/install-aws-tools.sh",
"${path.root}/../scripts/build/install-rust.sh",
"${path.root}/../scripts/build/install-gcc.sh",
"${path.root}/../scripts/build/install-haskell.sh",
"${path.root}/../scripts/build/install-cocoapods.sh",
"${path.root}/../scripts/build/install-android-sdk.sh",
"${path.root}/../scripts/build/install-xamarin.sh",
"${path.root}/../scripts/build/install-visualstudio.sh",
"${path.root}/../scripts/build/install-nvm.sh",
"${path.root}/../scripts/build/install-apache.sh",
"${path.root}/../scripts/build/install-nginx.sh",
"${path.root}/../scripts/build/install-postgresql.sh",
"${path.root}/../scripts/build/install-audiodevice.sh",
"${path.root}/../scripts/build/install-vcpkg.sh",
"${path.root}/../scripts/build/install-miniconda.sh",
"${path.root}/../scripts/build/install-safari.sh",
"${path.root}/../scripts/build/install-chrome.sh",
"${path.root}/../scripts/build/install-edge.sh",
"${path.root}/../scripts/build/install-firefox.sh",
"${path.root}/../scripts/build/install-pypy.sh",
"${path.root}/../scripts/build/install-pipx-packages.sh",
"${path.root}/../scripts/build/install-bicep.sh",
"${path.root}/../scripts/build/install-codeql-bundle.sh"
]
environment_vars = [
"API_PAT=${var.github_api_pat}"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
}
provisioner "shell" {
scripts = [
"./scripts/build/Install-Toolset.ps1",
"./scripts/build/Configure-Toolset.ps1"
environment_vars = ["IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/Install-Toolset.ps1",
"${path.root}/../scripts/build/Configure-Toolset.ps1"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
}
provisioner "shell" {
script = "./scripts/build/configure-xcode-simulators.rb"
execute_command = "source $HOME/.bash_profile; ruby {{ .Path }}"
script = "${path.root}/../scripts/build/configure-xcode-simulators.rb"
}
provisioner "shell" {
script = "./scripts/build/Update-XcodeSimulators.ps1"
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}"
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}"
script = "${path.root}/../scripts/build/Update-XcodeSimulators.ps1"
}
provisioner "shell" {
inline = [
"pwsh -File \"$HOME/image-generation/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"$HOME/image-generation/output/software-report\" -ImageName ${var.build_id}",
"pwsh -File \"$HOME/image-generation/tests/RunAll-Tests.ps1\""
environment_vars = ["IMAGE_FOLDER=${local.image_folder}"]
execute_command = "source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
inline = [
"pwsh -File \"${local.image_folder}/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"${local.image_folder}/output/software-report\" -ImageName ${var.build_id}",
"pwsh -File \"${local.image_folder}/tests/RunAll-Tests.ps1\""
]
execute_command = "source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
}
provisioner "file" {
destination = "../image-output/"
direction = "download"
source = "./image-generation/output/"
destination = "${path.root}/../../image-output/"
direction = "download"
source = "${local.image_folder}/output/"
}
provisioner "shell" {
scripts = [
"./scripts/build/configure-hostname.sh",
"./scripts/build/configure-system.sh"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/configure-hostname.sh",
"${path.root}/../scripts/build/configure-system.sh"
]
}
}
-268
View File
@@ -1,268 +0,0 @@
{
"variables": {
"vcenter_server": null,
"vcenter_username": null,
"vcenter_password": null,
"vcenter_datacenter": null,
"cluster_or_esxi_host": null,
"esxi_datastore": null,
"build_id": null,
"baseimage_name": null,
"output_folder": null,
"vm_username": null,
"vm_password": null,
"github_api_pat": null,
"xcode_install_storage_url": null,
"xcode_install_sas": null,
"image_os": "macos12"
},
"builders": [
{
"type": "vsphere-clone",
"vcenter_server": "{{user `vcenter_server`}}",
"username": "{{user `vcenter_username`}}",
"password": "{{user `vcenter_password`}}",
"insecure_connection": true,
"datacenter": "{{ user `vcenter_datacenter` }}",
"template": "{{ user `baseimage_name` }}",
"folder": "{{user `output_folder` }}",
"host": "{{user `cluster_or_esxi_host`}}",
"datastore": "{{user `esxi_datastore`}}",
"vm_name": "{{user `build_id`}}",
"ssh_username": "{{user `vm_username`}}",
"ssh_password": "{{user `vm_password`}}",
"CPUs": "5",
"cpu_cores": "5",
"RAM": "24576",
"NestedHV": "true",
"shutdown_timeout": "15m"
}
],
"provisioners": [
{
"type": "shell",
"inline": "mkdir ~/image-generation"
},
{
"type": "file",
"sources": [
"./assets/xamarin-selector",
"./scripts/tests",
"./scripts/docs-gen",
"./scripts/helpers"
],
"destination": "~/image-generation/"
},
{
"type": "file",
"source": "../../helpers/software-report-base",
"destination": "~/image-generation/docs-gen/"
},
{
"type": "file",
"source": "./assets/add-certificate.swift",
"destination": "~/image-generation/add-certificate.swift"
},
{
"type": "file",
"source": "./assets/bashrc",
"destination": "~/.bashrc"
},
{
"type": "file",
"source": "./assets/bashprofile",
"destination": "~/.bash_profile"
},
{
"type": "file",
"source": "./assets/bootstrap-provisioner",
"destination": "~/bootstrap"
},
{
"type": "file",
"source": "./toolsets/toolset-12.json",
"destination": "~/image-generation/toolset.json"
},
{
"type": "shell",
"inline": [
"mv ~/image-generation/docs-gen ~/image-generation/software-report",
"mv ~/image-generation/xamarin-selector ~/image-generation/assets",
"mkdir ~/utils",
"mv ~/image-generation/helpers/confirm-identified-developers.scpt ~/utils",
"mv ~/image-generation/helpers/invoke-tests.sh ~/utils",
"mv ~/image-generation/helpers/utils.sh ~/utils",
"mv ~/image-generation/helpers/xamarin-utils.sh ~/utils"
],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"scripts": [
"./scripts/build/install-xcode-clt.sh",
"./scripts/build/install-homebrew.sh"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}",
"scripts": [
"./scripts/build/configure-network-interface-detection.sh",
"./scripts/build/configure-autologin.sh",
"./scripts/build/configure-auto-updates.sh",
"./scripts/build/configure-screensaver.sh",
"./scripts/build/configure-ntpconf.sh",
"./scripts/build/configure-max-files-limitation.sh",
"./scripts/build/configure-shell.sh"
],
"environment_vars": [
"PASSWORD={{user `vm_password`}}",
"USERNAME={{user `vm_username`}}"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"scripts": [
"./scripts/build/configure-preimagedata.sh",
"./scripts/build/configure-ssh.sh",
"./scripts/build/configure-machine.sh"
],
"environment_vars": [
"IMAGE_VERSION={{user `build_id`}}",
"IMAGE_OS={{user `image_os`}}",
"PASSWORD={{user `vm_password`}}"
]
},
{
"type": "shell",
"execute_command": "sudo {{ .Vars }} {{ .Path }}",
"inline": [
"echo 'Reboot VM'",
"shutdown -r now"
],
"expect_disconnect": true
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"pause_before": "30s",
"scripts": [
"./scripts/build/configure-windows.sh",
"./scripts/build/install-powershell.sh",
"./scripts/build/install-dotnet.sh",
"./scripts/build/install-python.sh",
"./scripts/build/install-azcopy.sh",
"./scripts/build/install-openssl.sh",
"./scripts/build/install-ruby.sh",
"./scripts/build/install-rubygems.sh",
"./scripts/build/install-git.sh",
"./scripts/build/install-mongodb.sh",
"./scripts/build/install-node.sh",
"./scripts/build/install-common-utils.sh"
],
"environment_vars": [
"API_PAT={{user `github_api_pat`}}",
"USER_PASSWORD={{user `vm_password`}}"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}",
"script": "./scripts/build/Install-Xcode.ps1",
"environment_vars": [
"XCODE_INSTALL_STORAGE_URL={{user `xcode_install_storage_url`}}",
"XCODE_INSTALL_SAS={{user `xcode_install_sas`}}"
]
},
{
"type": "shell",
"execute_command": "sudo {{ .Vars }} {{ .Path }}",
"inline": [
"echo 'Reboot VM'",
"shutdown -r now"
],
"expect_disconnect": true
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"scripts": [
"./scripts/build/install-actions-cache.sh",
"./scripts/build/install-llvm.sh",
"./scripts/build/install-golang.sh",
"./scripts/build/install-swiftlint.sh",
"./scripts/build/install-openjdk.sh",
"./scripts/build/install-php.sh",
"./scripts/build/install-aws-tools.sh",
"./scripts/build/install-rust.sh",
"./scripts/build/install-gcc.sh",
"./scripts/build/install-haskell.sh",
"./scripts/build/install-cocoapods.sh",
"./scripts/build/install-android-sdk.sh",
"./scripts/build/install-xamarin.sh",
"./scripts/build/install-visualstudio.sh",
"./scripts/build/install-nvm.sh",
"./scripts/build/install-apache.sh",
"./scripts/build/install-nginx.sh",
"./scripts/build/install-postgresql.sh",
"./scripts/build/install-audiodevice.sh",
"./scripts/build/install-vcpkg.sh",
"./scripts/build/install-miniconda.sh",
"./scripts/build/install-safari.sh",
"./scripts/build/install-chrome.sh",
"./scripts/build/install-edge.sh",
"./scripts/build/install-firefox.sh",
"./scripts/build/install-pypy.sh",
"./scripts/build/install-pipx-packages.sh",
"./scripts/build/install-bicep.sh",
"./scripts/build/install-codeql-bundle.sh"
],
"environment_vars": [
"API_PAT={{user `github_api_pat`}}"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}",
"scripts": [
"./scripts/build/Install-Toolset.ps1",
"./scripts/build/Configure-Toolset.ps1"
]
},
{
"type": "shell",
"execute_command": "ruby {{ .Path }}",
"scripts": [
"./scripts/build/configure-xcode-simulators.rb"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}",
"script": "./scripts/build/Update-XcodeSimulators.ps1"
},
{
"type": "shell",
"inline": [
"pwsh -File \"$HOME/image-generation/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"$HOME/image-generation/output/software-report\" -ImageName {{user `build_id`}}",
"pwsh -File \"$HOME/image-generation/tests/RunAll-Tests.ps1\""
]
},
{
"type": "file",
"direction": "download",
"source": "~/image-generation/output/*",
"destination": "../image-output/"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"scripts": [
"./scripts/build/configure-hostname.sh",
"./scripts/build/configure-system.sh"
]
}
]
}
+313
View File
@@ -0,0 +1,313 @@
packer {
required_plugins {
vsphere = {
source = "github.com/hashicorp/vsphere"
version = "~> 1"
}
}
}
locals {
image_folder = "/Users/${var.vm_username}/image-generation"
}
variable "baseimage_name" {
type = string
}
variable "build_id" {
type = string
}
variable "cluster_or_esxi_host" {
type = string
}
variable "esxi_datastore" {
type = string
}
variable "github_api_pat" {
type = string
default = ""
sensitive = true
}
variable "image_os" {
type = string
default = "macos12"
}
variable "output_folder" {
type = string
}
variable "vcenter_datacenter" {
type = string
}
variable "vcenter_password" {
type = string
sensitive = true
}
variable "vcenter_server" {
type = string
}
variable "vcenter_username" {
type = string
sensitive = true
}
variable "vm_password" {
type = string
sensitive = true
}
variable "vm_username" {
type = string
sensitive = true
}
variable "xcode_install_sas" {
type = string
sensitive = true
}
variable "xcode_install_storage_url" {
type = string
sensitive = true
}
source "vsphere-clone" "template" {
CPUs = "5"
NestedHV = "true"
RAM = "24576"
cpu_cores = "5"
datacenter = "${var.vcenter_datacenter}"
datastore = "${var.esxi_datastore}"
folder = "${var.output_folder}"
host = "${var.cluster_or_esxi_host}"
insecure_connection = true
password = "${var.vcenter_password}"
shutdown_timeout = "15m"
ssh_password = "${var.vm_password}"
ssh_username = "${var.vm_username}"
template = "${var.baseimage_name}"
username = "${var.vcenter_username}"
vcenter_server = "${var.vcenter_server}"
vm_name = "${var.build_id}"
}
build {
sources = ["source.vsphere-clone.template"]
provisioner "shell" {
inline = ["mkdir ${local.image_folder}"]
}
provisioner "file" {
destination = "${local.image_folder}/"
sources = [
"${path.root}/../assets/xamarin-selector",
"${path.root}/../scripts/tests",
"${path.root}/../scripts/docs-gen",
"${path.root}/../scripts/helpers"
]
}
provisioner "file" {
destination = "${local.image_folder}/docs-gen/"
source = "${path.root}/../../../helpers/software-report-base"
}
provisioner "file" {
destination = "${local.image_folder}/add-certificate.swift"
source = "${path.root}/../assets/add-certificate.swift"
}
provisioner "file" {
destination = "~/.bashrc"
source = "${path.root}/../assets/bashrc"
}
provisioner "file" {
destination = "~/.bash_profile"
source = "${path.root}/../assets/bashprofile"
}
provisioner "shell" {
inline = [ "mkdir ~/bootstrap" ]
}
provisioner "file" {
destination = "~/bootstrap"
source = "${path.root}/../assets/bootstrap-provisioner/"
}
provisioner "file" {
destination = "${local.image_folder}/toolset.json"
source = "${path.root}/../toolsets/toolset-12.json"
}
provisioner "shell" {
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
inline = [
"mv ${local.image_folder}/docs-gen ${local.image_folder}/software-report",
"mv ${local.image_folder}/xamarin-selector ${local.image_folder}/assets",
"mkdir ~/utils",
"mv ${local.image_folder}/helpers/confirm-identified-developers.scpt ~/utils",
"mv ${local.image_folder}/helpers/invoke-tests.sh ~/utils",
"mv ${local.image_folder}/helpers/utils.sh ~/utils",
"mv ${local.image_folder}/helpers/xamarin-utils.sh ~/utils"
]
}
provisioner "shell" {
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/install-xcode-clt.sh",
"${path.root}/../scripts/build/install-homebrew.sh"
]
}
provisioner "shell" {
environment_vars = ["PASSWORD=${var.vm_password}", "USERNAME=${var.vm_username}"]
execute_command = "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/configure-network-interface-detection.sh",
"${path.root}/../scripts/build/configure-autologin.sh",
"${path.root}/../scripts/build/configure-auto-updates.sh",
"${path.root}/../scripts/build/configure-screensaver.sh",
"${path.root}/../scripts/build/configure-ntpconf.sh",
"${path.root}/../scripts/build/configure-max-files-limitation.sh",
"${path.root}/../scripts/build/configure-shell.sh"
]
}
provisioner "shell" {
environment_vars = ["IMAGE_VERSION=${var.build_id}", "IMAGE_OS=${var.image_os}", "PASSWORD=${var.vm_password}"]
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/configure-preimagedata.sh",
"${path.root}/../scripts/build/configure-ssh.sh",
"${path.root}/../scripts/build/configure-machine.sh"
]
}
provisioner "shell" {
execute_command = "sudo {{ .Vars }} {{ .Path }}"
expect_disconnect = true
inline = ["echo 'Reboot VM'", "shutdown -r now"]
}
provisioner "shell" {
environment_vars = ["API_PAT=${var.github_api_pat}", "USER_PASSWORD=${var.vm_password}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}"
pause_before = "30s"
scripts = [
"${path.root}/../scripts/build/configure-windows.sh",
"${path.root}/../scripts/build/install-powershell.sh",
"${path.root}/../scripts/build/install-dotnet.sh",
"${path.root}/../scripts/build/install-python.sh",
"${path.root}/../scripts/build/install-azcopy.sh",
"${path.root}/../scripts/build/install-openssl.sh",
"${path.root}/../scripts/build/install-ruby.sh",
"${path.root}/../scripts/build/install-rubygems.sh",
"${path.root}/../scripts/build/install-git.sh",
"${path.root}/../scripts/build/install-mongodb.sh",
"${path.root}/../scripts/build/install-node.sh",
"${path.root}/../scripts/build/install-common-utils.sh"
]
}
provisioner "shell" {
environment_vars = ["XCODE_INSTALL_STORAGE_URL=${var.xcode_install_storage_url}", "XCODE_INSTALL_SAS=${var.xcode_install_sas}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}"
script = "${path.root}/../scripts/build/Install-Xcode.ps1"
}
provisioner "shell" {
execute_command = "sudo {{ .Vars }} {{ .Path }}"
expect_disconnect = true
inline = ["echo 'Reboot VM'", "shutdown -r now"]
}
provisioner "shell" {
environment_vars = ["API_PAT=${var.github_api_pat}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/install-actions-cache.sh",
"${path.root}/../scripts/build/install-llvm.sh",
"${path.root}/../scripts/build/install-golang.sh",
"${path.root}/../scripts/build/install-swiftlint.sh",
"${path.root}/../scripts/build/install-openjdk.sh",
"${path.root}/../scripts/build/install-php.sh",
"${path.root}/../scripts/build/install-aws-tools.sh",
"${path.root}/../scripts/build/install-rust.sh",
"${path.root}/../scripts/build/install-gcc.sh",
"${path.root}/../scripts/build/install-haskell.sh",
"${path.root}/../scripts/build/install-cocoapods.sh",
"${path.root}/../scripts/build/install-android-sdk.sh",
"${path.root}/../scripts/build/install-xamarin.sh",
"${path.root}/../scripts/build/install-visualstudio.sh",
"${path.root}/../scripts/build/install-nvm.sh",
"${path.root}/../scripts/build/install-apache.sh",
"${path.root}/../scripts/build/install-nginx.sh",
"${path.root}/../scripts/build/install-postgresql.sh",
"${path.root}/../scripts/build/install-audiodevice.sh",
"${path.root}/../scripts/build/install-vcpkg.sh",
"${path.root}/../scripts/build/install-miniconda.sh",
"${path.root}/../scripts/build/install-safari.sh",
"${path.root}/../scripts/build/install-chrome.sh",
"${path.root}/../scripts/build/install-edge.sh",
"${path.root}/../scripts/build/install-firefox.sh",
"${path.root}/../scripts/build/install-pypy.sh",
"${path.root}/../scripts/build/install-pipx-packages.sh",
"${path.root}/../scripts/build/install-bicep.sh",
"${path.root}/../scripts/build/install-codeql-bundle.sh"
]
}
provisioner "shell" {
environment_vars = ["IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/Install-Toolset.ps1",
"${path.root}/../scripts/build/Configure-Toolset.ps1"
]
}
provisioner "shell" {
execute_command = "ruby {{ .Path }}"
script = "${path.root}/../scripts/build/configure-xcode-simulators.rb"
}
provisioner "shell" {
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}"
script = "${path.root}/../scripts/build/Update-XcodeSimulators.ps1"
}
provisioner "shell" {
environment_vars = ["IMAGE_FOLDER=${local.image_folder}"]
inline = [
"pwsh -File \"${local.image_folder}/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"${local.image_folder}/output/software-report\" -ImageName ${var.build_id}",
"pwsh -File \"${local.image_folder}/tests/RunAll-Tests.ps1\""
]
}
provisioner "file" {
destination = "${path.root}/../../image-output/"
direction = "download"
source = "${local.image_folder}/output/*"
}
provisioner "shell" {
execute_command = "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/configure-hostname.sh",
"${path.root}/../scripts/build/configure-system.sh"
]
}
}
+144 -138
View File
@@ -2,11 +2,15 @@ packer {
required_plugins {
veertu-anka = {
version = ">= v3.2.0"
source = "github.com/veertuinc/veertu-anka"
source = "github.com/veertuinc/veertu-anka"
}
}
}
locals {
image_folder = "/Users/${var.vm_username}/image-generation"
}
variable "source_vm_name" {
type = string
}
@@ -20,246 +24,248 @@ variable "build_id" {
}
variable "vm_username" {
type = string
type = string
sensitive = true
}
variable "vm_password" {
type = string
type = string
sensitive = true
}
variable "github_api_pat" {
type = string
type = string
default = ""
}
variable "xcode_install_storage_url" {
type = string
type = string
sensitive = true
}
variable "xcode_install_sas" {
type = string
type = string
sensitive = true
}
variable "vcpu_count" {
type = string
type = string
default = "6"
}
variable "ram_size" {
type = string
type = string
default = "24G"
}
variable "image_os" {
type = string
type = string
default = "macos13"
}
source "veertu-anka-vm-clone" "template" {
vm_name = "${var.build_id}"
vm_name = "${var.build_id}"
source_vm_name = "${var.source_vm_name}"
source_vm_tag = "${var.source_vm_tag}"
vcpu_count = "${var.vcpu_count}"
ram_size = "${var.ram_size}"
stop_vm = "true"
source_vm_tag = "${var.source_vm_tag}"
vcpu_count = "${var.vcpu_count}"
ram_size = "${var.ram_size}"
stop_vm = "true"
}
build {
sources = [
"source.veertu-anka-vm-clone.template"
]
sources = ["source.veertu-anka-vm-clone.template"]
provisioner "shell" {
inline = [
"mkdir ~/image-generation"
inline = ["mkdir ${local.image_folder}"]
}
provisioner "file" {
destination = "${local.image_folder}/"
sources = [
"${path.root}/../assets/xamarin-selector",
"${path.root}/../scripts/tests",
"${path.root}/../scripts/docs-gen",
"${path.root}/../scripts/helpers"
]
}
provisioner "file" {
destination = "image-generation/"
sources = [
"./assets/xamarin-selector",
"./scripts/tests",
"./scripts/docs-gen",
"./scripts/helpers"
]
destination = "${local.image_folder}/docs-gen/"
source = "${path.root}/../../../helpers/software-report-base"
}
provisioner "file" {
destination = "image-generation/docs-gen/"
source = "../../helpers/software-report-base"
}
provisioner "file" {
destination = "image-generation/add-certificate.swift"
source = "./assets/add-certificate.swift"
destination = "${local.image_folder}/add-certificate.swift"
source = "${path.root}/../assets/add-certificate.swift"
}
provisioner "file" {
destination = ".bashrc"
source = "./assets/bashrc"
source = "${path.root}/../assets/bashrc"
}
provisioner "file" {
destination = ".bash_profile"
source = "./assets/bashprofile"
source = "${path.root}/../assets/bashprofile"
}
provisioner "shell" {
inline = [
"mkdir ~/bootstrap"
]
inline = ["mkdir ~/bootstrap"]
}
provisioner "file" {
destination = "bootstrap"
source = "./assets/bootstrap-provisioner/"
source = "${path.root}/../assets/bootstrap-provisioner/"
}
provisioner "file" {
destination = "image-generation/toolset.json"
source = "./toolsets/toolset-13.json"
destination = "${local.image_folder}/toolset.json"
source = "${path.root}/../toolsets/toolset-13.json"
}
provisioner "shell" {
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
inline = [
"mv ~/image-generation/docs-gen ~/image-generation/software-report",
"mv ~/image-generation/xamarin-selector ~/image-generation/assets",
"mv ${local.image_folder}/docs-gen ${local.image_folder}/software-report",
"mv ${local.image_folder}/xamarin-selector ${local.image_folder}/assets",
"mkdir ~/utils",
"mv ~/image-generation/helpers/confirm-identified-developers.scpt ~/utils",
"mv ~/image-generation/helpers/invoke-tests.sh ~/utils",
"mv ~/image-generation/helpers/utils.sh ~/utils",
"mv ~/image-generation/helpers/xamarin-utils.sh ~/utils"
"mv ${local.image_folder}/helpers/confirm-identified-developers.scpt ~/utils",
"mv ${local.image_folder}/helpers/invoke-tests.sh ~/utils",
"mv ${local.image_folder}/helpers/utils.sh ~/utils",
"mv ${local.image_folder}/helpers/xamarin-utils.sh ~/utils"
]
}
provisioner "shell" {
scripts = [
"./scripts/build/install-xcode-clt.sh",
"./scripts/build/install-homebrew.sh"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/install-xcode-clt.sh",
"${path.root}/../scripts/build/install-homebrew.sh"
]
}
provisioner "shell" {
scripts = [
"./scripts/build/configure-tccdb-macos.sh",
"./scripts/build/configure-auto-updates.sh",
"./scripts/build/configure-ntpconf.sh",
"./scripts/build/configure-shell.sh"
environment_vars = ["PASSWORD=${var.vm_password}", "USERNAME=${var.vm_username}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/configure-tccdb-macos.sh",
"${path.root}/../scripts/build/configure-auto-updates.sh",
"${path.root}/../scripts/build/configure-ntpconf.sh",
"${path.root}/../scripts/build/configure-shell.sh"
]
environment_vars = [
"PASSWORD=${var.vm_password}",
"USERNAME=${var.vm_username}"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
}
provisioner "shell" {
scripts = [
"./scripts/build/configure-preimagedata.sh",
"./scripts/build/configure-ssh.sh",
"./scripts/build/configure-machine.sh"
environment_vars = ["IMAGE_VERSION=${var.build_id}", "IMAGE_OS=${var.image_os}", "PASSWORD=${var.vm_password}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/configure-preimagedata.sh",
"${path.root}/../scripts/build/configure-ssh.sh",
"${path.root}/../scripts/build/configure-machine.sh"
]
environment_vars = [
"IMAGE_VERSION=${var.build_id}",
"IMAGE_OS=${var.image_os}",
"PASSWORD=${var.vm_password}"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
}
provisioner "shell" {
execute_command = "source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
expect_disconnect = true
inline = ["echo 'Reboot VM'", "shutdown -r now"]
}
provisioner "shell" {
pause_before = "30s"
scripts = [
"./scripts/build/configure-windows.sh",
"./scripts/build/install-powershell.sh",
"./scripts/build/install-mono.sh",
"./scripts/build/install-dotnet.sh",
"./scripts/build/install-python.sh",
"./scripts/build/install-azcopy.sh",
"./scripts/build/install-openssl.sh",
"./scripts/build/install-ruby.sh",
"./scripts/build/install-rubygems.sh",
"./scripts/build/install-git.sh",
"./scripts/build/install-node.sh",
"./scripts/build/install-common-utils.sh"
environment_vars = ["API_PAT=${var.github_api_pat}", "USER_PASSWORD=${var.vm_password}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
pause_before = "30s"
scripts = [
"${path.root}/../scripts/build/configure-windows.sh",
"${path.root}/../scripts/build/install-powershell.sh",
"${path.root}/../scripts/build/install-mono.sh",
"${path.root}/../scripts/build/install-dotnet.sh",
"${path.root}/../scripts/build/install-python.sh",
"${path.root}/../scripts/build/install-azcopy.sh",
"${path.root}/../scripts/build/install-openssl.sh",
"${path.root}/../scripts/build/install-ruby.sh",
"${path.root}/../scripts/build/install-rubygems.sh",
"${path.root}/../scripts/build/install-git.sh",
"${path.root}/../scripts/build/install-node.sh",
"${path.root}/../scripts/build/install-common-utils.sh"
]
environment_vars = [
"API_PAT=${var.github_api_pat}",
"USER_PASSWORD=${var.vm_password}"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
}
provisioner "shell" {
script = "./scripts/build/Install-Xcode.ps1"
environment_vars = [
"XCODE_INSTALL_STORAGE_URL=${var.xcode_install_storage_url}",
"XCODE_INSTALL_SAS=${var.xcode_install_sas}"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
environment_vars = ["XCODE_INSTALL_STORAGE_URL=${var.xcode_install_storage_url}", "XCODE_INSTALL_SAS=${var.xcode_install_sas}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
script = "${path.root}/../scripts/build/Install-Xcode.ps1"
}
provisioner "shell" {
execute_command = "source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
expect_disconnect = true
inline = ["echo 'Reboot VM'", "shutdown -r now"]
}
provisioner "shell" {
scripts = [
"./scripts/build/install-actions-cache.sh",
"./scripts/build/install-llvm.sh",
"./scripts/build/install-swiftlint.sh",
"./scripts/build/install-openjdk.sh",
"./scripts/build/install-php.sh",
"./scripts/build/install-aws-tools.sh",
"./scripts/build/install-rust.sh",
"./scripts/build/install-gcc.sh",
"./scripts/build/install-cocoapods.sh",
"./scripts/build/install-android-sdk.sh",
"./scripts/build/install-apache.sh",
"./scripts/build/install-vcpkg.sh",
"./scripts/build/install-safari.sh",
"./scripts/build/install-chrome.sh",
"./scripts/build/install-edge.sh",
"./scripts/build/install-firefox.sh",
"./scripts/build/install-pypy.sh",
"./scripts/build/install-bicep.sh",
"./scripts/build/install-codeql-bundle.sh"
environment_vars = ["API_PAT=${var.github_api_pat}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/install-actions-cache.sh",
"${path.root}/../scripts/build/install-llvm.sh",
"${path.root}/../scripts/build/install-swiftlint.sh",
"${path.root}/../scripts/build/install-openjdk.sh",
"${path.root}/../scripts/build/install-php.sh",
"${path.root}/../scripts/build/install-aws-tools.sh",
"${path.root}/../scripts/build/install-rust.sh",
"${path.root}/../scripts/build/install-gcc.sh",
"${path.root}/../scripts/build/install-cocoapods.sh",
"${path.root}/../scripts/build/install-android-sdk.sh",
"${path.root}/../scripts/build/install-vcpkg.sh",
"${path.root}/../scripts/build/install-safari.sh",
"${path.root}/../scripts/build/install-chrome.sh",
"${path.root}/../scripts/build/install-edge.sh",
"${path.root}/../scripts/build/install-firefox.sh",
"${path.root}/../scripts/build/install-pypy.sh",
"${path.root}/../scripts/build/install-bicep.sh",
"${path.root}/../scripts/build/install-codeql-bundle.sh"
]
environment_vars = [
"API_PAT=${var.github_api_pat}"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
}
provisioner "shell" {
scripts = [
"./scripts/build/Install-Toolset.ps1",
"./scripts/build/Configure-Toolset.ps1"
environment_vars = ["IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/Install-Toolset.ps1",
"${path.root}/../scripts/build/Configure-Toolset.ps1"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
}
provisioner "shell" {
script = "./scripts/build/configure-xcode-simulators.rb"
execute_command = "source $HOME/.bash_profile; ruby {{ .Path }}"
script = "${path.root}/../scripts/build/configure-xcode-simulators.rb"
}
provisioner "shell" {
inline = [
"pwsh -File \"$HOME/image-generation/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"$HOME/image-generation/output/software-report\" -ImageName ${var.build_id}",
"pwsh -File \"$HOME/image-generation/tests/RunAll-Tests.ps1\""
environment_vars = ["IMAGE_FOLDER=${local.image_folder}"]
execute_command = "source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
inline = [
"pwsh -File \"${local.image_folder}/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"${local.image_folder}/output/software-report\" -ImageName ${var.build_id}",
"pwsh -File \"${local.image_folder}/tests/RunAll-Tests.ps1\""
]
execute_command = "source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
}
provisioner "file" {
destination = "../image-output/"
direction = "download"
source = "./image-generation/output/"
destination = "${path.root}/../../image-output/"
direction = "download"
source = "${local.image_folder}/output/"
}
provisioner "shell" {
inline = [
"rm -rf \"$(brew --cache)\""
]
inline = ["rm -rf \"$(brew --cache)\""]
}
provisioner "shell" {
scripts = [
"./scripts/build/configure-hostname.sh",
"./scripts/build/configure-system.sh"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/configure-hostname.sh",
"${path.root}/../scripts/build/configure-system.sh"
]
}
}
+134 -128
View File
@@ -2,11 +2,15 @@ packer {
required_plugins {
veertu-anka = {
version = ">= v3.2.0"
source = "github.com/veertuinc/veertu-anka"
source = "github.com/veertuinc/veertu-anka"
}
}
}
locals {
image_folder = "/Users/${var.vm_username}/image-generation"
}
variable "source_vm_name" {
type = string
}
@@ -20,234 +24,236 @@ variable "build_id" {
}
variable "vm_username" {
type = string
type = string
sensitive = true
}
variable "vm_password" {
type = string
type = string
sensitive = true
}
variable "github_api_pat" {
type = string
type = string
default = ""
}
variable "xcode_install_storage_url" {
type = string
type = string
sensitive = true
}
variable "xcode_install_sas" {
type = string
type = string
sensitive = true
}
variable "vcpu_count" {
type = string
type = string
default = "6"
}
variable "ram_size" {
type = string
type = string
default = "8G"
}
variable "image_os" {
type = string
type = string
default = "macos13"
}
source "veertu-anka-vm-clone" "template" {
vm_name = "${var.build_id}"
vm_name = "${var.build_id}"
source_vm_name = "${var.source_vm_name}"
source_vm_tag = "${var.source_vm_tag}"
vcpu_count = "${var.vcpu_count}"
ram_size = "${var.ram_size}"
stop_vm = "true"
log_level = "debug"
source_vm_tag = "${var.source_vm_tag}"
vcpu_count = "${var.vcpu_count}"
ram_size = "${var.ram_size}"
stop_vm = "true"
log_level = "debug"
}
build {
sources = [
"source.veertu-anka-vm-clone.template"
]
sources = ["source.veertu-anka-vm-clone.template"]
provisioner "shell" {
inline = [
"mkdir ~/image-generation"
inline = ["mkdir ${local.image_folder}"]
}
provisioner "file" {
destination = "${local.image_folder}/"
sources = [
"${path.root}/../assets/xamarin-selector",
"${path.root}/../scripts/tests",
"${path.root}/../scripts/docs-gen",
"${path.root}/../scripts/helpers"
]
}
provisioner "file" {
destination = "image-generation/"
sources = [
"./assets/xamarin-selector",
"./scripts/tests",
"./scripts/docs-gen",
"./scripts/helpers"
]
destination = "${local.image_folder}/docs-gen/"
source = "${path.root}/../../../helpers/software-report-base"
}
provisioner "file" {
destination = "image-generation/docs-gen/"
source = "../../helpers/software-report-base"
}
provisioner "file" {
destination = "image-generation/add-certificate.swift"
source = "./assets/add-certificate.swift"
destination = "${local.image_folder}/add-certificate.swift"
source = "${path.root}/../assets/add-certificate.swift"
}
provisioner "file" {
destination = ".bashrc"
source = "./assets/bashrc"
source = "${path.root}/../assets/bashrc"
}
provisioner "file" {
destination = ".bash_profile"
source = "./assets/bashprofile"
source = "${path.root}/../assets/bashprofile"
}
provisioner "shell" {
inline = [
"mkdir ~/bootstrap"
]
inline = ["mkdir ~/bootstrap"]
}
provisioner "file" {
destination = "bootstrap"
source = "./assets/bootstrap-provisioner/"
source = "${path.root}/../assets/bootstrap-provisioner/"
}
provisioner "file" {
destination = "image-generation/toolset.json"
source = "./toolsets/toolset-13.json"
destination = "${local.image_folder}/toolset.json"
source = "${path.root}/../toolsets/toolset-13.json"
}
provisioner "shell" {
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
inline = [
"mv ~/image-generation/docs-gen ~/image-generation/software-report",
"mv ~/image-generation/xamarin-selector ~/image-generation/assets",
"mv ${local.image_folder}/docs-gen ${local.image_folder}/software-report",
"mv ${local.image_folder}/xamarin-selector ${local.image_folder}/assets",
"mkdir ~/utils",
"mv ~/image-generation/helpers/confirm-identified-developers.scpt ~/utils",
"mv ~/image-generation/helpers/invoke-tests.sh ~/utils",
"mv ~/image-generation/helpers/utils.sh ~/utils",
"mv ~/image-generation/helpers/xamarin-utils.sh ~/utils"
"mv ${local.image_folder}/helpers/confirm-identified-developers.scpt ~/utils",
"mv ${local.image_folder}/helpers/invoke-tests.sh ~/utils",
"mv ${local.image_folder}/helpers/utils.sh ~/utils",
"mv ${local.image_folder}/helpers/xamarin-utils.sh ~/utils"
]
}
provisioner "shell" {
scripts = [
"./scripts/build/install-xcode-clt.sh",
"./scripts/build/install-homebrew.sh",
"./scripts/build/install-rosetta.sh"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/install-xcode-clt.sh",
"${path.root}/../scripts/build/install-homebrew.sh"
]
}
provisioner "shell" {
scripts = [
"./scripts/build/configure-tccdb-macos.sh",
"./scripts/build/configure-auto-updates.sh",
"./scripts/build/configure-ntpconf.sh",
"./scripts/build/configure-shell.sh"
environment_vars = ["PASSWORD=${var.vm_password}", "USERNAME=${var.vm_username}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/configure-tccdb-macos.sh",
"${path.root}/../scripts/build/configure-auto-updates.sh",
"${path.root}/../scripts/build/configure-ntpconf.sh",
"${path.root}/../scripts/build/configure-shell.sh"
]
environment_vars = [
"PASSWORD=${var.vm_password}",
"USERNAME=${var.vm_username}"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
}
provisioner "shell" {
scripts = [
"./scripts/build/configure-preimagedata.sh",
"./scripts/build/configure-ssh.sh",
"./scripts/build/configure-machine.sh"
environment_vars = ["IMAGE_VERSION=${var.build_id}", "IMAGE_OS=${var.image_os}", "PASSWORD=${var.vm_password}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/configure-preimagedata.sh",
"${path.root}/../scripts/build/configure-ssh.sh",
"${path.root}/../scripts/build/configure-machine.sh"
]
environment_vars = [
"IMAGE_VERSION=${var.build_id}",
"IMAGE_OS=${var.image_os}",
"PASSWORD=${var.vm_password}"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
}
provisioner "shell" {
execute_command = "source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
expect_disconnect = true
inline = ["echo 'Reboot VM'", "shutdown -r now"]
}
provisioner "shell" {
pause_before = "30s"
scripts = [
"./scripts/build/configure-windows.sh",
"./scripts/build/install-powershell.sh",
"./scripts/build/install-mono.sh",
"./scripts/build/install-dotnet.sh",
"./scripts/build/install-azcopy.sh",
"./scripts/build/install-openssl.sh",
"./scripts/build/install-ruby.sh",
"./scripts/build/install-rubygems.sh",
"./scripts/build/install-git.sh",
"./scripts/build/install-node.sh",
"./scripts/build/install-common-utils.sh"
environment_vars = ["API_PAT=${var.github_api_pat}", "USER_PASSWORD=${var.vm_password}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
pause_before = "30s"
scripts = [
"${path.root}/../scripts/build/install-rosetta.sh",
"${path.root}/../scripts/build/configure-windows.sh",
"${path.root}/../scripts/build/install-powershell.sh",
"${path.root}/../scripts/build/install-mono.sh",
"${path.root}/../scripts/build/install-dotnet.sh",
"${path.root}/../scripts/build/install-azcopy.sh",
"${path.root}/../scripts/build/install-openssl.sh",
"${path.root}/../scripts/build/install-ruby.sh",
"${path.root}/../scripts/build/install-rubygems.sh",
"${path.root}/../scripts/build/install-git.sh",
"${path.root}/../scripts/build/install-node.sh",
"${path.root}/../scripts/build/install-common-utils.sh"
]
environment_vars = [
"API_PAT=${var.github_api_pat}",
"USER_PASSWORD=${var.vm_password}"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
}
provisioner "shell" {
script = "./scripts/build/Install-Xcode.ps1"
environment_vars = [
"XCODE_INSTALL_STORAGE_URL=${var.xcode_install_storage_url}",
"XCODE_INSTALL_SAS=${var.xcode_install_sas}"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
environment_vars = ["XCODE_INSTALL_STORAGE_URL=${var.xcode_install_storage_url}", "XCODE_INSTALL_SAS=${var.xcode_install_sas}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
script = "${path.root}/../scripts/build/Install-Xcode.ps1"
}
provisioner "shell" {
execute_command = "source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
expect_disconnect = true
inline = ["echo 'Reboot VM'", "shutdown -r now"]
}
provisioner "shell" {
scripts = [
"./scripts/build/install-actions-cache.sh",
"./scripts/build/install-llvm.sh",
"./scripts/build/install-openjdk.sh",
"./scripts/build/install-aws-tools.sh",
"./scripts/build/install-rust.sh",
"./scripts/build/install-gcc.sh",
"./scripts/build/install-cocoapods.sh",
"./scripts/build/install-android-sdk.sh",
"./scripts/build/install-safari.sh",
"./scripts/build/install-chrome.sh",
"./scripts/build/install-bicep.sh",
"./scripts/build/install-codeql-bundle.sh"
environment_vars = ["API_PAT=${var.github_api_pat}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/install-actions-cache.sh",
"${path.root}/../scripts/build/install-llvm.sh",
"${path.root}/../scripts/build/install-openjdk.sh",
"${path.root}/../scripts/build/install-aws-tools.sh",
"${path.root}/../scripts/build/install-rust.sh",
"${path.root}/../scripts/build/install-gcc.sh",
"${path.root}/../scripts/build/install-cocoapods.sh",
"${path.root}/../scripts/build/install-android-sdk.sh",
"${path.root}/../scripts/build/install-safari.sh",
"${path.root}/../scripts/build/install-chrome.sh",
"${path.root}/../scripts/build/install-bicep.sh",
"${path.root}/../scripts/build/install-codeql-bundle.sh"
]
environment_vars = [
"API_PAT=${var.github_api_pat}"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
}
provisioner "shell" {
scripts = [
"./scripts/build/Install-Toolset.ps1",
"./scripts/build/Configure-Toolset.ps1"
environment_vars = ["IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/Install-Toolset.ps1",
"${path.root}/../scripts/build/Configure-Toolset.ps1"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
}
provisioner "shell" {
script = "./scripts/build/configure-xcode-simulators.rb"
execute_command = "source $HOME/.bash_profile; ruby {{ .Path }}"
script = "${path.root}/../scripts/build/configure-xcode-simulators.rb"
}
provisioner "shell" {
inline = [
"pwsh -File \"$HOME/image-generation/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"$HOME/image-generation/output/software-report\" -ImageName ${var.build_id}",
"pwsh -File \"$HOME/image-generation/tests/RunAll-Tests.ps1\""
environment_vars = ["IMAGE_FOLDER=${local.image_folder}"]
execute_command = "source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
inline = [
"pwsh -File \"${local.image_folder}/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"${local.image_folder}/output/software-report\" -ImageName ${var.build_id}",
"pwsh -File \"${local.image_folder}/tests/RunAll-Tests.ps1\""
]
execute_command = "source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
}
provisioner "file" {
destination = "../image-output/"
direction = "download"
source = "./image-generation/output/"
destination = "${path.root}/../../image-output/"
direction = "download"
source = "${local.image_folder}/output/"
}
provisioner "shell" {
scripts = [
"./scripts/build/configure-hostname.sh"
]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
scripts = ["${path.root}/../scripts/build/configure-hostname.sh"]
}
}

Some files were not shown because too many files have changed in this diff Show More