mirror of
https://github.com/actions/runner-images-sangeeth.git
synced 2025-12-20 06:29:50 +00:00
[macOS] Add packer template for macOS 13 (#7116)
This commit is contained in:
246
images/macos/templates/macOS-13.anka.pkr.hcl
Normal file
246
images/macos/templates/macOS-13.anka.pkr.hcl
Normal file
@@ -0,0 +1,246 @@
|
|||||||
|
packer {
|
||||||
|
required_plugins {
|
||||||
|
veertu-anka = {
|
||||||
|
version = "= v3.1.0"
|
||||||
|
source = "github.com/veertuinc/veertu-anka"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "source_vm_name" {
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "source_vm_tag" {
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "build_id" {
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "vm_username" {
|
||||||
|
type = string
|
||||||
|
sensitive = true
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "vm_password" {
|
||||||
|
type = string
|
||||||
|
sensitive = true
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "github_api_pat" {
|
||||||
|
type = string
|
||||||
|
default = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "xcode_install_user" {
|
||||||
|
type = string
|
||||||
|
sensitive = true
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "xcode_install_password" {
|
||||||
|
type = string
|
||||||
|
sensitive = true
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "vcpu_count" {
|
||||||
|
type = string
|
||||||
|
default = "6"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "ram_size" {
|
||||||
|
type = string
|
||||||
|
default = "24G"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "image_os" {
|
||||||
|
type = string
|
||||||
|
default = "macos13"
|
||||||
|
}
|
||||||
|
|
||||||
|
source "veertu-anka-vm-clone" "template" {
|
||||||
|
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"
|
||||||
|
}
|
||||||
|
|
||||||
|
build {
|
||||||
|
sources = [
|
||||||
|
"source.veertu-anka-vm-clone.template"
|
||||||
|
]
|
||||||
|
provisioner "shell" {
|
||||||
|
inline = [
|
||||||
|
"mkdir ~/image-generation"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
provisioner "file" {
|
||||||
|
destination = "image-generation/"
|
||||||
|
sources = [
|
||||||
|
"./provision/assets",
|
||||||
|
"./tests",
|
||||||
|
"./software-report",
|
||||||
|
"./helpers"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
provisioner "file" {
|
||||||
|
destination = "image-generation/software-report/"
|
||||||
|
source = "../../helpers/software-report-base"
|
||||||
|
}
|
||||||
|
provisioner "file" {
|
||||||
|
destination = "image-generation/add-certificate.swift"
|
||||||
|
source = "./provision/configuration/add-certificate.swift"
|
||||||
|
}
|
||||||
|
provisioner "file" {
|
||||||
|
destination = ".bashrc"
|
||||||
|
source = "./provision/configuration/environment/bashrc"
|
||||||
|
}
|
||||||
|
provisioner "file" {
|
||||||
|
destination = ".bash_profile"
|
||||||
|
source = "./provision/configuration/environment/bashprofile"
|
||||||
|
}
|
||||||
|
provisioner "file" {
|
||||||
|
destination = "./"
|
||||||
|
source = "./provision/utils"
|
||||||
|
}
|
||||||
|
provisioner "shell" {
|
||||||
|
inline = [
|
||||||
|
"mkdir ~/bootstrap"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
provisioner "file" {
|
||||||
|
destination = "bootstrap"
|
||||||
|
source = "./provision/bootstrap-provisioner/"
|
||||||
|
}
|
||||||
|
provisioner "file" {
|
||||||
|
destination = "image-generation/toolset.json"
|
||||||
|
source = "./toolsets/toolset-13.json"
|
||||||
|
}
|
||||||
|
provisioner "shell" {
|
||||||
|
scripts = [
|
||||||
|
"./provision/core/xcode-clt.sh",
|
||||||
|
"./provision/core/homebrew.sh"
|
||||||
|
]
|
||||||
|
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
|
||||||
|
}
|
||||||
|
provisioner "shell" {
|
||||||
|
scripts = [
|
||||||
|
"./provision/configuration/configure-tccdb-macos.sh",
|
||||||
|
"./provision/configuration/disable-auto-updates.sh",
|
||||||
|
"./provision/configuration/ntpconf.sh",
|
||||||
|
"./provision/configuration/shell-change.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 = [
|
||||||
|
"./provision/configuration/preimagedata.sh",
|
||||||
|
"./provision/configuration/configure-ssh.sh",
|
||||||
|
"./provision/configuration/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" {
|
||||||
|
script = "./provision/core/reboot.sh"
|
||||||
|
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
|
||||||
|
expect_disconnect = true
|
||||||
|
}
|
||||||
|
provisioner "shell" {
|
||||||
|
pause_before = "30s"
|
||||||
|
scripts = [
|
||||||
|
"./provision/core/open_windows_check.sh",
|
||||||
|
"./provision/core/powershell.sh",
|
||||||
|
"./provision/core/dotnet.sh",
|
||||||
|
"./provision/core/azcopy.sh",
|
||||||
|
"./provision/core/ruby.sh",
|
||||||
|
"./provision/core/rubygem.sh",
|
||||||
|
"./provision/core/git.sh",
|
||||||
|
"./provision/core/mongodb.sh",
|
||||||
|
"./provision/core/node.sh",
|
||||||
|
"./provision/core/commonutils.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 = "./provision/core/xcode.ps1"
|
||||||
|
environment_vars = [
|
||||||
|
"XCODE_INSTALL_USER=${var.xcode_install_user}",
|
||||||
|
"XCODE_INSTALL_PASSWORD=${var.xcode_install_password}"
|
||||||
|
]
|
||||||
|
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
|
||||||
|
}
|
||||||
|
provisioner "shell" {
|
||||||
|
script = "./provision/core/reboot.sh"
|
||||||
|
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
|
||||||
|
expect_disconnect = true
|
||||||
|
}
|
||||||
|
provisioner "shell" {
|
||||||
|
scripts = [
|
||||||
|
"./provision/core/llvm.sh",
|
||||||
|
"./provision/core/swiftlint.sh",
|
||||||
|
"./provision/core/openjdk.sh",
|
||||||
|
"./provision/core/php.sh",
|
||||||
|
"./provision/core/aws.sh",
|
||||||
|
"./provision/core/rust.sh",
|
||||||
|
"./provision/core/gcc.sh",
|
||||||
|
"./provision/core/haskell.sh",
|
||||||
|
"./provision/core/stack.sh",
|
||||||
|
"./provision/core/cocoapods.sh",
|
||||||
|
"./provision/core/android-toolsets.sh",
|
||||||
|
"./provision/core/vsmac.sh",
|
||||||
|
"./provision/core/apache.sh",
|
||||||
|
"./provision/core/nginx.sh",
|
||||||
|
"./provision/core/postgresql.sh",
|
||||||
|
"./provision/core/vcpkg.sh",
|
||||||
|
"./provision/core/miniconda.sh",
|
||||||
|
"./provision/core/safari.sh",
|
||||||
|
"./provision/core/chrome.sh",
|
||||||
|
"./provision/core/edge.sh",
|
||||||
|
"./provision/core/firefox.sh",
|
||||||
|
"./provision/core/bicep.sh",
|
||||||
|
"./provision/core/codeql-bundle.sh"
|
||||||
|
]
|
||||||
|
environment_vars = [
|
||||||
|
"API_PAT=${var.github_api_pat}"
|
||||||
|
]
|
||||||
|
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
|
||||||
|
}
|
||||||
|
provisioner "shell" {
|
||||||
|
script = "./provision/core/delete-duplicate-sims.rb"
|
||||||
|
execute_command = "source $HOME/.bash_profile; ruby {{ .Path }}"
|
||||||
|
}
|
||||||
|
provisioner "shell" {
|
||||||
|
inline = [
|
||||||
|
"pwsh -File \"$HOME/image-generation/software-report/SoftwareReport.Generator.ps1\" -OutputDirectory \"$HOME/image-generation/output/software-report\" -ImageName ${var.build_id}"
|
||||||
|
]
|
||||||
|
execute_command = "source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
|
||||||
|
}
|
||||||
|
provisioner "file" {
|
||||||
|
destination = "../image-output/"
|
||||||
|
direction = "download"
|
||||||
|
source = "./image-generation/output/"
|
||||||
|
}
|
||||||
|
provisioner "shell" {
|
||||||
|
scripts = [
|
||||||
|
"./provision/configuration/configure-hostname.sh",
|
||||||
|
"./provision/configuration/finalize-vm.sh"
|
||||||
|
]
|
||||||
|
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
|
||||||
|
}
|
||||||
|
}
|
||||||
142
images/macos/toolsets/toolset-13.json
Normal file
142
images/macos/toolsets/toolset-13.json
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
{
|
||||||
|
"xcode": {
|
||||||
|
"default": "14.2",
|
||||||
|
"versions": [
|
||||||
|
{"link": "14.3", "version": "14.3.0"},
|
||||||
|
{"link": "14.2", "version": "14.2.0"},
|
||||||
|
{ "link": "14.1", "version": "14.1.0"},
|
||||||
|
{ "link": "14.0.1", "version": "14.0.1", "symlinks": ["14.0"] }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"xamarin": {
|
||||||
|
"vsmac": {
|
||||||
|
"default": "2022",
|
||||||
|
"versions": [ "2022" ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"java": {
|
||||||
|
"default": "8",
|
||||||
|
"default_vendor": "Temurin-Hotspot",
|
||||||
|
"vendors": [
|
||||||
|
{
|
||||||
|
"name": "Temurin-Hotspot",
|
||||||
|
"versions": [ "8", "11", "17" ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"android": {
|
||||||
|
"platform_min_version": "27",
|
||||||
|
"build_tools_min_version": "27.0.0",
|
||||||
|
"extra-list": [
|
||||||
|
"android;m2repository", "google;m2repository", "google;google_play_services", "intel;Hardware_Accelerated_Execution_Manager"
|
||||||
|
],
|
||||||
|
"addon-list": [],
|
||||||
|
"additional-tools": [
|
||||||
|
"cmake;3.18.1",
|
||||||
|
"cmake;3.22.1"
|
||||||
|
],
|
||||||
|
"ndk": {
|
||||||
|
"default": "25",
|
||||||
|
"versions": [
|
||||||
|
"23", "24", "25"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"powershellModules": [
|
||||||
|
{ "name": "Az" },
|
||||||
|
{ "name": "MarkdownPS" },
|
||||||
|
{ "name": "Pester" },
|
||||||
|
{ "name": "PSScriptAnalyzer" }
|
||||||
|
],
|
||||||
|
"brew": {
|
||||||
|
"common_packages": [
|
||||||
|
"ant",
|
||||||
|
"aria2",
|
||||||
|
"azure-cli",
|
||||||
|
"bazelisk",
|
||||||
|
"carthage",
|
||||||
|
"cmake",
|
||||||
|
"colima",
|
||||||
|
"gh",
|
||||||
|
"gnupg",
|
||||||
|
"gnu-tar",
|
||||||
|
"kotlin",
|
||||||
|
"libpq",
|
||||||
|
"p7zip",
|
||||||
|
"packer",
|
||||||
|
"perl",
|
||||||
|
"sbt",
|
||||||
|
"subversion",
|
||||||
|
"swiftformat",
|
||||||
|
"swig",
|
||||||
|
"zstd",
|
||||||
|
"gmp",
|
||||||
|
"zlib",
|
||||||
|
"libxext",
|
||||||
|
"libxft",
|
||||||
|
"tcl-tk",
|
||||||
|
"r",
|
||||||
|
"yq",
|
||||||
|
"imagemagick"
|
||||||
|
],
|
||||||
|
"cask_packages": [
|
||||||
|
"julia",
|
||||||
|
"vagrant",
|
||||||
|
"virtualbox",
|
||||||
|
"parallels"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"gcc": {
|
||||||
|
"versions": [
|
||||||
|
"11",
|
||||||
|
"12"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"pipx": [
|
||||||
|
{
|
||||||
|
"package": "yamllint",
|
||||||
|
"cmd": "yamllint --version"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dotnet": {
|
||||||
|
"versions": [
|
||||||
|
"3.1",
|
||||||
|
"6.0",
|
||||||
|
"7.0"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ruby": {
|
||||||
|
"default": "3.0",
|
||||||
|
"rubygems": [
|
||||||
|
"xcode-install",
|
||||||
|
"cocoapods",
|
||||||
|
"xcpretty",
|
||||||
|
"bundler",
|
||||||
|
"fastlane",
|
||||||
|
"jazzy"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"go": {
|
||||||
|
"default": "1.17"
|
||||||
|
},
|
||||||
|
"node": {
|
||||||
|
"default": "16",
|
||||||
|
"nvm_versions": [
|
||||||
|
"14",
|
||||||
|
"16",
|
||||||
|
"18"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"llvm": {
|
||||||
|
"version": "15"
|
||||||
|
},
|
||||||
|
"php": {
|
||||||
|
"version": "8.2"
|
||||||
|
},
|
||||||
|
"mongodb": {
|
||||||
|
"version": "5.0"
|
||||||
|
},
|
||||||
|
"postgresql": {
|
||||||
|
"version": "14"
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user