Files
runner-images/images/macos/templates/macOS-10.14.json
2021-10-14 14:42:34 +03:00

230 lines
8.2 KiB
JSON

{
"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,
"xcode_install_user": null,
"xcode_install_password": null,
"image_os": "macos1014"
},
"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": "10",
"RAM": "24576",
"NestedHV": "true",
"shutdown_timeout": "15m"
}
],
"provisioners": [
{
"type": "shell",
"inline": "mkdir ~/image-generation"
},
{
"type": "file",
"source": "./provision/assets",
"destination": "~/image-generation/"
},
{
"type": "file",
"source": "./tests",
"destination": "~/image-generation/"
},
{
"type": "file",
"source": "./software-report",
"destination": "~/image-generation/"
},
{
"type": "file",
"source": "./helpers",
"destination": "~/image-generation/"
},
{
"type": "file",
"source": "./provision/configuration/environment/bashrc",
"destination": "~/.bashrc"
},
{
"type": "file",
"source": "./provision/configuration/environment/bashprofile",
"destination": "~/.bash_profile"
},
{
"type": "file",
"source": "./provision/utils",
"destination": "~/"
},
{
"type": "file",
"source": "./provision/bootstrap-provisioner",
"destination": "~/bootstrap"
},
{
"type": "file",
"source": "./toolsets/toolset-10.14.json",
"destination": "~/image-generation/toolset.json"
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}",
"scripts": [
"./provision/configuration/add-network-interface-detection.sh",
"./provision/configuration/autologin.sh",
"./provision/configuration/disable-auto-updates.sh",
"./provision/configuration/screensaver-off.sh",
"./provision/configuration/ntpconf.sh",
"./provision/configuration/max-files.sh"
],
"environment_vars": [
"PASSWORD={{user `vm_password`}}",
"USERNAME={{user `vm_username`}}"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"scripts": [
"./provision/configuration/preimagedata.sh",
"./provision/configuration/configure-ssh.sh",
"./provision/configuration/configure-machine.sh"
],
"environment_vars": [
"IMAGE_VERSION={{user `build_id`}}",
"IMAGE_OS={{user `image_os`}}"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}",
"script": "./provision/core/reboot.sh",
"expect_disconnect": true
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"pause_before": "30s",
"scripts": [
"./provision/core/xcode-clt.sh",
"./provision/core/homebrew.sh",
"./provision/core/powershell.sh",
"./provision/core/dotnet.sh",
"./provision/core/python.sh",
"./provision/core/azcopy.sh",
"./provision/core/openssl.sh",
"./provision/core/ruby.sh",
"./provision/core/rubygem.sh",
"./provision/core/git.sh",
"./provision/core/node.sh"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}",
"script": "./provision/core/xcode.ps1",
"environment_vars": [
"XCODE_INSTALL_USER={{user `xcode_install_user`}}",
"XCODE_INSTALL_PASSWORD={{user `xcode_install_password`}}"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}",
"script": "./provision/core/reboot.sh",
"expect_disconnect": true
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"scripts": [
"./provision/core/commonutils.sh",
"./provision/core/golang.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/xamarin.sh",
"./provision/core/xamarin-android-ndk.sh",
"./provision/core/vsmac.sh",
"./provision/core/nvm.sh",
"./provision/core/postgresql.sh",
"./provision/core/mongodb.sh",
"./provision/core/audiodevice.sh",
"./provision/core/safari.sh",
"./provision/core/chrome.sh",
"./provision/core/edge.sh",
"./provision/core/firefox.sh",
"./provision/core/miniconda.sh",
"./provision/core/xcode-sims.sh",
"./provision/core/xcode-postbuild.sh",
"./provision/core/pypy.sh",
"./provision/core/pipx-packages.sh",
"./provision/core/bicep.sh"
]
},
{
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}",
"scripts": [
"./provision/core/toolset.ps1",
"./provision/core/configure-toolset.ps1"
]
},
{
"type": "shell",
"execute_command": "ruby {{ .Path }}",
"scripts": [
"./provision/core/delete-duplicate-sims.rb"
]
},
{
"type": "shell",
"inline": [
"pwsh -File \"$HOME/image-generation/software-report/SoftwareReport.Generator.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": [
"./provision/configuration/configure-hostname.sh",
"./provision/configuration/finalize-vm.sh"
]
}
]
}