Compare commits

..
160 changed files with 5399 additions and 4124 deletions
+1
View File
@@ -36,6 +36,7 @@ body:
attributes:
label: Runner images affected
options:
- label: Ubuntu 20.04
- label: Ubuntu 22.04
- label: Ubuntu 24.04
- label: macOS 13
+1
View File
@@ -19,6 +19,7 @@ body:
attributes:
label: Runner images affected
options:
- label: Ubuntu 20.04
- label: Ubuntu 22.04
- label: Ubuntu 24.04
- label: macOS 13
+1
View File
@@ -57,6 +57,7 @@ body:
attributes:
label: Runner images where you need the tool
options:
- label: Ubuntu 20.04
- label: Ubuntu 22.04
- label: Ubuntu 24.04
- label: macOS 13
+1 -1
View File
@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v3
- name: Validate JSON Schema
shell: pwsh
+3 -2
View File
@@ -10,12 +10,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Create release for ${{ github.event.client_payload.ReleaseBranchName }}
uses: ncipollo/release-action@440c8c1cb0ed28b9f43e4d1d670870f059653174 #v1.16.0
uses: ncipollo/[email protected]4.0
with:
tag: ${{ github.event.client_payload.ReleaseBranchName }}
name: ${{ github.event.client_payload.ReleaseTitle }}
body: ${{ github.event.client_payload.ReleaseBody }}
prerelease: ${{ github.event.client_payload.Prerelease }}
commit: ${{ github.event.client_payload.Commitish }}
allowUpdates: true
+6 -20
View File
@@ -18,7 +18,7 @@ jobs:
run: |
git checkout ${{ github.event.client_payload.ReleaseBranchName }}
git branch ${{ github.event.client_payload.ReleaseBranchName }}-docs
git push origin ${{ github.event.client_payload.ReleaseBranchName }}-docs --force
git push origin ${{ github.event.client_payload.ReleaseBranchName }}-docs
- name: Create pull request for ${{ github.event.client_payload.ReleaseBranchName }}
id: create-pr
@@ -26,29 +26,15 @@ jobs:
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const pulls = await github.rest.pulls.list({
let response = await github.rest.pulls.create({
owner: context.repo.owner,
repo: context.repo.repo,
head: `${context.repo.owner}:${{ github.event.client_payload.ReleaseBranchName }}-docs`,
title: "${{ github.event.client_payload.PullRequestTitle }}",
head: "${{ github.event.client_payload.ReleaseBranchName }}-docs",
base: "${{ github.event.client_payload.PullRequestBase }}",
state: 'open'
body: `${{ github.event.client_payload.PullRequestBody }}`
});
if (pulls.data.length > 0) {
console.log(`Pull request already exists: ${pulls.data[0].html_url}`);
return pulls.data[0].number;
} else {
console.log('No existing pull request found, creating new one');
let response = await github.rest.pulls.create({
owner: context.repo.owner,
repo: context.repo.repo,
title: "${{ github.event.client_payload.PullRequestTitle }}",
head: "${{ github.event.client_payload.ReleaseBranchName }}-docs",
base: "${{ github.event.client_payload.PullRequestBase }}",
body: `${{ github.event.client_payload.PullRequestBody }}`
});
return response.data.number;
}
return response.data.number
- name: Request reviewers
uses: actions/github-script@v7
+4 -8
View File
@@ -56,18 +56,14 @@ 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 C:/syft
- name: Install SYFT tool on Ubuntu
if: ${{ runner.os == 'Linux' }}
run: curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b D:/syft
- name: Install SYFT tool on Ubuntu or macOS
if: ${{ runner.os != 'Windows' }}
run: curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
- name: Install SYFT v1.24.0 on macOS
if: ${{ runner.os == 'macOS' }}
run: curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin v1.24.0
#Running section.
- name: Run SYFT on Windows
if: ${{ runner.os == 'Windows' }}
run: C:/syft/syft dir:C:/ -vv -o spdx-json=sbom.json
run: D:/syft/syft dir:C:/ -vv -o spdx-json=sbom.json
- name: Run SYFT on Ubuntu
if: ${{ runner.os == 'Linux' }}
run: syft dir:/ -vv -o spdx-json=sbom.json
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
fetch-depth: 0
- name: Lint Code Base
uses: github/super-linter/slim@v7
uses: github/super-linter/slim@v4
env:
VALIDATE_ALL_CODEBASE: false
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+21 -93
View File
@@ -14,106 +14,34 @@ defaults:
jobs:
trigger-workflow:
runs-on: ubuntu-latest
outputs:
ci_workflow_run_id: ${{ steps.resolve.outputs.ci_workflow_run_id }}
ci_workflow_run_url: ${{ steps.resolve.outputs.ci_workflow_run_url }}
env:
CI_PR_TOKEN: ${{ secrets.CI_PR_TOKEN }}
PR_TITLE: ${{ github.event.pull_request.title }}
CI_REPO: ${{ vars.CI_REPO }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Trigger Build workflow
env:
CI_PR_TOKEN: ${{ secrets.CI_PR_TOKEN }}
PR_TITLE: ${{ github.event.pull_request.title }}
CI_PR: ${{ secrets.CI_REPO }}
run: |
Import-Module ./helpers/GitHubApi.psm1
$gitHubApi = Get-GithubApi -Repository "${env:CI_REPO}" -AccessToken "${env:CI_PR_TOKEN}"
$headers = @{
Authorization="Bearer $env:CI_PR_TOKEN"
}
# Private repository for builds
$apiRepoUrl = "https://api.github.com/repos/$env:CI_PR"
$eventType = "trigger-${{ inputs.image_type }}-build"
[string] $prGuid = New-Guid
$clientPayload = @{
pr_title = "${env:PR_TITLE} - " + $prGuid
custom_repo = "${{ github.event.pull_request.head.repo.full_name }}"
$body = @{
event_type = $eventType;
client_payload = @{
pr_title = "$env:PR_TITLE"
custom_repo = "${{ github.event.pull_request.head.repo.full_name }}"
custom_repo_commit_hash = "${{ github.event.pull_request.head.sha }}"
}
$gitHubApi.DispatchWorkflow($eventType, $clientPayload)
"PR_GUID=$prGuid" | Out-File -Append -FilePath $env:GITHUB_ENV
- name: Resolve Workflow Run ID
id: resolve
run: |
Import-Module ./helpers/GitHubApi.psm1
$gitHubApi = Get-GithubApi -Repository "${env:CI_REPO}" -AccessToken "${env:CI_PR_TOKEN}"
$workflowFileName = $("{0}.yml" -f "${{ inputs.image_type }}").ToLower()
$WorkflowSearchPattern = "${env:PR_GUID}"
# It might take a few minutes for the action to start
$attempt = 1
do {
$workflowRuns = $gitHubApi.GetWorkflowRuns($WorkflowFileName).workflow_runs
$workflowRunId = ($workflowRuns | Where-Object {$_.display_title -match $WorkflowSearchPattern}).id | Select-Object -First 1
if (-not ([string]::IsNullOrEmpty($workflowRunId))) {
$workflowRun = $gitHubApi.GetWorkflowRun($workflowRunId)
Write-Host "Found the workflow run with ID $workflowRunId on attempt $attempt. Workflow run link: $($workflowRun.html_url)"
"ci_workflow_run_id=$workflowRunId" | Out-File -Append -FilePath $env:GITHUB_OUTPUT
"ci_workflow_run_url=$($workflowRun.html_url)" | Out-File -Append -FilePath $env:GITHUB_OUTPUT
break
}
Write-Host "Workflow run for $WorkflowSearchPattern pattern not found on attempt $attempt."
$attempt += 1
Start-Sleep 30
} until ($attempt -eq 10)
if ([string]::IsNullOrEmpty($workflowRunId)) {
throw "Failed to find a workflow run for '$WorkflowSearchPattern'."
}
wait-completion:
runs-on: ubuntu-latest
needs: trigger-workflow
steps:
- name: Checkout Code
uses: actions/checkout@v4
$bodyString = $body | ConvertTo-Json
- name: Wait for workflow completion
env:
CI_PR_TOKEN: ${{ secrets.CI_PR_TOKEN }}
CI_REPO: ${{ vars.CI_REPO }}
run: |
./helpers/WaitWorkflowCompletion.ps1 `
-WorkflowRunId "${{ needs.trigger-workflow.outputs.ci_workflow_run_id }}" `
-Repository "${env:CI_REPO}" `
-AccessToken "${env:CI_PR_TOKEN}"
- name: Add Summary
if: always()
run: |
"# Test Partner Image" >> $env:GITHUB_STEP_SUMMARY
"| Key | Value |" >> $env:GITHUB_STEP_SUMMARY
"| :-----------: | :--------: |" >> $env:GITHUB_STEP_SUMMARY
"| Workflow Run | [Link](${{ needs.trigger-workflow.outputs.ci_workflow_run_url }}) |" >> $env:GITHUB_STEP_SUMMARY
"| Workflow Result | $env:CI_WORKFLOW_RUN_RESULT |" >> $env:GITHUB_STEP_SUMMARY
" " >> $env:GITHUB_STEP_SUMMARY
cancel-workflow:
runs-on: ubuntu-latest
needs: [trigger-workflow, wait-completion]
if: cancelled()
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Cancel workflow
env:
CI_PR_TOKEN: ${{ secrets.CI_PR_TOKEN }}
CI_REPO: ${{ vars.CI_REPO }}
run: |
Import-Module ./helpers/GitHubApi.psm1
$gitHubApi = Get-GithubApi -Repository "${env:CI_REPO}" -AccessToken "${env:CI_PR_TOKEN}"
$gitHubApi.CancelWorkflowRun("${{ needs.trigger-workflow.outputs.ci_workflow_run_id }}")
try {
Invoke-WebRequest -Uri "$apiRepoUrl/dispatches" -Method Post -Headers $headers -Body $bodyString | Out-Null
} catch {
throw "$($_.exception[0].message)"
}
+20
View File
@@ -0,0 +1,20 @@
name: Trigger Ubuntu20.04 CI
run-name: Ubuntu20.04 - ${{ github.event.pull_request.title }}
on:
pull_request_target:
types: labeled
paths:
- 'images/ubuntu/**'
defaults:
run:
shell: pwsh
jobs:
Ubuntu_2004:
if: github.event.label.name == 'CI ubuntu-all' || github.event.label.name == 'CI ubuntu-2004'
uses: ./.github/workflows/trigger-ubuntu-win-build.yml
with:
image_type: 'ubuntu2004'
secrets: inherit
@@ -10,6 +10,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Update release for ${{ github.event.client_payload.ReleaseBranchName }}
uses: actions/github-script@v7
with:
+1 -1
View File
@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v3
- name: Validate JSON Schema
shell: pwsh
+1 -1
View File
@@ -12,7 +12,7 @@ defaults:
shell: pwsh
jobs:
Windows_2025:
Windows_2022:
if: github.event.label.name == 'CI windows-all' || github.event.label.name == 'CI windows-2025'
uses: ./.github/workflows/trigger-ubuntu-win-build.yml
with:
+2 -2
View File
@@ -23,7 +23,7 @@ Here are a few things you can do that will increase the likelihood of your pull
- Follow the style guide for [Powershell](https://github.com/PoshCode/PowerShellPracticeAndStyle) when writing Windows scripts. There is currently no set style for the Shell scripts that run Linux installs :soon:.
- Include complete details of why this is needed in the PR description.
- Keep your change as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests.
- Write [good commit messages](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
- Write [good commit messages](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
- For new tools:
- Make sure that the tool satisfies the [Software Guidelines](README.md#software-guidelines).
- Create an issue and get approval from us to add this tool to the image before creating the pull request.
@@ -53,7 +53,7 @@ Add `Invoke-PesterTests -TestFile <testFileName> [-TestName <describeName>]` at
Use existing scripts such as [github-cli.sh](images/ubuntu/scripts/build/github-cli.sh) as a starting point.
- Use [helpers](images/ubuntu/scripts/helpers/install.sh) to simplify the installation process.
- The validation part should `exit 1` if there is any issue with the installation.
- Add changes to the software report generator `images/ubuntu/scripts/docs-gen/Generate-SoftwareReport.ps1`. The software report generator is used to generate an image's README file, e.g. [Ubuntu2204-Readme.md](images/ubuntu/Ubuntu2204-Readme.md) and it uses [MarkdownPS](https://github.com/Sarafian/MarkdownPS).
- Add changes to the software report generator `images/ubuntu/scripts/docs-gen/Generate-SoftwareReport.ps1`. The software report generator is used to generate an image's README file, e.g. [Ubuntu2004-Readme.md](images/ubuntu/Ubuntu2004-README.md) and it uses [MarkdownPS](https://github.com/Sarafian/MarkdownPS).
### macOS
+8 -7
View File
@@ -22,15 +22,16 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
| --------------------|---------------------|--------------------|--------------------|
| Ubuntu 24.04 | `ubuntu-latest` or `ubuntu-24.04` | [ubuntu-24.04] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fubuntu24.json) |
| Ubuntu 22.04 | `ubuntu-22.04` | [ubuntu-22.04] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fubuntu22.json) |
| macOS 15 | `macos-15-large`| [macOS-15] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fmacos-15.json) |
| macOS 15 Arm64 | `macos-15` or `macos-15-xlarge` | [macOS-15-arm64] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fmacos-15-arm64.json) |
| Ubuntu 20.04 <sup>deprecated</sup> | `ubuntu-20.04` | [ubuntu-20.04] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fubuntu20.json) |
| macOS 15 <sup>beta</sup> | `macos-15-large`| [macOS-15] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fmacos-15.json) |
| macOS 15 Arm64 <sup>beta</sup> | `macos-15` or `macos-15-xlarge` | [macOS-15-arm64] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fmacos-15-arm64.json) |
| macOS 14 | `macos-latest-large` or `macos-14-large`| [macOS-14] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fmacos-14.json) |
| macOS 14 Arm64 |`macos-latest`, `macos-14`, `macos-latest-xlarge` or `macos-14-xlarge`| [macOS-14-arm64] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fmacos-14-arm64.json) |
| macOS 13 | `macos-13` or `macos-13-large` | [macOS-13] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fmacos-13.json) |
| macOS 13 Arm64 | `macos-13-xlarge` | [macOS-13-arm64] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fmacos-13-arm64.json) |
| Windows Server 2025 | `windows-2025` | [windows-2025] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fwin25.json) |
| Windows Server 2025 <sup>beta</sup> | `windows-2025` | [windows-2025] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fwin25.json) |
| Windows Server 2022 | `windows-latest` or `windows-2022` | [windows-2022] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fwin22.json) |
| Windows Server 2019 | `windows-2019` | [windows-2019] | ![Deprecated](https://img.shields.io/badge/-Deprecated-red) |
| Windows Server 2019 | `windows-2019` | [windows-2019] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fwin19.json) |
### Label scheme
@@ -39,9 +40,10 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
[ubuntu-24.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md
[ubuntu-22.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md
[windows-2019]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2019-Readme.md
[ubuntu-20.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2004-Readme.md
[windows-2025]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md
[windows-2022]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md
[windows-2019]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2019-Readme.md
[macOS-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
@@ -120,7 +122,6 @@ The `-latest` migration process is gradual and happens over 1-2 months in order
| GCC <br/> GNU Fortran <br/> Clang <br/> GNU C++ | 3 latest major versions |
| Android NDK | 1 latest non-LTS, 2 latest LTS versions |
| Xcode | - only one major version of Xcode will be supported per macOS version <br/> - all minor versions of the supported major version will be available <br/> - beta and RC versions will be provided "as-is" in the latest available macOS image only no matter of beta/GA status of the image <br/> - when a new patch version is released, the previous patch version will be replaced |
| Xcode Platforms | - only three major.minor versions of platform tools and simulator runtimes will be available for installed Xcode, including beta/RC versions |
### Package managers usage
@@ -130,7 +131,7 @@ We use third-party package managers to install software during the image generat
| Operating system | Package manager | Third-party repos and packages |
| :--- | :---: | ---: |
| Ubuntu | [APT](https://wiki.debian.org/Apt) | [docker](https://download.docker.com/linux/ubuntu) <br/> [Eclipse-Temurin (Adoptium)](https://packages.adoptium.net/artifactory/deb/) <br/> [Erlang](https://packages.erlang-solutions.com/ubuntu) <br/> [Firefox](https://ppa.launchpad.net/mozillateam/ppa/ubuntu) <br/> [git-lfs](https://packagecloud.io/install/repositories/github/git-lfs) <br/> [git](https://launchpad.net/~git-core/+archive/ubuntu/ppa) <br/> [Google Cloud CLI](https://packages.cloud.google.com/apt) <br/> [Heroku](https://cli-assets.heroku.com/channels/stable/apt) <br/> [HHvm](https://dl.hhvm.com/ubuntu) <br/> [MongoDB](https://repo.mongodb.org/apt/ubuntu) <br/> [Mono](https://download.mono-project.com/repo/ubuntu) <br/> [MS Edge](https://packages.microsoft.com/repos/edge) <br/> [PostgreSQL](https://apt.postgresql.org/pub/repos/apt/) <br/> [R](https://cloud.r-project.org/bin/linux/ubuntu) |
| Ubuntu | [APT](https://wiki.debian.org/Apt) | [containers](https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) (Ubuntu 20 only) <br/> [docker](https://download.docker.com/linux/ubuntu) (Ubuntu20 0nly) <br/> [Eclipse-Temurin (Adoptium)](https://packages.adoptium.net/artifactory/deb/) <br/> [Erlang](https://packages.erlang-solutions.com/ubuntu) <br/> [Firefox](http://ppa.launchpad.net/mozillateam/ppa/ubuntu) <br/> [git-lfs](https://packagecloud.io/install/repositories/github/git-lfs) <br/> [git](https://launchpad.net/~git-core/+archive/ubuntu/ppa) <br/> [Google Cloud CLI](https://packages.cloud.google.com/apt) <br/> [Heroku](https://cli-assets.heroku.com/channels/stable/apt) <br/> [HHvm](https://dl.hhvm.com/ubuntu) <br/> [MongoDB](https://repo.mongodb.org/apt/ubuntu) <br/> [Mono](https://download.mono-project.com/repo/ubuntu) <br/> [MS Edge](https://packages.microsoft.com/repos/edge) <br/> [PostgreSQL](https://apt.postgresql.org/pub/repos/apt/) <br/> [R](https://cloud.r-project.org/bin/linux/ubuntu) |
| | [pipx](https://pypa.github.io/pipx) | ansible-core <br/>yamllint |
| Windows | [Chocolatey](https://chocolatey.org) | No third-party repos installed |
| macOS | [Homebrew](https://brew.sh) | [aws-cli v2](https://github.com/aws/homebrew-tap) </br> [azure/bicep](https://github.com/Azure/homebrew-bicep) </br> [mongodb/brew](https://github.com/mongodb/homebrew-brew) |
+9 -15
View File
@@ -1,6 +1,6 @@
# GitHub Actions Runner Images
The runner-images project uses [Packer](https://www.packer.io/) to generate disk images for Windows 2019/2022 and Ubuntu 22.04/24.04.
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 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.
@@ -49,7 +49,7 @@ In any case, you will need these software installed:
For Linux - install the latest version from your distro's package repo.
For Windows - download and install it from [here](https://gitforwindows.org/) or use [Chocolatey](https://chocolatey.org/):
For Windows - download and install it from [here](https://gitforwindows.org/) of use [Chocolatey](https://chocolatey.org/):
```powershell
choco install git -params '"/GitAndUnixToolsOnPath"'
@@ -75,7 +75,8 @@ In any case, you will need these software installed:
## Manual image generation
This repository includes a script that assists in generating images in Azure.
All you need is an Azure subscription, a resource group in that subscription and a build agent configured as described above.
All you need is an Azure subscription and a build agent configured as described above.
We suggest starting with building the UbuntuMinimal image because it includes only basic software and builds in less than 30 minutes.
All the commands below should be executed in PowerShell.
@@ -95,10 +96,9 @@ Import-Module .\helpers\GenerateResourcesAndImage.ps1
Finally, run the `GenerateResourcesAndImage` function, setting the mandatory arguments: image type and where to build and store the resulting managed image:
- `SubscriptionId` - your Azure Subscription ID;
- `ResourceGroupName` - the name of the resource group that will store the resulting artifact (e.g., "imagegen-test").
The resource group must already exist in your Azure subscription;
- `ResourceGroupName` - the name of the resource group that will be created within your subscription (e.g., "imagegen-test");
- `AzureLocation` - the location where resources will be created (e.g., "East US");
- `ImageType` - the type of image to build (valid options are "Windows2019", "Windows2022", "Windows2025", "Ubuntu2204", "Ubuntu2404").
- `ImageType` - the type of image to build (we suggest choosing "UbuntuMinimal" here; other valid options are "Windows2019", "Windows2022", "Windows2025", "Ubuntu2004", "Ubuntu2204", "Ubuntu2404").
This function automatically creates all required Azure resources and initiates the Packer image generation for the selected image type.
@@ -195,18 +195,14 @@ you can use Packer directly. To do this, you will need:
- a resource group created in your Azure subscription where the managed image will be stored;
- a string to be used as a password for the user used to install software (Windows only).
Then, you can invoke Packer in your CI/CD pipeline using the following commands:
Then, you can invoke Packer in your CI/CD pipeline using the following command:
```powershell
packer plugins install github.com/hashicorp/azure 2.2.1
packer build -only "$BuildName*" `
-var "subscription_id=$SubscriptionId" `
packer build -var "subscription_id=$SubscriptionId" `
-var "client_id=$ClientId" `
-var "client_secret=$ClientSecret" `
-var "install_password=$InstallPassword" `
-var "location=$Location" `
-var "image_os=$ImageOS" `
-var "managed_image_name=$ImageName" `
-var "managed_image_resource_group_name=$ImageResourceGroupName" `
-var "tenant_id=$TenantId" `
@@ -215,15 +211,13 @@ packer build -only "$BuildName*" `
Where:
- `BuildName` - name of the build defined in Packer template's `build{}` block (e.g. "ubuntu-24_04", "windows-2025");
- `SubscriptionId` - your Azure Subscription ID;
- `ClientId` and `ClientSecret` - Service Principal credentials;
- `TenantId` - Azure Tenant ID;
- `InstallPassword` - password for the user used to install software (Windows only);
- `Location` - location where resources will be created (e.g., "East US");
- `ImageOS` - the type of OS that will be deployed as a temporary VM (e.g. "ubuntu24", "win25");
- `ImageName` and `ImageResourceGroupName` - name of the resource group where the managed image will be stored;
- `TemplatePath` - path to the folder with Packer template files (e.g., "images/windows/templates").
- `TemplatePath` - path to the Packer template file (e.g., "images/windows/templates/windows-2022.pkr.hcl").
### Required variables
+110 -34
View File
@@ -4,11 +4,13 @@ enum ImageType {
Windows2019 = 1
Windows2022 = 2
Windows2025 = 3
Ubuntu2204 = 4
Ubuntu2404 = 5
Ubuntu2004 = 4
Ubuntu2204 = 5
Ubuntu2404 = 6
UbuntuMinimal = 7
}
Function Get-PackerTemplate {
Function Get-PackerTemplatePath {
param (
[Parameter(Mandatory = $True)]
[string] $RepositoryRoot,
@@ -19,41 +21,36 @@ Function Get-PackerTemplate {
switch ($ImageType) {
# Note: Double Join-Path is required to support PowerShell 5.1
([ImageType]::Windows2019) {
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "build.windows-2019.pkr.hcl"
$imageOS = "win19"
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "windows-2019.pkr.hcl"
}
([ImageType]::Windows2022) {
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "build.windows-2022.pkr.hcl"
$imageOS = "win22"
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "windows-2022.pkr.hcl"
}
([ImageType]::Windows2025) {
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "build.windows-2025.pkr.hcl"
$imageOS = "win25"
$relativeTemplatePath = Join-Path (Join-Path "windows" "templates") "windows-2025.pkr.hcl"
}
([ImageType]::Ubuntu2004) {
$relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "ubuntu-20.04.pkr.hcl"
}
([ImageType]::Ubuntu2204) {
$relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "build.ubuntu-22_04.pkr.hcl"
$imageOS = "ubuntu22"
$relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "ubuntu-22.04.pkr.hcl"
}
([ImageType]::Ubuntu2404) {
$relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "build.ubuntu-24_04.pkr.hcl"
$imageOS = "ubuntu24"
$relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "ubuntu-24.04.pkr.hcl"
}
([ImageType]::UbuntuMinimal) {
$relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "ubuntu-minimal.pkr.hcl"
}
default { throw "Unknown type of image" }
}
$imageTemplatePath = [IO.Path]::Combine($RepositoryRoot, "images", $relativeTemplatePath)
# Specific template selection using Packer's "-only" functionality
$buildName = [IO.Path]::GetFileName($imageTemplatePath).Split(".")[1]
if (-not (Test-Path $imageTemplatePath)) {
throw "Template for image '$ImageType' doesn't exist on path '$imageTemplatePath'."
}
return [PSCustomObject] @{
"BuildName" = $buildName
"ImageOS" = $imageOS
"Path" = [IO.Path]::GetDirectoryName($imageTemplatePath)
}
return $imageTemplatePath;
}
Function Show-LatestCommit {
@@ -86,9 +83,9 @@ Function GenerateResourcesAndImage {
.PARAMETER SubscriptionId
The Azure subscription id where the Azure resources will be created.
.PARAMETER ResourceGroupName
The name of the resource group to store the resulting artifact. Resource group must already exist.
The name of the resource group to create the Azure resources in.
.PARAMETER ImageType
The type of image to generate. Valid values are: Windows2019, Windows2022, Windows2025, Ubuntu2204, Ubuntu2404.
The type of image to generate. Valid values are: Windows2019, Windows2022, Windows2025, Ubuntu2004, Ubuntu2204, Ubuntu2404, UbuntuMinimal.
.PARAMETER ManagedImageName
The name of the managed image to create. The default is "Runner-Image-{{ImageType}}".
.PARAMETER AzureLocation
@@ -106,6 +103,12 @@ Function GenerateResourcesAndImage {
.PARAMETER RestrictToAgentIpAddress
If set, access to the VM used by packer to generate the image is restricted to the public IP address this script is run from.
This parameter cannot be used in combination with the virtual_network_name packer parameter.
.PARAMETER Force
Delete the resource group if it exists without user confirmation.
This parameter is deprecated and will be removed in a future release.
.PARAMETER ReuseResourceGroup
Reuse the resource group if it exists without user confirmation.
This parameter is deprecated and will be removed in a future release.
.PARAMETER OnError
Specify how packer handles an error during image creation.
Options:
@@ -119,7 +122,7 @@ Function GenerateResourcesAndImage {
.PARAMETER PluginVersion
Specify the version of the packer Azure plugin to use. The default is "2.2.1".
.EXAMPLE
GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "shsamytest1" -ImageGenerationRepositoryRoot "C:\runner-images" -ImageType Ubuntu2204 -AzureLocation "East US"
GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "shsamytest1" -ImageGenerationRepositoryRoot "C:\runner-images" -ImageType Ubuntu2004 -AzureLocation "East US"
#>
param (
[Parameter(Mandatory = $True)]
@@ -147,12 +150,24 @@ Function GenerateResourcesAndImage {
[Parameter(Mandatory = $False)]
[switch] $RestrictToAgentIpAddress,
[Parameter(Mandatory = $False)]
[switch] $Force,
[Parameter(Mandatory = $False)]
[switch] $ReuseResourceGroup,
[Parameter(Mandatory = $False)]
[ValidateSet("abort", "ask", "cleanup", "run-cleanup-provisioner")]
[string] $OnError = "ask",
[Parameter(Mandatory = $False)]
[hashtable] $Tags = @{}
)
if ($Force -or $ReuseResourceGroup) {
Write-Warning "The `ReuseResourceGroup` and `Force` parameters are deprecated and will be removed in a future release. The resource group will be reused when it already exists and an error will be thrown when it doesn't. If you want to delete the resource group, please delete it manually."
}
if ($Force -and $ReuseResourceGroup) {
throw "Force and ReuseResourceGroup cannot be used together."
}
Show-LatestCommit -ErrorAction SilentlyContinue
# Validate packer is installed
@@ -162,12 +177,12 @@ Function GenerateResourcesAndImage {
}
# Get template path
$PackerTemplate = Get-PackerTemplate -RepositoryRoot $ImageGenerationRepositoryRoot -ImageType $ImageType
Write-Debug "Template path: $($PackerTemplate.Path)."
$TemplatePath = Get-PackerTemplatePath -RepositoryRoot $ImageGenerationRepositoryRoot -ImageType $ImageType
Write-Debug "Template path: $TemplatePath."
# Prepare list of allowed inbound IP addresses
if ($RestrictToAgentIpAddress) {
$AgentIp = (Invoke-RestMethod https://ipinfo.io/json).ip
$AgentIp = (Invoke-RestMethod http://ipinfo.io/json).ip
if (-not $AgentIp) {
throw "Unable to determine agent IP address."
}
@@ -215,19 +230,17 @@ Function GenerateResourcesAndImage {
Write-Host "Validating packer template..."
& $PackerBinary validate `
"-only=$($PackerTemplate.BuildName)*" `
"-var=client_id=fake" `
"-var=client_secret=fake" `
"-var=subscription_id=$($SubscriptionId)" `
"-var=tenant_id=fake" `
"-var=location=$($AzureLocation)" `
"-var=image_os=$($PackerTemplate.ImageOS)" `
"-var=managed_image_name=$($ManagedImageName)" `
"-var=managed_image_resource_group_name=$($ResourceGroupName)" `
"-var=install_password=$($InstallPassword)" `
"-var=allowed_inbound_ip_addresses=$($AllowedInboundIpAddresses)" `
"-var=azure_tags=$($TagsJson)" `
$PackerTemplate.Path
$TemplatePath
if ($LastExitCode -ne 0) {
throw "Packer template validation failed."
@@ -253,8 +266,73 @@ Function GenerateResourcesAndImage {
if ($ResourceGroupExists) {
Write-Verbose "Resource group '$ResourceGroupName' already exists."
}
else {
throw "Resource group '$ResourceGroupName' does not exist."
# Remove resource group if it exists and we are not reusing it
if ($ResourceGroupExists -and -not $ReuseResourceGroup) {
if ($Force) {
# Delete and recreate the resource group
Write-Host "Deleting resource group '$ResourceGroupName'..."
az group delete --name $ResourceGroupName --yes --output none
if ($LastExitCode -ne 0) {
throw "Failed to delete resource group '$ResourceGroupName'."
}
Write-Host "Resource group '$ResourceGroupName' was deleted."
$ResourceGroupExists = $false
}
else {
# are we running in a non-interactive session?
# https://stackoverflow.com/questions/9738535/powershell-test-for-noninteractive-mode
if ([System.Console]::IsOutputRedirected -or ![Environment]::UserInteractive -or !!([Environment]::GetCommandLineArgs() | Where-Object { $_ -ilike '-noni*' })) {
throw "Non-interactive mode, resource group '$ResourceGroupName' already exists, either specify -Force to delete it, or -ReuseResourceGroup to reuse."
}
else {
# 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."),
[System.Management.Automation.Host.ChoiceDescription]::new("&Abort", "Abort execution.")
)
$result = $Host.UI.PromptForChoice($title, $message, $options, 0)
}
switch ($result) {
0 {
# Delete and recreate the resource group
Write-Host "Deleting resource group '$ResourceGroupName'..."
az group delete --name $ResourceGroupName --yes
if ($LastExitCode -ne 0) {
throw "Failed to delete resource group '$ResourceGroupName'."
}
Write-Host "Resource group '$ResourceGroupName' was deleted."
$ResourceGroupExists = $false
}
1 {
# Keep the resource group and continue
}
2 {
# Stop the current action
Write-Error "User stopped the action."
exit 1
}
}
}
}
# Create resource group
if (-not $ResourceGroupExists) {
Write-Host "Creating resource group '$ResourceGroupName' in location '$AzureLocation'..."
if ($TagsList) {
az group create --name $ResourceGroupName --location $AzureLocation --tags $TagsList --query id
}
else {
az group create --name $ResourceGroupName --location $AzureLocation --query id
}
if ($LastExitCode -ne 0) {
throw "Failed to create resource group '$ResourceGroupName'."
}
}
# Create service principal
@@ -285,19 +363,17 @@ Function GenerateResourcesAndImage {
Write-Debug "Tenant id: $TenantId."
& $PackerBinary build -on-error="$($OnError)" `
-only "$($PackerTemplate.BuildName)*" `
-var "client_id=$($ServicePrincipalAppId)" `
-var "client_secret=$($ServicePrincipalPassword)" `
-var "subscription_id=$($SubscriptionId)" `
-var "tenant_id=$($TenantId)" `
-var "location=$($AzureLocation)" `
-var "image_os=$($PackerTemplate.ImageOS)" `
-var "managed_image_name=$($ManagedImageName)" `
-var "managed_image_resource_group_name=$($ResourceGroupName)" `
-var "install_password=$($InstallPassword)" `
-var "allowed_inbound_ip_addresses=$($AllowedInboundIpAddresses)" `
-var "azure_tags=$($TagsJson)" `
$PackerTemplate.Path
$TemplatePath
if ($LastExitCode -ne 0) {
throw "Failed to build image."
-97
View File
@@ -1,97 +0,0 @@
class GithubApi
{
[string] $Repository
[object] hidden $AuthHeader
GithubApi(
[string] $Repository,
[string] $AccessToken
) {
$this.Repository = $Repository
$this.AuthHeader = $this.BuildAuth($AccessToken)
}
[object] hidden BuildAuth([string]$AccessToken) {
if ([string]::IsNullOrEmpty($AccessToken)) {
return $null
}
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("'':${AccessToken}"))
return @{
Authorization = "Basic ${base64AuthInfo}"
}
}
[string] hidden BuildBaseUrl([string]$Repository, [string]$ApiPrefix) {
return "https://$ApiPrefix.github.com/repos/$Repository"
}
[object] GetWorkflowRuns([string]$WorkflowId) {
$url = "actions/workflows/$WorkflowId/runs"
$response = $this.InvokeRestMethod($url, 'GET', $null, $null)
return $response
}
[object] GetWorkflowRun([string]$WorkflowRunId) {
$url = "actions/runs/$WorkflowRunId"
$response = $this.InvokeRestMethod($url, 'GET', $null, $null)
return $response
}
[object] DispatchWorkflow([string]$EventType, [object]$EventPayload) {
$url = "dispatches"
$body = @{
"event_type" = $EventType
"client_payload" = $EventPayload
} | ConvertTo-Json
$response = $this.InvokeRestMethod($url, 'POST', $null, $body)
return $response
}
[object] CancelWorkflowRun([string]$workflowRunId) {
$url = "actions/runs/$workflowRunId/cancel"
$response = $this.InvokeRestMethod($url, 'POST', $null, $null)
return $response
}
[string] hidden BuildUrl([string]$url, [string]$RequestParams, [string]$ApiPrefix) {
$baseUrl = $this.BuildBaseUrl($this.Repository, $ApiPrefix)
if ([string]::IsNullOrEmpty($RequestParams)) {
return "$($baseUrl)/$($url)"
} else {
return "$($baseUrl)/$($url)?$($requestParams)"
}
}
[object] hidden InvokeRestMethod(
[string] $url,
[string] $Method,
[string] $RequestParams,
[string] $body
) {
$requestUrl = $this.BuildUrl($url, $RequestParams, "api")
$params = @{
Method = $Method
ContentType = "application/json"
Uri = $requestUrl
Headers = @{}
}
if ($this.AuthHeader) {
$params.Headers += $this.AuthHeader
}
if (![string]::IsNullOrEmpty($body)) {
$params.Body = $body
}
$response = Invoke-RestMethod @params
return $response
}
}
function Get-GithubApi {
param (
[string] $Repository,
[string] $AccessToken
)
return [GithubApi]::New($Repository, $AccessToken)
}
-47
View File
@@ -1,47 +0,0 @@
Param (
[Parameter(Mandatory)]
[string] $WorkflowRunId,
[Parameter(Mandatory)]
[string] $Repository,
[Parameter(Mandatory)]
[string] $AccessToken,
[int] $RetryIntervalSeconds = 300,
[int] $MaxRetryCount = 0
)
Import-Module (Join-Path $PSScriptRoot "GitHubApi.psm1")
function Wait-ForWorkflowCompletion($WorkflowRunId, $RetryIntervalSeconds) {
do {
Start-Sleep -Seconds $RetryIntervalSeconds
$workflowRun = $gitHubApi.GetWorkflowRun($WorkflowRunId)
} until ($workflowRun.status -eq "completed")
return $workflowRun
}
$gitHubApi = Get-GithubApi -Repository $Repository -AccessToken $AccessToken
$attempt = 1
do {
$finishedWorkflowRun = Wait-ForWorkflowCompletion -WorkflowRunId $WorkflowRunId -RetryIntervalSeconds $RetryIntervalSeconds
Write-Host "Workflow run finished with result: $($finishedWorkflowRun.conclusion)"
if ($finishedWorkflowRun.conclusion -in ("success", "cancelled", "timed_out")) {
break
} elseif ($finishedWorkflowRun.conclusion -eq "failure") {
if ($attempt -le $MaxRetryCount) {
Write-Host "Workflow run will be restarted. Attempt $attempt of $MaxRetryCount"
$gitHubApi.ReRunFailedJobs($WorkflowRunId)
$attempt += 1
} else {
break
}
}
} while ($true)
Write-Host "Last result: $($finishedWorkflowRun.conclusion)."
"CI_WORKFLOW_RUN_RESULT=$($finishedWorkflowRun.conclusion)" | Out-File -Append -FilePath $env:GITHUB_ENV
if ($finishedWorkflowRun.conclusion -in ("failure", "cancelled", "timed_out")) {
exit 1
}
@@ -436,4 +436,4 @@ class NoteNode: BaseNode {
[Boolean] IsIdenticalTo([BaseNode] $OtherNode) {
return $this.IsSimilarTo($OtherNode)
}
}
}
+5 -11
View File
@@ -1,6 +1,5 @@
param(
[String] [Parameter (Mandatory=$true)] $TemplatePath,
[String] [Parameter (Mandatory=$true)] $BuildTemplateName,
[String] [Parameter (Mandatory=$true)] $ClientId,
[String] [Parameter (Mandatory=$false)] $ClientSecret,
[String] [Parameter (Mandatory=$true)] $Location,
@@ -9,9 +8,7 @@ param(
[String] [Parameter (Mandatory=$true)] $TempResourceGroupName,
[String] [Parameter (Mandatory=$true)] $SubscriptionId,
[String] [Parameter (Mandatory=$true)] $TenantId,
[String] [Parameter (Mandatory=$true)] $ImageOS, # e.g. "ubuntu22", "ubuntu22" or "win19", "win22", "win25"
[String] [Parameter (Mandatory=$false)] $UseAzureCliAuth = "false",
[String] [Parameter (Mandatory=$false)] $PluginVersion = "2.3.3",
[String] [Parameter (Mandatory=$false)] $pluginVersion = "2.2.1",
[String] [Parameter (Mandatory=$false)] $VirtualNetworkName,
[String] [Parameter (Mandatory=$false)] $VirtualNetworkRG,
[String] [Parameter (Mandatory=$false)] $VirtualNetworkSubnet,
@@ -25,7 +22,7 @@ if (-not (Test-Path $TemplatePath))
exit 1
}
$buildName = $($BuildTemplateName).Split(".")[1]
$ImageTemplateName = [io.path]::GetFileName($TemplatePath).Split(".")[0]
$InstallPassword = [System.GUID]::NewGuid().ToString().ToUpper()
$SensitiveData = @(
@@ -47,15 +44,13 @@ Write-Host "Download packer plugins"
packer plugins install github.com/hashicorp/azure $pluginVersion
Write-Host "Validate packer template"
packer validate -syntax-only -only "$buildName*" $TemplatePath
packer validate -syntax-only $TemplatePath
Write-Host "Build $buildName VM"
packer build -only "$buildName*" `
-var "client_id=$ClientId" `
Write-Host "Build $ImageTemplateName VM"
packer build -var "client_id=$ClientId" `
-var "client_secret=$ClientSecret" `
-var "install_password=$InstallPassword" `
-var "location=$Location" `
-var "image_os=$ImageOS" `
-var "managed_image_name=$ImageName" `
-var "managed_image_resource_group_name=$ImageResourceGroupName" `
-var "subscription_id=$SubscriptionId" `
@@ -65,7 +60,6 @@ packer build -only "$buildName*" `
-var "virtual_network_resource_group_name=$VirtualNetworkRG" `
-var "virtual_network_subnet_name=$VirtualNetworkSubnet" `
-var "allowed_inbound_ip_addresses=$($AllowedInboundIpAddresses)" `
-var "use_azure_cli_auth=$UseAzureCliAuth" `
-var "azure_tags=$azure_tags" `
-color=false `
$TemplatePath `
@@ -2,7 +2,7 @@
# Port of Gavin Brock's Perl kcpassword generator to Python, by Tom Taylor
# <[email protected]>.
# Perl version: https://www.brock-family.org/gavin/perl/kcpassword.html
# Perl version: http://www.brock-family.org/gavin/perl/kcpassword.html
# This script was taken from https://github.com/timsutton/osx-vm-templates/blob/master/scripts/support/set_kcpassword.py
# Distributed by MIT license, license can be found at the bottom of this script
@@ -45,4 +45,4 @@ Copyright (c) 2013-2017 Timothy Sutton
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"""
"""
+104 -105
View File
@@ -1,107 +1,105 @@
| Announcements |
|-|
| [[macOS] Default Xcode on macOS 15 Sequoia will be set to Xcode 16.4 on August, 25](https://github.com/actions/runner-images/issues/12751) |
| [[macOS] macos-latest YAML-label will use macos-15 in August 2025](https://github.com/actions/runner-images/issues/12520) |
| [[ macOS ] .NET 7.x will be removed from macOS-13 and macOS-14 images on February 24,2025.](https://github.com/actions/runner-images/issues/11501) |
| [macOS 15 (Sequoia) will be generally available in GitHub Actions and Azure DevOps from February, 17](https://github.com/actions/runner-images/issues/11486) |
| [[macOS] Ruby version 3.0 will be removed from the images on Feb 10, 2025 and 3.3 will be set as default. ](https://github.com/actions/runner-images/issues/11345) |
***
# macOS 13
- OS Version: macOS 13.7.6 (22H625)
- OS Version: macOS 13.7.2 (22H313)
- Kernel Version: Darwin 22.6.0
- Image Version: 20250818.1405
- Image Version: 20250129.634
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.413, 9.0.102, 9.0.203, 9.0.304
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.410, 8.0.101, 8.0.204, 8.0.303, 8.0.405, 9.0.102
- Bash 3.2.57(1)-release
- Clang/LLVM 14.0.0
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
- GCC 13 (Homebrew GCC 13.4.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.3.0) - available by `gcc-14` alias
- GCC 15 (Homebrew GCC 15.1.0) - available by `gcc-15` alias
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.4.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.3.0) - available by `gfortran-14` alias
- GNU Fortran 15 (Homebrew GCC 15.1.0) - available by `gfortran-15` alias
- Kotlin 2.2.10-release-430
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
- Kotlin 2.1.10-release-473
- Mono 6.12.0.188
- Node.js 20.19.4
- Perl 5.40.2
- PHP 8.4.11
- Python3 3.13.7
- Ruby 3.3.9
- Node.js 20.18.2
- Perl 5.40.1
- PHP 8.4.3
- Python3 3.13.1
- Ruby 3.0.7p220
### Package Management
- Bundler 2.7.1
- Bundler 2.5.23
- Carthage 0.40.0
- CocoaPods 1.16.2
- Composer 2.8.10
- Homebrew 4.6.3
- Composer 2.8.5
- Homebrew 4.4.19
- NPM 10.8.2
- NuGet 6.3.1.1
- Pip3 25.2 (python 3.13)
- Pip3 25.0 (python 3.13)
- Pipx 1.7.1
- RubyGems 3.7.1
- Vcpkg 2025 (build from commit 4bb07a326d)
- RubyGems 3.5.23
- Vcpkg 2025 (build from commit ab42fb303)
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.15
- Apache Maven 3.9.11
- Gradle 9.0.0
- Apache Maven 3.9.9
- Gradle 8.12.1
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.30.0
- bazel 8.3.1
- bazelisk 1.27.0
- azcopy 10.28.0
- bazel 8.0.1
- bazelisk 1.25.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.15.0
- Git 2.50.1
- Git LFS 3.7.0
- GitHub CLI 2.76.2
- Curl 8.11.1
- Git 2.48.1
- Git LFS 3.6.1
- GitHub CLI 2.65.0
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.25.0
- gpg (GnuPG) 2.4.8
- jq 1.8.1
- gpg (GnuPG) 2.4.7
- jq 1.7.1
- OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.14.0
- pkgconf 2.5.1
- Packer 1.12.0
- pkgconf 2.3.0
- Unxip 3.1
- yq 4.47.1
- zstd 1.5.7
- Ninja 1.13.1
- yq 4.45.1
- zstd 1.5.6
### Tools
- AWS CLI 2.28.11
- AWS SAM CLI 1.142.1
- AWS Session Manager CLI 1.2.707.0
- Azure CLI 2.76.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.37.4
- Cmake 3.31.6
- CodeQL Action Bundle 2.22.3
- Fastlane 2.228.0
- SwiftFormat 0.57.2
- Xcbeautify 2.30.1
- AWS CLI 2.23.8
- AWS SAM CLI 1.132.0
- AWS Session Manager CLI 1.2.694.0
- Azure CLI 2.68.0
- Azure CLI (azure-devops) 1.0.1
- Bicep CLI 0.33.13
- Cmake 3.31.5
- CodeQL Action Bundle 2.20.1
- Fastlane 2.226.0
- SwiftFormat 0.55.5
- Xcbeautify 2.23.0
- Xcode Command Line Tools 14.3.1.0.1.1683849156
- Xcodes 1.6.2
- Xcodes 1.6.0
### Linters
- SwiftLint 0.59.1
- SwiftLint 0.58.2
### Browsers
- Safari 18.5 (18621.2.5.18.1)
- SafariDriver 18.5 (18621.2.5.18.1)
- Google Chrome 139.0.7258.128
- Google Chrome for Testing 139.0.7258.68
- ChromeDriver 139.0.7258.68
- Microsoft Edge 139.0.3405.102
- Microsoft Edge WebDriver 139.0.3405.102
- Mozilla Firefox 141.0.3
- geckodriver 0.36.0
- Selenium server 4.35.0
- Safari 18.3 (18620.2.4.111.8)
- SafariDriver 18.3 (18620.2.4.111.8)
- Google Chrome 132.0.6834.160
- Google Chrome for Testing 132.0.6834.159
- ChromeDriver 132.0.6834.159
- Microsoft Edge 132.0.2957.127
- Microsoft Edge WebDriver 132.0.2957.127
- Mozilla Firefox 134.0.2
- geckodriver 0.35.0
- Selenium server 4.28.0
#### Environment variables
| Name | Value |
@@ -113,61 +111,62 @@
### Java
| Version | Environment Variable |
| ------------------- | -------------------- |
| 8.0.462+8 | JAVA_HOME_8_X64 |
| 11.0.28+6 | JAVA_HOME_11_X64 |
| 17.0.16+8 (default) | JAVA_HOME_17_X64 |
| 21.0.8+9.0 | JAVA_HOME_21_X64 |
| 8.0.442+6 | JAVA_HOME_8_X64 |
| 11.0.26+4 | JAVA_HOME_11_X64 |
| 17.0.14+7 (default) | JAVA_HOME_17_X64 |
| 21.0.6+7.0 | JAVA_HOME_21_X64 |
### Cached Tools
#### PyPy
- 2.7.18 [PyPy 7.3.20]
- 2.7.18 [PyPy 7.3.17]
- 3.7.13 [PyPy 7.3.9]
- 3.8.16 [PyPy 7.3.11]
- 3.9.19 [PyPy 7.3.16]
- 3.10.16 [PyPy 7.3.19]
- 3.10.14 [PyPy 7.3.17]
#### Ruby
- 3.1.7
- 3.2.9
- 3.3.9
- 3.4.5
- 3.0.7
- 3.1.6
- 3.2.6
- 3.3.7
- 3.4.1
#### Python
- 3.8.18
- 3.9.23
- 3.10.18
- 3.9.21
- 3.10.16
- 3.11.9
- 3.12.10
- 3.13.7
- 3.12.8
- 3.13.1
#### Node.js
- 18.20.8
- 20.19.4
- 22.18.0
- 18.20.6
- 20.18.2
- 22.13.1
#### Go
- 1.22.12
- 1.23.12
- 1.24.6
- 1.21.13
- 1.22.11
- 1.23.5
### Rust Tools
- Cargo 1.89.0
- Rust 1.89.0
- Rustdoc 1.89.0
- Rustup 1.28.2
- Cargo 1.84.0
- Rust 1.84.0
- Rustdoc 1.84.0
- Rustup 1.27.1
#### Packages
- Clippy 0.1.89
- Clippy 0.1.84
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.11
- PowerShell 7.4.7
#### PowerShell Modules
- Az: 12.5.0
- Az: 12.4.0
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.0
- PSScriptAnalyzer: 1.23.0
### Xcode
| Version | Build | Path | Symlinks |
@@ -242,18 +241,18 @@
| watchOS 10.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
### Android
| Package Name | Version |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 36.1.9 |
| Android SDK Build-tools | 36.0.0<br>35.0.0 35.0.1<br>34.0.0<br>33.0.2 33.0.3 |
| Android SDK Platforms | android-36-ext19 (rev 1)<br>android-36-ext18 (rev 1)<br>android-36 (rev 2)<br>android-35-ext15 (rev 1)<br>android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 36.0.0 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264 (default)<br>27.3.13750724<br>28.2.13676358 |
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 35.3.11 |
| Android SDK Build-tools | 35.0.0 35.0.1<br>34.0.0<br>33.0.2 33.0.3 |
| Android SDK Platforms | android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 35.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.0 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264 (default)<br>27.2.12479018 |
#### Environment variables
| Name | Value |
@@ -261,17 +260,17 @@
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/28.2.13676358 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
### Miscellaneous
- Tcl/Tk 8.6.17
- Tcl/Tk 8.6.16
#### Environment variables
| Name | Value |
| ----------------- | ----------------------------------------------------------------------------------------- |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v20/20.4.1-55996/ParallelsDesktop-20.4.1-55996.dmg |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v20/20.2.0-55872/ParallelsDesktop-20.2.0-55872.dmg |
##### Notes
```
+91 -96
View File
@@ -1,158 +1,153 @@
| Announcements |
|-|
| [[macOS] Default Xcode on macOS 15 Sequoia will be set to Xcode 16.4 on August, 25](https://github.com/actions/runner-images/issues/12751) |
| [[macOS] macos-latest YAML-label will use macos-15 in August 2025](https://github.com/actions/runner-images/issues/12520) |
| [[macOS] Ruby version 3.0 will be removed from the images on Feb 10, 2025 and 3.3 will be set as default. ](https://github.com/actions/runner-images/issues/11345) |
| [[macOS] The macOS 12 Actions runner image will begin deprecation on 10/7/24 and will be fully unsupported by 12/3/24 for GitHub and by 01/13/25 for ADO](https://github.com/actions/runner-images/issues/10721) |
| [macOS 15 (Sequoia) is now available as a public beta in GitHub Actions](https://github.com/actions/runner-images/issues/10686) |
***
# macOS 13
- OS Version: macOS 13.7.6 (22H625)
- OS Version: macOS 13.7.2 (22H313)
- Kernel Version: Darwin 22.6.0
- Image Version: 20250818.1503
- Image Version: 20250127.672
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.413, 9.0.102, 9.0.203, 9.0.304
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.410, 8.0.101, 8.0.204, 8.0.303, 8.0.405, 9.0.102
- Bash 3.2.57(1)-release
- Clang/LLVM 14.0.0
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
- GCC 13 (Homebrew GCC 13.4.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.3.0) - available by `gcc-14` alias
- GCC 15 (Homebrew GCC 15.1.0) - available by `gcc-15` alias
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.4.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.3.0) - available by `gfortran-14` alias
- GNU Fortran 15 (Homebrew GCC 15.1.0) - available by `gfortran-15` alias
- Kotlin 2.2.10-release-430
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
- Kotlin 2.1.0-release-394
- Mono 6.12.0.188
- Node.js 20.19.4
- Perl 5.40.2
- Python3 3.13.7
- Ruby 3.3.9
- Node.js 20.18.2
- Perl 5.40.1
- Python3 3.13.1
- Ruby 3.0.7p220
### Package Management
- Bundler 2.7.1
- Bundler 2.5.23
- Carthage 0.40.0
- CocoaPods 1.16.2
- Homebrew 4.6.3
- Homebrew 4.4.17
- NPM 10.8.2
- NuGet 6.3.1.1
- Pip3 25.2 (python 3.13)
- Pip3 24.3.1 (python 3.13)
- Pipx 1.7.1
- RubyGems 3.7.1
- RubyGems 3.5.23
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.15
- Apache Maven 3.9.11
- Gradle 9.0.0
- Apache Maven 3.9.9
- Gradle 8.12.1
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.30.0
- bazel 8.3.1
- bazelisk 1.27.0
- azcopy 10.27.1
- bazel 8.0.1
- bazelisk 1.25.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.7.1
- Git 2.50.1
- Git LFS 3.7.0
- GitHub CLI 2.76.2
- Git 2.48.1
- Git LFS 3.6.1
- GitHub CLI 2.65.0
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.25.0
- gpg (GnuPG) 2.4.8
- jq 1.8.1
- gpg (GnuPG) 2.4.7
- jq 1.7.1
- OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.14.0
- pkgconf 2.5.1
- Packer 1.12.0
- pkgconf 2.3.0
- Unxip 3.1
- yq 4.47.1
- zstd 1.5.7
- Ninja 1.13.1
- yq 4.45.1
- zstd 1.5.6
### Tools
- AWS CLI 2.28.11
- AWS SAM CLI 1.142.1
- AWS Session Manager CLI 1.2.707.0
- Azure CLI 2.76.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.37.4
- Cmake 3.31.6
- CodeQL Action Bundle 2.22.3
- Fastlane 2.228.0
- SwiftFormat 0.57.2
- Xcbeautify 2.30.1
- AWS CLI 2.23.6
- AWS SAM CLI 1.132.0
- AWS Session Manager CLI 1.2.694.0
- Azure CLI 2.68.0
- Azure CLI (azure-devops) 1.0.1
- Bicep CLI 0.33.13
- Cmake 3.31.5
- CodeQL Action Bundle 2.20.1
- Fastlane 2.226.0
- SwiftFormat 0.55.5
- Xcbeautify 2.23.0
- Xcode Command Line Tools 14.3.1.0.1.1683849156
- Xcodes 1.6.2
- Xcodes 1.6.0
### Linters
### Browsers
- Safari 18.5 (18621.2.5.18.1)
- SafariDriver 18.5 (18621.2.5.18.1)
- Google Chrome 139.0.7258.128
- Google Chrome for Testing 139.0.7258.68
- ChromeDriver 139.0.7258.68
- Microsoft Edge 139.0.3405.102
- Microsoft Edge WebDriver 139.0.3405.102
- Mozilla Firefox 141.0.3
- geckodriver 0.36.0
- Selenium server 4.35.0
- Safari 18.2 (18620.1.16.111.6)
- SafariDriver 18.2 (18620.1.16.111.6)
- Google Chrome 132.0.6834.111
- Google Chrome for Testing 132.0.6834.110
- ChromeDriver 132.0.6834.110
- Selenium server 4.28.0
#### Environment variables
| Name | Value |
| --------------- | --------------------------------------- |
| CHROMEWEBDRIVER | /usr/local/share/chromedriver-mac-arm64 |
| EDGEWEBDRIVER | /usr/local/share/edge_driver |
| GECKOWEBDRIVER | /opt/homebrew/opt/geckodriver/bin |
| EDGEWEBDRIVER | |
| GECKOWEBDRIVER | |
### Java
| Version | Environment Variable |
| ------------------- | -------------------- |
| 11.0.28+6 | JAVA_HOME_11_arm64 |
| 17.0.16+8 (default) | JAVA_HOME_17_arm64 |
| 21.0.8+9.0 | JAVA_HOME_21_arm64 |
| 11.0.26+4 | JAVA_HOME_11_arm64 |
| 17.0.14+7 (default) | JAVA_HOME_17_arm64 |
| 21.0.6+7.0 | JAVA_HOME_21_arm64 |
### Cached Tools
#### Ruby
- 3.1.7
- 3.2.9
- 3.3.9
- 3.4.5
- 3.0.7
- 3.1.6
- 3.2.6
- 3.3.7
- 3.4.1
#### Python
- 3.11.9
- 3.12.10
- 3.13.7
- 3.12.8
- 3.13.1
#### Node.js
- 18.20.8
- 20.19.4
- 22.18.0
- 18.20.6
- 20.18.2
- 22.13.1
#### Go
- 1.22.12
- 1.23.12
- 1.24.6
- 1.21.13
- 1.22.11
- 1.23.5
### Rust Tools
- Cargo 1.89.0
- Rust 1.89.0
- Rustdoc 1.89.0
- Rustup 1.28.2
- Cargo 1.84.0
- Rust 1.84.0
- Rustdoc 1.84.0
- Rustup 1.27.1
#### Packages
- Clippy 0.1.89
- Clippy 0.1.84
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.11
- PowerShell 7.4.7
#### PowerShell Modules
- Az: 12.5.0
- Az: 12.4.0
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.0
- PSScriptAnalyzer: 1.23.0
### Xcode
| Version | Build | Path | Symlinks |
@@ -228,18 +223,18 @@
| visionOS 1.0 | Apple Vision Pro |
### Android
| Package Name | Version |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 36.1.9 |
| Android SDK Build-tools | 36.0.0<br>35.0.0 35.0.1<br>34.0.0<br>33.0.2 33.0.3 |
| Android SDK Platforms | android-36-ext19 (rev 1)<br>android-36-ext18 (rev 1)<br>android-36 (rev 2)<br>android-35-ext15 (rev 1)<br>android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 36.0.0 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264 (default)<br>27.3.13750724<br>28.2.13676358 |
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 35.3.11 |
| Android SDK Build-tools | 35.0.0 35.0.1<br>34.0.0<br>33.0.2 33.0.3 |
| Android SDK Platforms | android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 35.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.0 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264 (default)<br>27.2.12479018 |
#### Environment variables
| Name | Value |
@@ -247,10 +242,10 @@
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/28.2.13676358 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
### Miscellaneous
- Tcl/Tk 8.6.17
- Tcl/Tk 8.6.16
+125 -128
View File
@@ -1,107 +1,103 @@
| Announcements |
|-|
| [[macOS] Default Xcode on macOS 15 Sequoia will be set to Xcode 16.4 on August, 25](https://github.com/actions/runner-images/issues/12751) |
| [[macOS] macos-latest YAML-label will use macos-15 in August 2025](https://github.com/actions/runner-images/issues/12520) |
| [[macOS] Ruby version 3.0 will be removed from the images on Feb 10, 2025 and 3.3 will be set as default. ](https://github.com/actions/runner-images/issues/11345) |
| [macOS 15 (Sequoia) is now available as a public beta in GitHub Actions](https://github.com/actions/runner-images/issues/10686) |
***
# macOS 14
- OS Version: macOS 14.7.6 (23H626)
- OS Version: macOS 14.7.2 (23H311)
- Kernel Version: Darwin 23.6.0
- Image Version: 20250818.1534
- Image Version: 20250127.727
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.413, 9.0.102, 9.0.203, 9.0.304
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.410, 8.0.101, 8.0.204, 8.0.303, 8.0.405, 9.0.102
- Bash 3.2.57(1)-release
- Clang/LLVM 15.0.0
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
- GCC 13 (Homebrew GCC 13.4.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.3.0) - available by `gcc-14` alias
- GCC 15 (Homebrew GCC 15.1.0) - available by `gcc-15` alias
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.4.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.3.0) - available by `gfortran-14` alias
- GNU Fortran 15 (Homebrew GCC 15.1.0) - available by `gfortran-15` alias
- Kotlin 2.2.10-release-430
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
- Kotlin 2.1.0-release-394
- Mono 6.12.0.188
- Node.js 20.19.4
- Perl 5.40.2
- PHP 8.4.11
- Python3 3.13.7
- Ruby 3.3.9
- Node.js 20.18.2
- Perl 5.40.1
- PHP 8.4.3
- Python3 3.13.1
- Ruby 3.0.7p220
### Package Management
- Bundler 2.7.1
- Bundler 2.5.23
- Carthage 0.40.0
- CocoaPods 1.16.2
- Composer 2.8.10
- Homebrew 4.6.3
- Composer 2.8.5
- Homebrew 4.4.17
- NPM 10.8.2
- NuGet 6.3.1.1
- Pip3 25.2 (python 3.13)
- Pip3 25.0 (python 3.13)
- Pipx 1.7.1
- RubyGems 3.7.1
- Vcpkg 2025 (build from commit 4bb07a326d)
- RubyGems 3.5.23
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.15
- Apache Maven 3.9.11
- Gradle 9.0.0
- Apache Maven 3.9.9
- Gradle 8.12.1
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.30.0
- bazel 8.3.1
- bazelisk 1.27.0
- azcopy 10.27.1
- bazel 8.0.1
- bazelisk 1.25.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.15.0
- Git 2.50.1
- Git LFS 3.7.0
- GitHub CLI 2.76.2
- Curl 8.11.1
- Git 2.48.1
- Git LFS 3.6.1
- GitHub CLI 2.65.0
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.25.0
- gpg (GnuPG) 2.4.8
- jq 1.8.1
- gpg (GnuPG) 2.4.7
- jq 1.7.1
- OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.14.0
- pkgconf 2.5.1
- Unxip 3.2
- yq 4.47.1
- zstd 1.5.7
- Ninja 1.13.1
- Packer 1.12.0
- pkgconf 2.3.0
- Unxip 3.1
- yq 4.45.1
- zstd 1.5.6
### Tools
- AWS CLI 2.28.11
- AWS SAM CLI 1.142.1
- AWS Session Manager CLI 1.2.707.0
- Azure CLI 2.76.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.37.4
- Cmake 3.31.6
- CodeQL Action Bundle 2.22.3
- Fastlane 2.228.0
- SwiftFormat 0.57.2
- Xcbeautify 2.30.1
- AWS CLI 2.23.6
- AWS SAM CLI 1.132.0
- AWS Session Manager CLI 1.2.694.0
- Azure CLI 2.68.0
- Azure CLI (azure-devops) 1.0.1
- Bicep CLI 0.33.13
- Cmake 3.31.5
- CodeQL Action Bundle 2.20.1
- Fastlane 2.226.0
- SwiftFormat 0.55.5
- Xcbeautify 2.23.0
- Xcode Command Line Tools 16.2.0.0.1.1733547573
- Xcodes 1.6.2
- Xcodes 1.6.0
### Linters
- SwiftLint 0.59.1
- SwiftLint 0.58.2
### Browsers
- Safari 18.5 (19621.2.5.18.1)
- SafariDriver 18.5 (19621.2.5.18.1)
- Google Chrome 139.0.7258.128
- Google Chrome for Testing 139.0.7258.68
- ChromeDriver 139.0.7258.68
- Microsoft Edge 139.0.3405.102
- Microsoft Edge WebDriver 139.0.3405.102
- Mozilla Firefox 141.0.3
- geckodriver 0.36.0
- Selenium server 4.35.0
- Safari 18.2 (19620.1.16.111.6)
- SafariDriver 18.2 (19620.1.16.111.6)
- Google Chrome 132.0.6834.111
- Google Chrome for Testing 132.0.6834.110
- ChromeDriver 132.0.6834.110
- Microsoft Edge 132.0.2957.127
- Microsoft Edge WebDriver 132.0.2957.127
- Mozilla Firefox 134.0.2
- geckodriver 0.35.0
- Selenium server 4.28.0
#### Environment variables
| Name | Value |
@@ -113,53 +109,54 @@
### Java
| Version | Environment Variable |
| -------------------- | -------------------- |
| 8.0.462+8 | JAVA_HOME_8_X64 |
| 11.0.28+6 | JAVA_HOME_11_X64 |
| 17.0.16+8 | JAVA_HOME_17_X64 |
| 21.0.8+9.0 (default) | JAVA_HOME_21_X64 |
| 8.0.442+6 | JAVA_HOME_8_X64 |
| 11.0.26+4 | JAVA_HOME_11_X64 |
| 17.0.14+7 | JAVA_HOME_17_X64 |
| 21.0.6+7.0 (default) | JAVA_HOME_21_X64 |
### Cached Tools
#### Ruby
- 3.1.7
- 3.2.9
- 3.3.9
- 3.4.5
- 3.0.7
- 3.1.6
- 3.2.6
- 3.3.7
- 3.4.1
#### Python
- 3.9.23
- 3.10.18
- 3.9.21
- 3.10.16
- 3.11.9
- 3.12.10
- 3.13.7
- 3.12.8
- 3.13.1
#### Node.js
- 18.20.8
- 20.19.4
- 22.18.0
- 18.20.6
- 20.18.2
- 22.13.1
#### Go
- 1.22.12
- 1.23.12
- 1.24.6
- 1.21.13
- 1.22.11
- 1.23.5
### Rust Tools
- Cargo 1.89.0
- Rust 1.89.0
- Rustdoc 1.89.0
- Rustup 1.28.2
- Cargo 1.84.0
- Rust 1.84.0
- Rustdoc 1.84.0
- Rustup 1.27.1
#### Packages
- Clippy 0.1.89
- Clippy 0.1.84
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.11
- PowerShell 7.4.7
#### PowerShell Modules
- Az: 12.5.0
- Az: 12.4.0
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.0
- PSScriptAnalyzer: 1.23.0
### Xcode
| Version | Build | Path | Symlinks |
@@ -217,16 +214,16 @@
| Simulator - watchOS 10.5 | watchsimulator10.5 | 15.4 |
| Simulator - watchOS 11.1 | watchsimulator11.1 | 16.1 |
| Simulator - watchOS 11.2 | watchsimulator11.2 | 16.2 |
| Simulator - visionOS 1.0 | xrsimulator1.0 | 15.2 |
| visionOS 1.0 | xros1.0 | 15.2 |
| Simulator - visionOS 1.1 | xrsimulator1.1 | 15.3 |
| visionOS 1.1 | xros1.1 | 15.3 |
| Simulator - visionOS 1.2 | xrsimulator1.2 | 15.4 |
| visionOS 1.2 | xros1.2 | 15.4 |
| visionOS 2.1 | xros2.1 | 16.1 |
| visionOS 2.2 | xros2.2 | 16.2 |
| Simulator - visionOS 1.0 | xrsimulator1.0 | 15.2 |
| Simulator - visionOS 1.1 | xrsimulator1.1 | 15.3 |
| Simulator - visionOS 1.2 | xrsimulator1.2 | 15.4 |
| Simulator - visionOS 2.1 | xrsimulator2.1 | 16.1 |
| Simulator - visionOS 2.2 | xrsimulator2.2 | 16.2 |
| visionOS 2.2 | xros2.2 | 16.2 |
| DriverKit 23.0 | driverkit23.0 | 15.0.1 |
| DriverKit 23.2 | driverkit23.2 | 15.1, 15.2 |
| DriverKit 23.4 | driverkit23.4 | 15.3 |
@@ -235,40 +232,40 @@
| DriverKit 24.2 | driverkit24.2 | 16.2 |
#### Installed Simulators
| OS | Simulators |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| iOS 17.0 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
| iOS 17.2 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
| iOS 17.4 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 17.5 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.1 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.2 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| tvOS 17.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 10.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| OS | Simulators |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 17.0 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
| iOS 17.2 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
| iOS 17.4 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 17.5 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.1 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.2 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| tvOS 17.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 10.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
### Android
| Package Name | Version |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 36.1.9 |
| Android SDK Build-tools | 36.0.0<br>35.0.0 35.0.1<br>34.0.0<br>33.0.2 33.0.3 |
| Android SDK Platforms | android-36-ext19 (rev 1)<br>android-36-ext18 (rev 1)<br>android-36 (rev 2)<br>android-35-ext15 (rev 1)<br>android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 36.0.0 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264 (default)<br>27.3.13750724<br>28.2.13676358 |
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 35.3.11 |
| Android SDK Build-tools | 35.0.0 35.0.1<br>34.0.0<br>33.0.2 33.0.3 |
| Android SDK Platforms | android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 35.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.0 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264 (default)<br>27.2.12479018 |
#### Environment variables
| Name | Value |
@@ -276,17 +273,17 @@
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/28.2.13676358 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
### Miscellaneous
- Tcl/Tk 8.6.17
- Tcl/Tk 8.6.16
#### Environment variables
| Name | Value |
| ----------------- | ----------------------------------------------------------------------------------------- |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v20/20.4.1-55996/ParallelsDesktop-20.4.1-55996.dmg |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v20/20.2.0-55872/ParallelsDesktop-20.2.0-55872.dmg |
##### Notes
```
+110 -119
View File
@@ -1,159 +1,152 @@
| Announcements |
|-|
| [[macOS] Default Xcode on macOS 15 Sequoia will be set to Xcode 16.4 on August, 25](https://github.com/actions/runner-images/issues/12751) |
| [[macOS] macos-latest YAML-label will use macos-15 in August 2025](https://github.com/actions/runner-images/issues/12520) |
| [[ macOS ] .NET 7.x will be removed from macOS-13 and macOS-14 images on February 24,2025.](https://github.com/actions/runner-images/issues/11501) |
| [macOS 15 (Sequoia) will be generally available in GitHub Actions and Azure DevOps from March, 18](https://github.com/actions/runner-images/issues/11486) |
| [[macOS] Ruby version 3.0 will be removed from the images on Feb 17, 2025 and 3.3 will be set as default. ](https://github.com/actions/runner-images/issues/11345) |
***
# macOS 14
- OS Version: macOS 14.7.6 (23H626)
- OS Version: macOS 14.7.4 (23H420)
- Kernel Version: Darwin 23.6.0
- Image Version: 20250818.1747
- Image Version: 20250225.952
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.413, 9.0.102, 9.0.203, 9.0.304
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.406, 9.0.102, 9.0.200
- 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 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
- GCC 13 (Homebrew GCC 13.4.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.3.0) - available by `gcc-14` alias
- GCC 15 (Homebrew GCC 15.1.0) - available by `gcc-15` alias
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.4.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.3.0) - available by `gfortran-14` alias
- GNU Fortran 15 (Homebrew GCC 15.1.0) - available by `gfortran-15` alias
- Kotlin 2.2.10-release-430
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
- Kotlin 2.1.10-release-473
- Mono 6.12.0.188
- Node.js 20.19.4
- Perl 5.40.2
- Python3 3.13.7
- Ruby 3.3.9
- Node.js 20.18.3
- Perl 5.40.1
- Python3 3.13.2
- Ruby 3.3.7
### Package Management
- Bundler 2.7.1
- Bundler 2.6.5
- Carthage 0.40.0
- CocoaPods 1.16.2
- Homebrew 4.6.3
- Homebrew 4.4.22
- NPM 10.8.2
- NuGet 6.3.1.1
- Pip3 25.2 (python 3.13)
- Pip3 25.0 (python 3.13)
- Pipx 1.7.1
- RubyGems 3.7.1
- Vcpkg 2025 (build from commit 4bb07a326d)
- RubyGems 3.6.5
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.15
- Apache Maven 3.9.11
- Gradle 9.0.0
- Apache Maven 3.9.9
- Gradle 8.13
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.30.0
- bazel 8.3.1
- bazelisk 1.27.0
- azcopy 10.28.0
- bazel 8.1.0
- bazelisk 1.25.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.7.1
- Git 2.50.1
- Git LFS 3.7.0
- GitHub CLI 2.76.2
- Git 2.48.1
- Git LFS 3.6.1
- GitHub CLI 2.67.0
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.25.0
- gpg (GnuPG) 2.4.8
- jq 1.8.1
- gpg (GnuPG) 2.4.7
- jq 1.7.1
- OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.14.0
- pkgconf 2.5.1
- Unxip 3.2
- yq 4.47.1
- Packer 1.12.0
- pkgconf 2.3.0
- Unxip 3.1
- yq 4.45.1
- zstd 1.5.7
- Ninja 1.13.1
### Tools
- AWS CLI 2.28.11
- AWS SAM CLI 1.142.1
- AWS CLI 2.24.11
- AWS SAM CLI 1.134.0
- AWS Session Manager CLI 1.2.707.0
- Azure CLI 2.76.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.37.4
- Azure CLI 2.69.0
- Azure CLI (azure-devops) 1.0.1
- Bicep CLI 0.33.93
- Cmake 3.31.6
- CodeQL Action Bundle 2.22.3
- Fastlane 2.228.0
- SwiftFormat 0.57.2
- Xcbeautify 2.30.1
- CodeQL Action Bundle 2.20.1
- Fastlane 2.226.0
- SwiftFormat 0.55.5
- Xcbeautify 2.26.0
- Xcode Command Line Tools 16.2.0.0.1.1733547573
- Xcodes 1.6.2
- Xcodes 1.6.0
### Linters
### Browsers
- Safari 18.5 (19621.2.5.18.1)
- SafariDriver 18.5 (19621.2.5.18.1)
- Google Chrome 139.0.7258.128
- Google Chrome for Testing 139.0.7258.68
- ChromeDriver 139.0.7258.68
- Microsoft Edge 139.0.3405.102
- Microsoft Edge WebDriver 139.0.3405.102
- Mozilla Firefox 141.0.3
- geckodriver 0.36.0
- Selenium server 4.35.0
- Safari 18.3 (19620.2.4.111.8)
- SafariDriver 18.3 (19620.2.4.111.8)
- Google Chrome 133.0.6943.127
- Google Chrome for Testing 133.0.6943.126
- ChromeDriver 133.0.6943.126
- Selenium server 4.28.1
#### Environment variables
| Name | Value |
| --------------- | --------------------------------------- |
| CHROMEWEBDRIVER | /usr/local/share/chromedriver-mac-arm64 |
| EDGEWEBDRIVER | /usr/local/share/edge_driver |
| GECKOWEBDRIVER | /opt/homebrew/opt/geckodriver/bin |
| EDGEWEBDRIVER | |
| GECKOWEBDRIVER | |
### Java
| Version | Environment Variable |
| -------------------- | -------------------- |
| 11.0.28+6 | JAVA_HOME_11_arm64 |
| 17.0.16+8 | JAVA_HOME_17_arm64 |
| 21.0.8+9.0 (default) | JAVA_HOME_21_arm64 |
| 11.0.26+4 | JAVA_HOME_11_arm64 |
| 17.0.14+7 | JAVA_HOME_17_arm64 |
| 21.0.6+7.0 (default) | JAVA_HOME_21_arm64 |
### Cached Tools
#### Ruby
- 3.1.7
- 3.2.9
- 3.3.9
- 3.4.5
- 3.1.6
- 3.2.7
- 3.3.7
- 3.4.2
#### Python
- 3.11.9
- 3.12.10
- 3.13.7
- 3.12.9
- 3.13.2
#### Node.js
- 18.20.8
- 20.19.4
- 22.18.0
- 18.20.7
- 20.18.3
- 22.14.0
#### Go
- 1.21.13
- 1.22.12
- 1.23.12
- 1.24.6
- 1.23.6
### Rust Tools
- Cargo 1.89.0
- Rust 1.89.0
- Rustdoc 1.89.0
- Rustup 1.28.2
- Cargo 1.85.0
- Rust 1.85.0
- Rustdoc 1.85.0
- Rustup 1.27.1
#### Packages
- Clippy 0.1.89
- Clippy 0.1.85
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.11
- PowerShell 7.4.7
#### PowerShell Modules
- Az: 12.5.0
- Az: 12.4.0
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.0
- PSScriptAnalyzer: 1.23.0
### Xcode
| Version | Build | Path | Symlinks |
@@ -229,45 +222,43 @@
| DriverKit 24.2 | driverkit24.2 | 16.2 |
#### Installed Simulators
| OS | Simulators |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| iOS 17.0 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
| iOS 17.2 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
| iOS 17.4 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 17.5 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.1 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.2 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| tvOS 17.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 10.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| visionOS 1.0 | Apple Vision Pro |
| visionOS 1.1 | Apple Vision Pro |
| visionOS 1.2 | Apple Vision Pro |
| visionOS 2.1 | Apple Vision Pro |
| visionOS 2.2 | Apple Vision Pro |
| OS | Simulators |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 17.0 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
| iOS 17.2 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
| iOS 17.4 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 17.5 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.1 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.3 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| tvOS 17.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 10.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| visionOS 1.0 | Apple Vision Pro |
| visionOS 1.1 | Apple Vision Pro |
| visionOS 1.2 | Apple Vision Pro |
### Android
| Package Name | Version |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 36.1.9 |
| Android SDK Build-tools | 36.0.0<br>35.0.0 35.0.1<br>34.0.0<br>33.0.2 33.0.3 |
| Android SDK Platforms | android-36-ext19 (rev 1)<br>android-36-ext18 (rev 1)<br>android-36 (rev 2)<br>android-35-ext15 (rev 1)<br>android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 36.0.0 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264 (default)<br>27.3.13750724<br>28.2.13676358 |
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 35.3.12 |
| Android SDK Build-tools | 35.0.0 35.0.1<br>34.0.0<br>33.0.2 33.0.3 |
| Android SDK Platforms | android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 35.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.0 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264 (default)<br>27.2.12479018 |
#### Environment variables
| Name | Value |
@@ -275,10 +266,10 @@
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/28.2.13676358 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
### Miscellaneous
- Tcl/Tk 8.6.17
- Tcl/Tk 8.6.16
+169 -207
View File
@@ -1,105 +1,102 @@
| Announcements |
|-|
| [[macOS] Default Xcode on macOS 15 Sequoia will be set to Xcode 16.4 on August, 25](https://github.com/actions/runner-images/issues/12751) |
| [[macOS] macos-latest YAML-label will use macos-15 in August 2025](https://github.com/actions/runner-images/issues/12520) |
| [[macOS] Ruby version 3.0 will be removed from the images on Feb 10, 2025 and 3.3 will be set as default. ](https://github.com/actions/runner-images/issues/11345) |
| [[macOS] The macOS 12 Actions runner image will begin deprecation on 10/7/24 and will be fully unsupported by 12/3/24 for GitHub and by 01/13/25 for ADO](https://github.com/actions/runner-images/issues/10721) |
| [macOS 15 (Sequoia) is now available as a public beta in GitHub Actions](https://github.com/actions/runner-images/issues/10686) |
***
# macOS 15
- OS Version: macOS 15.5 (24F5068b)
- Kernel Version: Darwin 24.5.0
- Image Version: 20250818.1709
- OS Version: macOS 15.2 (24C101)
- Kernel Version: Darwin 24.2.0
- Image Version: 20250120.591
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.413, 9.0.102, 9.0.203, 9.0.304
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.405, 9.0.102
- Bash 3.2.57(1)-release
- Clang/LLVM 16.0.0
- Clang/LLVM 15.0.0
- Clang/LLVM (Homebrew) 18.1.8 - available on `$(brew --prefix llvm@18)/bin/clang`
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
- GCC 13 (Homebrew GCC 13.4.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.3.0) - available by `gcc-14` alias
- GCC 15 (Homebrew GCC 15.1.0) - available by `gcc-15` alias
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.4.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.3.0) - available by `gfortran-14` alias
- GNU Fortran 15 (Homebrew GCC 15.1.0) - available by `gfortran-15` alias
- Kotlin 2.2.10-release-430
- Node.js 22.18.0
- Perl 5.40.2
- PHP 8.4.11
- Python3 3.13.7
- Ruby 3.3.9
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
- Kotlin 2.1.0-release-394
- Node.js 22.13.0
- Perl 5.40.1
- PHP 8.4.3
- Python3 3.13.1
- Ruby 3.3.7
### Package Management
- Bundler 2.7.1
- Bundler 2.6.3
- Carthage 0.40.0
- CocoaPods 1.16.2
- Composer 2.8.10
- Homebrew 4.6.3
- NPM 10.9.3
- Pip3 25.2 (python 3.13)
- Composer 2.8.4
- Homebrew 4.4.16
- NPM 10.9.2
- Pip3 24.3.1 (python 3.13)
- Pipx 1.7.1
- RubyGems 3.7.1
- Vcpkg 2025 (build from commit 4bb07a326d)
- RubyGems 3.6.3
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.15
- Apache Maven 3.9.11
- Gradle 9.0.0
- Apache Maven 3.9.9
- Gradle 8.12
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.30.0
- bazel 8.3.1
- bazelisk 1.27.0
- azcopy 10.27.1
- bazel 8.0.1
- bazelisk 1.25.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.15.0
- Git 2.50.1
- Git LFS 3.7.0
- GitHub CLI 2.76.2
- Curl 8.11.1
- Git 2.48.1
- Git LFS 3.6.1
- GitHub CLI 2.65.0
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.25.0
- gpg (GnuPG) 2.4.8
- jq 1.8.1
- gpg (GnuPG) 2.4.7
- jq 1.7.1
- OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.14.0
- pkgconf 2.5.1
- Unxip 3.2
- yq 4.47.1
- zstd 1.5.7
- Ninja 1.13.1
- Packer 1.11.2
- pkgconf 2.3.0
- Unxip 3.1
- yq 4.45.1
- zstd 1.5.6
### Tools
- AWS CLI 2.28.11
- AWS SAM CLI 1.142.1
- AWS Session Manager CLI 1.2.707.0
- Azure CLI 2.76.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.37.4
- Cmake 3.31.6
- CodeQL Action Bundle 2.22.3
- Fastlane 2.228.0
- SwiftFormat 0.57.2
- Xcbeautify 2.30.1
- Xcode Command Line Tools 16.4.0.0.1.1747106510
- Xcodes 1.6.2
- AWS CLI 2.23.2
- AWS SAM CLI 1.132.0
- AWS Session Manager CLI 1.2.694.0
- Azure CLI 2.68.0
- Azure CLI (azure-devops) 1.0.1
- Bicep CLI 0.32.4
- Cmake 3.31.4
- CodeQL Action Bundle 2.20.1
- Fastlane 2.226.0
- SwiftFormat 0.55.4
- Xcbeautify 2.17.0
- Xcode Command Line Tools 16.2.0.0.1.1733547573
- Xcodes 1.6.0
### Linters
- SwiftLint 0.59.1
- SwiftLint 0.58.2
### Browsers
- Safari 18.5 (20621.2.5.11.5)
- SafariDriver 18.5 (20621.2.5.11.5)
- Google Chrome 139.0.7258.128
- Google Chrome for Testing 139.0.7258.68
- ChromeDriver 139.0.7258.68
- Microsoft Edge 139.0.3405.102
- Microsoft Edge WebDriver 139.0.3405.102
- Mozilla Firefox 141.0.3
- geckodriver 0.36.0
- Selenium server 4.35.0
- Safari 18.2 (20620.1.16.11.8)
- SafariDriver 18.2 (20620.1.16.11.8)
- Google Chrome 132.0.6834.84
- Google Chrome for Testing 132.0.6834.83
- ChromeDriver 132.0.6834.83
- Microsoft Edge 132.0.2957.115
- Microsoft Edge WebDriver 132.0.2957.115
- Mozilla Firefox 134.0.1
- geckodriver 0.35.0
- Selenium server 4.27.0
#### Environment variables
| Name | Value |
@@ -109,179 +106,144 @@
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
### Java
| Version | Environment Variable |
| -------------------- | -------------------- |
| 11.0.28+6 | JAVA_HOME_11_X64 |
| 17.0.16+8 | JAVA_HOME_17_X64 |
| 21.0.8+9.0 (default) | JAVA_HOME_21_X64 |
| Version | Environment Variable |
| --------------------- | -------------------- |
| 11.0.25+9 | JAVA_HOME_11_X64 |
| 17.0.13+11 | JAVA_HOME_17_X64 |
| 21.0.5+11.0 (default) | JAVA_HOME_21_X64 |
### Cached Tools
#### Ruby
- 3.1.7
- 3.2.9
- 3.3.9
- 3.4.5
- 3.1.6
- 3.2.6
- 3.3.7
- 3.4.1
#### Python
- 3.9.23
- 3.10.18
- 3.9.21
- 3.10.16
- 3.11.9
- 3.12.10
- 3.13.7
- 3.12.8
- 3.13.1
#### Node.js
- 18.20.8
- 20.19.4
- 22.18.0
- 18.20.5
- 20.18.1
- 22.13.0
#### Go
- 1.22.12
- 1.23.12
- 1.24.6
- 1.21.13
- 1.22.10
- 1.23.4
### Rust Tools
- Cargo 1.89.0
- Rust 1.89.0
- Rustdoc 1.89.0
- Rustup 1.28.2
- Cargo 1.84.0
- Rust 1.84.0
- Rustdoc 1.84.0
- Rustup 1.27.1
#### Packages
- Clippy 0.1.89
- Clippy 0.1.84
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.11
- PowerShell 7.4.6
#### PowerShell Modules
- Az: 12.5.0
- Az: 12.4.0
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.0
- PSScriptAnalyzer: 1.23.0
### Xcode
| Version | Build | Path | Symlinks |
| -------------- | -------- | --------------------------------- | ----------------------------------------------------------------------------------------- |
| 26.0 (beta) | 17A5295f | /Applications/Xcode_26_beta_5.app | /Applications/Xcode_26.0.0.app<br>/Applications/Xcode_26.0.app |
| 16.4 | 16F6 | /Applications/Xcode_16.4.app | /Applications/Xcode_16.4.0.app |
| 16.3 | 16E140 | /Applications/Xcode_16.3.app | /Applications/Xcode_16.3.0.app |
| 16.2 | 16C5032a | /Applications/Xcode_16.2.app | /Applications/Xcode_16.2.0.app |
| 16.1 | 16B40 | /Applications/Xcode_16.1.app | /Applications/Xcode_16.1.0.app |
| 16.0 (default) | 16A242d | /Applications/Xcode_16.app | /Applications/Xcode_16.0.0.app<br>/Applications/Xcode_16.0.app<br>/Applications/Xcode.app |
| Version | Build | Path | Symlinks |
| -------------- | -------- | ---------------------------- | ----------------------------------------------------------------------------------------- |
| 16.2 | 16C5032a | /Applications/Xcode_16.2.app | /Applications/Xcode_16.2.0.app |
| 16.1 | 16B40 | /Applications/Xcode_16.1.app | /Applications/Xcode_16.1.0.app |
| 16.0 (default) | 16A242d | /Applications/Xcode_16.app | /Applications/Xcode_16.0.0.app<br>/Applications/Xcode_16.0.app<br>/Applications/Xcode.app |
| 15.4 | 15F31d | /Applications/Xcode_15.4.app | /Applications/Xcode_15.4.0.app |
#### Installed SDKs
| SDK | SDK Name | Xcode Version |
| ------------------------- | -------------------- | ------------- |
| macOS 15.0 | macosx15.0 | 16.0 |
| macOS 15.1 | macosx15.1 | 16.1 |
| macOS 15.2 | macosx15.2 | 16.2 |
| macOS 15.4 | macosx15.4 | 16.3 |
| macOS 15.5 | macosx15.5 | 16.4 |
| macOS 26.0 | macosx26.0 | 26.0 |
| iOS 18.0 | iphoneos18.0 | 16.0 |
| iOS 18.1 | iphoneos18.1 | 16.1 |
| iOS 18.2 | iphoneos18.2 | 16.2 |
| iOS 18.4 | iphoneos18.4 | 16.3 |
| iOS 18.5 | iphoneos18.5 | 16.4 |
| iOS 26.0 | iphoneos26.0 | 26.0 |
| Simulator - iOS 18.0 | iphonesimulator18.0 | 16.0 |
| Simulator - iOS 18.1 | iphonesimulator18.1 | 16.1 |
| Simulator - iOS 18.2 | iphonesimulator18.2 | 16.2 |
| Simulator - iOS 18.4 | iphonesimulator18.4 | 16.3 |
| Simulator - iOS 18.5 | iphonesimulator18.5 | 16.4 |
| Simulator - iOS 26.0 | iphonesimulator26.0 | 26.0 |
| tvOS 18.0 | appletvos18.0 | 16.0 |
| tvOS 18.1 | appletvos18.1 | 16.1 |
| tvOS 18.2 | appletvos18.2 | 16.2 |
| tvOS 18.4 | appletvos18.4 | 16.3 |
| tvOS 18.5 | appletvos18.5 | 16.4 |
| tvOS 26.0 | appletvos26.0 | 26.0 |
| Simulator - tvOS 18.0 | appletvsimulator18.0 | 16.0 |
| Simulator - tvOS 18.1 | appletvsimulator18.1 | 16.1 |
| Simulator - tvOS 18.2 | appletvsimulator18.2 | 16.2 |
| Simulator - tvOS 18.4 | appletvsimulator18.4 | 16.3 |
| Simulator - tvOS 18.5 | appletvsimulator18.5 | 16.4 |
| Simulator - tvOS 26.0 | appletvsimulator26.0 | 26.0 |
| watchOS 11.0 | watchos11.0 | 16.0 |
| watchOS 11.1 | watchos11.1 | 16.1 |
| watchOS 11.2 | watchos11.2 | 16.2 |
| watchOS 11.4 | watchos11.4 | 16.3 |
| watchOS 11.5 | watchos11.5 | 16.4 |
| watchOS 26.0 | watchos26.0 | 26.0 |
| Simulator - watchOS 11.0 | watchsimulator11.0 | 16.0 |
| Simulator - watchOS 11.1 | watchsimulator11.1 | 16.1 |
| Simulator - watchOS 11.2 | watchsimulator11.2 | 16.2 |
| Simulator - watchOS 11.4 | watchsimulator11.4 | 16.3 |
| Simulator - watchOS 11.5 | watchsimulator11.5 | 16.4 |
| Simulator - watchOS 26.0 | watchsimulator26.0 | 26.0 |
| visionOS 2.0 | xros2.0 | 16.0 |
| visionOS 2.1 | xros2.1 | 16.1 |
| visionOS 2.2 | xros2.2 | 16.2 |
| visionOS 2.4 | xros2.4 | 16.3 |
| visionOS 2.5 | xros2.5 | 16.4 |
| visionOS 26.0 | xros26.0 | 26.0 |
| Simulator - visionOS 2.0 | xrsimulator2.0 | 16.0 |
| Simulator - visionOS 2.1 | xrsimulator2.1 | 16.1 |
| Simulator - visionOS 2.2 | xrsimulator2.2 | 16.2 |
| Simulator - visionOS 2.4 | xrsimulator2.4 | 16.3 |
| Simulator - visionOS 2.5 | xrsimulator2.5 | 16.4 |
| Simulator - visionOS 26.0 | xrsimulator26.0 | 26.0 |
| DriverKit 24.0 | driverkit24.0 | 16.0 |
| DriverKit 24.1 | driverkit24.1 | 16.1 |
| DriverKit 24.2 | driverkit24.2 | 16.2 |
| DriverKit 24.4 | driverkit24.4 | 16.3 |
| DriverKit 24.5 | driverkit24.5 | 16.4 |
| DriverKit 25.0 | driverkit25.0 | 26.0 |
| SDK | SDK Name | Xcode Version |
| ------------------------ | -------------------- | ------------- |
| macOS 14.5 | macosx14.5 | 15.4 |
| macOS 15.0 | macosx15.0 | 16.0 |
| macOS 15.1 | macosx15.1 | 16.1 |
| macOS 15.2 | macosx15.2 | 16.2 |
| iOS 17.5 | iphoneos17.5 | 15.4 |
| iOS 18.0 | iphoneos18.0 | 16.0 |
| iOS 18.1 | iphoneos18.1 | 16.1 |
| iOS 18.2 | iphoneos18.2 | 16.2 |
| Simulator - iOS 17.5 | iphonesimulator17.5 | 15.4 |
| Simulator - iOS 18.0 | iphonesimulator18.0 | 16.0 |
| Simulator - iOS 18.1 | iphonesimulator18.1 | 16.1 |
| Simulator - iOS 18.2 | iphonesimulator18.2 | 16.2 |
| tvOS 17.5 | appletvos17.5 | 15.4 |
| tvOS 18.0 | appletvos18.0 | 16.0 |
| tvOS 18.1 | appletvos18.1 | 16.1 |
| tvOS 18.2 | appletvos18.2 | 16.2 |
| Simulator - tvOS 17.5 | appletvsimulator17.5 | 15.4 |
| Simulator - tvOS 18.0 | appletvsimulator18.0 | 16.0 |
| Simulator - tvOS 18.1 | appletvsimulator18.1 | 16.1 |
| Simulator - tvOS 18.2 | appletvsimulator18.2 | 16.2 |
| watchOS 10.5 | watchos10.5 | 15.4 |
| watchOS 11.0 | watchos11.0 | 16.0 |
| watchOS 11.1 | watchos11.1 | 16.1 |
| watchOS 11.2 | watchos11.2 | 16.2 |
| Simulator - watchOS 10.5 | watchsimulator10.5 | 15.4 |
| Simulator - watchOS 11.0 | watchsimulator11.0 | 16.0 |
| Simulator - watchOS 11.1 | watchsimulator11.1 | 16.1 |
| Simulator - watchOS 11.2 | watchsimulator11.2 | 16.2 |
| Simulator - visionOS 1.2 | xrsimulator1.2 | 15.4 |
| visionOS 1.2 | xros1.2 | 15.4 |
| visionOS 2.0 | xros2.0 | 16.0 |
| Simulator - visionOS 2.0 | xrsimulator2.0 | 16.0 |
| Simulator - visionOS 2.1 | xrsimulator2.1 | 16.1 |
| visionOS 2.1 | xros2.1 | 16.1 |
| Simulator - visionOS 2.2 | xrsimulator2.2 | 16.2 |
| visionOS 2.2 | xros2.2 | 16.2 |
| DriverKit 23.5 | driverkit23.5 | 15.4 |
| DriverKit 24.0 | driverkit24.0 | 16.0 |
| DriverKit 24.1 | driverkit24.1 | 16.1 |
| DriverKit 24.2 | driverkit24.2 | 16.2 |
#### Installed Simulators
| OS | Simulators |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 18.4 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad (A16)<br>iPad Air 11-inch (M2)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M2)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.5 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad (A16)<br>iPad Air 11-inch (M2)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M2)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.6 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad (A16)<br>iPad Air 11-inch (M2)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M2)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 26.0 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad (A16)<br>iPad Air 11-inch (M2)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M2)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| tvOS 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 26.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 26.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| OS | Simulators |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 17.5 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.0 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.1 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.2 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| tvOS 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 10.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
### Android
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 16.0 |
| Android Emulator | 36.1.9 |
| Android SDK Build-tools | 36.0.0<br>35.0.0 35.0.1 |
| Android SDK Platforms | android-36-ext19 (rev 1)<br>android-36-ext18 (rev 1)<br>android-36 (rev 2)<br>android-35-ext15 (rev 1)<br>android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1) |
| Android SDK Platform-Tools | 36.0.0 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264<br>27.3.13750724 (default)<br>28.2.13676358 |
| Package Name | Version |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 16.0 |
| Android Emulator | 35.3.11 |
| Android SDK Build-tools | 35.0.0 35.0.1 |
| Android SDK Platforms | android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1) |
| Android SDK Platform-Tools | 35.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.0 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264<br>27.2.12479018 (default) |
#### Environment variables
| Name | Value |
| ----------------------- | --------------------------------------------------- |
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/27.3.13750724 |
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/27.3.13750724 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/28.2.13676358 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/27.3.13750724 |
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
### Miscellaneous
#### Environment variables
| Name | Value |
| ----------------- | ----------------------------------------------------------------------------------------- |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v20/20.4.1-55996/ParallelsDesktop-20.4.1-55996.dmg |
##### Notes
```
If you want to use Parallels Desktop you should download a package from URL stored in
PARALLELS_DMG_URL environment variable. A system extension is allowed for this version.
```
+166 -191
View File
@@ -1,270 +1,245 @@
| Announcements |
|-|
| [[macOS] Deprecation of 4 tools on November 3rd.](https://github.com/actions/runner-images/issues/12873) |
| [[macOS] Default Xcode on macOS 15 Sequoia will be set to Xcode 16.4 on August, 25](https://github.com/actions/runner-images/issues/12751) |
| [[macOS] macos-latest YAML-label will use macos-15 in August 2025](https://github.com/actions/runner-images/issues/12520) |
| [[macOS] Ruby version 3.0 will be removed from the images on Feb 10, 2025 and 3.3 will be set as default. ](https://github.com/actions/runner-images/issues/11345) |
| [[macOS] The macOS 12 Actions runner image will begin deprecation on 10/7/24 and will be fully unsupported by 12/3/24 for GitHub and by 01/13/25 for ADO](https://github.com/actions/runner-images/issues/10721) |
| [macOS 15 (Sequoia) is now available as a public beta in GitHub Actions](https://github.com/actions/runner-images/issues/10686) |
***
# macOS 15
- OS Version: macOS 15.5 (24F74)
- Kernel Version: Darwin 24.5.0
- Image Version: 20250825.2246
- OS Version: macOS 15.2 (24C101)
- Kernel Version: Darwin 24.2.0
- Image Version: 20250120.596
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.413, 9.0.102, 9.0.203, 9.0.304
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.405, 9.0.102
- Bash 3.2.57(1)-release
- Clang/LLVM 16.0.0
- Clang/LLVM 15.0.0
- Clang/LLVM (Homebrew) 18.1.8 - available on `$(brew --prefix llvm@18)/bin/clang`
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
- GCC 13 (Homebrew GCC 13.4.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.3.0) - available by `gcc-14` alias
- GCC 15 (Homebrew GCC 15.1.0) - available by `gcc-15` alias
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.4.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.3.0) - available by `gfortran-14` alias
- GNU Fortran 15 (Homebrew GCC 15.1.0) - available by `gfortran-15` alias
- Kotlin 2.2.10-release-430
- Node.js 22.18.0
- Perl 5.40.2
- Python3 3.13.7
- Ruby 3.3.9
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
- Kotlin 2.1.0-release-394
- Node.js 22.13.0
- Perl 5.40.1
- Python3 3.13.1
- Ruby 3.3.7
### Package Management
- Bundler 2.7.1
- Bundler 2.6.3
- Carthage 0.40.0
- CocoaPods 1.16.2
- Homebrew 4.6.6
- NPM 10.9.3
- Pip3 25.2 (python 3.13)
- Homebrew 4.4.16
- NPM 10.9.2
- Pip3 24.3.1 (python 3.13)
- Pipx 1.7.1
- RubyGems 3.7.1
- Vcpkg 2025 (build from commit 6ecbbbdf31)
- RubyGems 3.6.3
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.15
- Apache Maven 3.9.11
- Gradle 9.0.0
- Apache Maven 3.9.9
- Gradle 8.12
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.30.0
- bazel 8.3.1
- bazelisk 1.27.0
- azcopy 10.27.1
- bazel 8.0.1
- bazelisk 1.25.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.7.1
- Git 2.51.0
- Git LFS 3.7.0
- GitHub CLI 2.78.0
- Git 2.48.1
- Git LFS 3.6.1
- GitHub CLI 2.65.0
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.25.0
- gpg (GnuPG) 2.4.8
- jq 1.8.1
- gpg (GnuPG) 2.4.7
- jq 1.7.1
- OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.14.0
- pkgconf 2.5.1
- Unxip 3.2
- yq 4.47.1
- zstd 1.5.7
- Ninja 1.13.1
- Packer 1.11.2
- pkgconf 2.3.0
- Unxip 3.1
- yq 4.45.1
- zstd 1.5.6
### Tools
- AWS CLI 2.28.16
- AWS SAM CLI 1.143.0
- AWS Session Manager CLI 1.2.707.0
- Azure CLI 2.76.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.37.4
- Cmake 3.31.6
- CodeQL Action Bundle 2.22.4
- Fastlane 2.228.0
- SwiftFormat 0.57.2
- Xcbeautify 2.30.1
- Xcode Command Line Tools 16.4.0.0.1.1747106510
- Xcodes 1.6.2
- AWS CLI 2.23.2
- AWS SAM CLI 1.132.0
- AWS Session Manager CLI 1.2.694.0
- Azure CLI 2.68.0
- Azure CLI (azure-devops) 1.0.1
- Bicep CLI 0.32.4
- Cmake 3.31.4
- CodeQL Action Bundle 2.20.1
- Fastlane 2.226.0
- SwiftFormat 0.55.4
- Xcbeautify 2.17.0
- Xcode Command Line Tools 16.2.0.0.1.1733547573
- Xcodes 1.6.0
### Linters
### Browsers
- Safari 18.5 (20621.2.5.11.8)
- SafariDriver 18.5 (20621.2.5.11.8)
- Google Chrome 139.0.7258.139
- Google Chrome for Testing 139.0.7258.138
- ChromeDriver 139.0.7258.138
- Microsoft Edge 139.0.3405.111
- Microsoft Edge WebDriver 139.0.3405.111
- Mozilla Firefox 142.0
- geckodriver 0.36.0
- Selenium server 4.35.0
- Safari 18.2 (20620.1.16.11.8)
- SafariDriver 18.2 (20620.1.16.11.8)
- Google Chrome 132.0.6834.84
- Google Chrome for Testing 132.0.6834.83
- ChromeDriver 132.0.6834.83
- Selenium server 4.27.0
#### Environment variables
| Name | Value |
| --------------- | --------------------------------------- |
| CHROMEWEBDRIVER | /usr/local/share/chromedriver-mac-arm64 |
| EDGEWEBDRIVER | /usr/local/share/edge_driver |
| GECKOWEBDRIVER | /opt/homebrew/opt/geckodriver/bin |
| EDGEWEBDRIVER | |
| GECKOWEBDRIVER | |
### Java
| Version | Environment Variable |
| -------------------- | -------------------- |
| 11.0.28+6 | JAVA_HOME_11_arm64 |
| 17.0.16+8 | JAVA_HOME_17_arm64 |
| 21.0.8+9.0 (default) | JAVA_HOME_21_arm64 |
| Version | Environment Variable |
| --------------------- | -------------------- |
| 11.0.25+9 | JAVA_HOME_11_arm64 |
| 17.0.13+11 | JAVA_HOME_17_arm64 |
| 21.0.5+11.0 (default) | JAVA_HOME_21_arm64 |
### Cached Tools
#### Ruby
- 3.1.7
- 3.2.9
- 3.3.9
- 3.4.5
- 3.1.6
- 3.2.6
- 3.3.7
- 3.4.1
#### Python
- 3.11.9
- 3.12.10
- 3.13.7
- 3.12.8
- 3.13.1
#### Node.js
- 18.20.8
- 20.19.4
- 22.18.0
- 18.20.5
- 20.18.1
- 22.13.0
#### Go
- 1.22.12
- 1.23.12
- 1.24.6
- 1.21.13
- 1.22.10
- 1.23.4
### Rust Tools
- Cargo 1.89.0
- Rust 1.89.0
- Rustdoc 1.89.0
- Rustup 1.28.2
- Cargo 1.84.0
- Rust 1.84.0
- Rustdoc 1.84.0
- Rustup 1.27.1
#### Packages
- Clippy 0.1.89
- Clippy 0.1.84
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.11
- PowerShell 7.4.6
#### PowerShell Modules
- Az: 12.5.0
- Az: 12.4.0
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.0
- PSScriptAnalyzer: 1.23.0
### Xcode
| Version | Build | Path | Symlinks |
| -------------- | -------- | --------------------------------- | -------------------------------------------------------------- |
| 26.0 (beta) | 17A5305f | /Applications/Xcode_26_beta_6.app | /Applications/Xcode_26.0.0.app<br>/Applications/Xcode_26.0.app |
| 16.4 (default) | 16F6 | /Applications/Xcode_16.4.app | /Applications/Xcode_16.4.0.app<br>/Applications/Xcode.app |
| 16.3 | 16E140 | /Applications/Xcode_16.3.app | /Applications/Xcode_16.3.0.app |
| 16.2 | 16C5032a | /Applications/Xcode_16.2.app | /Applications/Xcode_16.2.0.app |
| 16.1 | 16B40 | /Applications/Xcode_16.1.app | /Applications/Xcode_16.1.0.app |
| 16.0 | 16A242d | /Applications/Xcode_16.app | /Applications/Xcode_16.0.0.app<br>/Applications/Xcode_16.0.app |
| Version | Build | Path | Symlinks |
| -------------- | -------- | ---------------------------- | ----------------------------------------------------------------------------------------- |
| 16.2 | 16C5032a | /Applications/Xcode_16.2.app | /Applications/Xcode_16.2.0.app |
| 16.1 | 16B40 | /Applications/Xcode_16.1.app | /Applications/Xcode_16.1.0.app |
| 16.0 (default) | 16A242d | /Applications/Xcode_16.app | /Applications/Xcode_16.0.0.app<br>/Applications/Xcode_16.0.app<br>/Applications/Xcode.app |
| 15.4 | 15F31d | /Applications/Xcode_15.4.app | /Applications/Xcode_15.4.0.app |
#### Installed SDKs
| SDK | SDK Name | Xcode Version |
| ------------------------- | -------------------- | ------------- |
| macOS 15.0 | macosx15.0 | 16.0 |
| macOS 15.1 | macosx15.1 | 16.1 |
| macOS 15.2 | macosx15.2 | 16.2 |
| macOS 15.4 | macosx15.4 | 16.3 |
| macOS 15.5 | macosx15.5 | 16.4 |
| macOS 26.0 | macosx26.0 | 26.0 |
| iOS 18.0 | iphoneos18.0 | 16.0 |
| iOS 18.1 | iphoneos18.1 | 16.1 |
| iOS 18.2 | iphoneos18.2 | 16.2 |
| iOS 18.4 | iphoneos18.4 | 16.3 |
| iOS 18.5 | iphoneos18.5 | 16.4 |
| iOS 26.0 | iphoneos26.0 | 26.0 |
| Simulator - iOS 18.0 | iphonesimulator18.0 | 16.0 |
| Simulator - iOS 18.1 | iphonesimulator18.1 | 16.1 |
| Simulator - iOS 18.2 | iphonesimulator18.2 | 16.2 |
| Simulator - iOS 18.4 | iphonesimulator18.4 | 16.3 |
| Simulator - iOS 18.5 | iphonesimulator18.5 | 16.4 |
| Simulator - iOS 26.0 | iphonesimulator26.0 | 26.0 |
| tvOS 18.0 | appletvos18.0 | 16.0 |
| tvOS 18.1 | appletvos18.1 | 16.1 |
| tvOS 18.2 | appletvos18.2 | 16.2 |
| tvOS 18.4 | appletvos18.4 | 16.3 |
| tvOS 18.5 | appletvos18.5 | 16.4 |
| tvOS 26.0 | appletvos26.0 | 26.0 |
| Simulator - tvOS 18.0 | appletvsimulator18.0 | 16.0 |
| Simulator - tvOS 18.1 | appletvsimulator18.1 | 16.1 |
| Simulator - tvOS 18.2 | appletvsimulator18.2 | 16.2 |
| Simulator - tvOS 18.4 | appletvsimulator18.4 | 16.3 |
| Simulator - tvOS 18.5 | appletvsimulator18.5 | 16.4 |
| Simulator - tvOS 26.0 | appletvsimulator26.0 | 26.0 |
| watchOS 11.0 | watchos11.0 | 16.0 |
| watchOS 11.1 | watchos11.1 | 16.1 |
| watchOS 11.2 | watchos11.2 | 16.2 |
| watchOS 11.4 | watchos11.4 | 16.3 |
| watchOS 11.5 | watchos11.5 | 16.4 |
| watchOS 26.0 | watchos26.0 | 26.0 |
| Simulator - watchOS 11.0 | watchsimulator11.0 | 16.0 |
| Simulator - watchOS 11.1 | watchsimulator11.1 | 16.1 |
| Simulator - watchOS 11.2 | watchsimulator11.2 | 16.2 |
| Simulator - watchOS 11.4 | watchsimulator11.4 | 16.3 |
| Simulator - watchOS 11.5 | watchsimulator11.5 | 16.4 |
| Simulator - watchOS 26.0 | watchsimulator26.0 | 26.0 |
| visionOS 2.0 | xros2.0 | 16.0 |
| visionOS 2.1 | xros2.1 | 16.1 |
| visionOS 2.2 | xros2.2 | 16.2 |
| visionOS 2.4 | xros2.4 | 16.3 |
| visionOS 2.5 | xros2.5 | 16.4 |
| visionOS 26.0 | xros26.0 | 26.0 |
| Simulator - visionOS 2.0 | xrsimulator2.0 | 16.0 |
| Simulator - visionOS 2.1 | xrsimulator2.1 | 16.1 |
| Simulator - visionOS 2.2 | xrsimulator2.2 | 16.2 |
| Simulator - visionOS 2.4 | xrsimulator2.4 | 16.3 |
| Simulator - visionOS 2.5 | xrsimulator2.5 | 16.4 |
| Simulator - visionOS 26.0 | xrsimulator26.0 | 26.0 |
| DriverKit 24.0 | driverkit24.0 | 16.0 |
| DriverKit 24.1 | driverkit24.1 | 16.1 |
| DriverKit 24.2 | driverkit24.2 | 16.2 |
| DriverKit 24.4 | driverkit24.4 | 16.3 |
| DriverKit 24.5 | driverkit24.5 | 16.4 |
| DriverKit 25.0 | driverkit25.0 | 26.0 |
| SDK | SDK Name | Xcode Version |
| ------------------------ | -------------------- | ------------- |
| macOS 14.5 | macosx14.5 | 15.4 |
| macOS 15.0 | macosx15.0 | 16.0 |
| macOS 15.1 | macosx15.1 | 16.1 |
| macOS 15.2 | macosx15.2 | 16.2 |
| iOS 17.5 | iphoneos17.5 | 15.4 |
| iOS 18.0 | iphoneos18.0 | 16.0 |
| iOS 18.1 | iphoneos18.1 | 16.1 |
| iOS 18.2 | iphoneos18.2 | 16.2 |
| Simulator - iOS 17.5 | iphonesimulator17.5 | 15.4 |
| Simulator - iOS 18.0 | iphonesimulator18.0 | 16.0 |
| Simulator - iOS 18.1 | iphonesimulator18.1 | 16.1 |
| Simulator - iOS 18.2 | iphonesimulator18.2 | 16.2 |
| tvOS 17.5 | appletvos17.5 | 15.4 |
| tvOS 18.0 | appletvos18.0 | 16.0 |
| tvOS 18.1 | appletvos18.1 | 16.1 |
| tvOS 18.2 | appletvos18.2 | 16.2 |
| Simulator - tvOS 17.5 | appletvsimulator17.5 | 15.4 |
| Simulator - tvOS 18.0 | appletvsimulator18.0 | 16.0 |
| Simulator - tvOS 18.1 | appletvsimulator18.1 | 16.1 |
| Simulator - tvOS 18.2 | appletvsimulator18.2 | 16.2 |
| watchOS 10.5 | watchos10.5 | 15.4 |
| watchOS 11.0 | watchos11.0 | 16.0 |
| watchOS 11.1 | watchos11.1 | 16.1 |
| watchOS 11.2 | watchos11.2 | 16.2 |
| Simulator - watchOS 10.5 | watchsimulator10.5 | 15.4 |
| Simulator - watchOS 11.0 | watchsimulator11.0 | 16.0 |
| Simulator - watchOS 11.1 | watchsimulator11.1 | 16.1 |
| Simulator - watchOS 11.2 | watchsimulator11.2 | 16.2 |
| Simulator - visionOS 1.2 | xrsimulator1.2 | 15.4 |
| visionOS 1.2 | xros1.2 | 15.4 |
| visionOS 2.0 | xros2.0 | 16.0 |
| Simulator - visionOS 2.0 | xrsimulator2.0 | 16.0 |
| visionOS 2.1 | xros2.1 | 16.1 |
| Simulator - visionOS 2.1 | xrsimulator2.1 | 16.1 |
| Simulator - visionOS 2.2 | xrsimulator2.2 | 16.2 |
| visionOS 2.2 | xros2.2 | 16.2 |
| Simulator - visionOS 2.2 | xrsimulator2.2 | 16.2 |
| DriverKit 23.5 | driverkit23.5 | 15.4 |
| DriverKit 24.0 | driverkit24.0 | 16.0 |
| DriverKit 24.1 | driverkit24.1 | 16.1 |
| DriverKit 24.2 | driverkit24.2 | 16.2 |
#### Installed Simulators
| OS | Simulators |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 18.4 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad (A16)<br>iPad Air 11-inch (M2)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M2)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.5 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad (A16)<br>iPad Air 11-inch (M2)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M2)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.6 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad (A16)<br>iPad Air 11-inch (M2)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M2)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| tvOS 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| visionOS 2.3 | Apple Vision Pro |
| visionOS 2.4 | Apple Vision Pro |
| visionOS 2.5 | Apple Vision Pro |
| OS | Simulators |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 17.5 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.0 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.1 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| iOS 18.2 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
| tvOS 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 10.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
| visionOS 1.2 | Apple Vision Pro |
| visionOS 2.0 | Apple Vision Pro |
| visionOS 2.1 | Apple Vision Pro |
| visionOS 2.2 | Apple Vision Pro |
### Android
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 16.0 |
| Android Emulator | 36.1.9 |
| Android SDK Build-tools | 36.0.0<br>35.0.0 35.0.1 |
| Android SDK Platforms | android-36-ext19 (rev 1)<br>android-36-ext18 (rev 1)<br>android-36 (rev 2)<br>android-35-ext15 (rev 1)<br>android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1) |
| Android SDK Platform-Tools | 36.0.0 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264<br>27.3.13750724 (default)<br>28.2.13676358 |
| Package Name | Version |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 16.0 |
| Android Emulator | 35.3.11 |
| Android SDK Build-tools | 35.0.0 35.0.1 |
| Android SDK Platforms | android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1) |
| Android SDK Platform-Tools | 35.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.0 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264<br>27.2.12479018 (default) |
#### Environment variables
| Name | Value |
| ----------------------- | --------------------------------------------------- |
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/27.3.13750724 |
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/27.3.13750724 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/28.2.13676358 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/27.3.13750724 |
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
+1 -1
View File
@@ -33,7 +33,7 @@ Write-Host "Configuring Xcode versions..."
$xcodeVersions | ForEach-Object {
Write-Host "Configuring Xcode $($_.link) ..."
Invoke-XcodeRunFirstLaunch -Version $_.link
Install-AdditionalSimulatorRuntimes -Version $_.link -Arch $arch -Runtimes $_.install_runtimes
Install-AdditionalSimulatorRuntimes -Version $_.link -Runtimes $_.install_runtimes
}
Invoke-XcodeRunFirstLaunch -Version $defaultXcode
@@ -18,7 +18,7 @@ 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"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
@@ -90,12 +90,6 @@ if [[ ! "$(automationmodetool)" =~ "DOES NOT REQUIRE" ]]; then
exit 1
fi
# Fix sudoers file permissions
sudo chmod 440 /etc/sudoers.d/*
# Add NOPASSWD for the current user to sudoers
sudo sed -i '' 's/%admin ALL = (ALL) ALL/%admin ALL = (ALL) NOPASSWD: ALL/g' /etc/sudoers
# Create symlink for tests running
if [[ ! -d "/usr/local/bin" ]];then
sudo mkdir -p -m 775 /usr/local/bin
@@ -103,7 +97,3 @@ if [[ ! -d "/usr/local/bin" ]];then
fi
chmod +x $HOME/utils/invoke-tests.sh
sudo ln -s $HOME/utils/invoke-tests.sh /usr/local/bin/invoke_tests
# Fix share dir permissions
sudo chown "$USER":admin /usr/local/share
sudo chmod 775 /usr/local/share
+11 -69
View File
@@ -6,100 +6,42 @@
source ~/utils/utils.sh
echo "Set solid color wallpaper"
osascript -e 'tell application "Finder" to set desktop picture to POSIX file "/System/Library/Desktop Pictures/Solid Colors/Black.png"'
echo "Close all finder windows because they can interfere with UI tests"
# Close all finder windows because they can interfere with UI tests
close_finder_window
echo "Disable Handoff and Continuity"
defaults write com.apple.coreservices.useractivityd ActivityReceivingEnabled -bool false
defaults write com.apple.coreservices.useractivityd ActivityAdvertisingAllowed -bool false
echo "Disable graphic effects in System"
defaults write com.apple.universalaccess reduceMotion -bool true
defaults write com.apple.universalaccess reduceTransparency -bool true
echo "Disable analytics daemon (requires SIP to be disabled)"
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.SubmitDiagInfo.plist
echo "Disable notification center agent"
launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist
echo "Disable Time Machine and it's daemon"
sudo tmutil disable
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.backupd.plist
echo "Disable Apple Push Notification Service daemon"
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.apsd.plist
# Remove Parallels Desktop
# https://github.com/actions/runner-images/issues/6105
# https://github.com/actions/runner-images/issues/10143
if is_SonomaX64 || is_VenturaX64 || is_SequoiaX64; then
if is_SonomaX64 || is_VenturaX64; then
brew uninstall parallels
fi
echo "Put documentation to $HOME root"
# Put documentation to $HOME root
cp $HOME/image-generation/output/software-report/systeminfo.* $HOME/
echo "Remove fastlane cached cookie"
# Remove fastlane cached cookie
rm -rf ~/.fastlane
# Clean up npm cache which collected during image-generation
# we have to do that here because `npm install` is run in a few different places during image-generation
echo "Clean up npm cache"
npm cache clean --force
# Clean yarn cache
yarn cache clean
echo "Clean up temporary directories"
# Clean up temporary directories
sudo rm -rf ~/utils /tmp/*
# Erase all indexes and wait until the rebuilding process ends,
# for now there is no clear way to get status of indexing process on macOS, it takes around 3-6 minutes to accomplish
echo "Erase all MDS indexes and wait until the rebuilding process ends"
sudo mdutil -E / > /dev/null
# for now there is no way to get status of indexing process, it takes around 3 minutes to accomplish
sudo mdutil -E /
sudo log stream | grep -q -E 'mds.*Released.*BackgroundTask' || true
echo "Indexing completed"
echo "Wait for 6 minutes or until the indexing process end signal is found in logs"
for _ in {1..12}; do
sleep 30
result=$(sudo log show --last 1m | grep -E 'mds.*Released.*BackgroundTask' || true)
if [[ -n "$result" ]]; then
echo "Sign of indexing completion found:"
echo "$result"
break
fi
done
echo "Check if the indexing process or other CPU intensive process (5% and more) is still running"
cool=0
while true; do
usage=$(top -l 2 | grep "CPU usage" | awk '{print int($3)}' | tr -d '%' | tail -n 1)
echo "Current CPU usage: ${usage}%"
if [ $usage -lt 5 ]; then
cool=$((cool + 1))
else
ps -arcwwwxo ppid,pid,%cpu,%mem,time,command | head -n 2 || true
cool=0
fi
echo "Feeling cool for $cool intervals"
if [ $cool -gt 5 ]; then
echo "Cooled down, exiting..."
break
fi
sleep 1
done
echo "Delete symlink for tests running"
# delete symlink for tests running
sudo rm -f /usr/local/bin/invoke_tests
echo "Clean Homebrew downloads"
# Clean Homebrew downloads
sudo rm -rf /Users/$USER/Library/Caches/Homebrew/downloads/*
# Uninstall expect used in configure-machine.sh
@@ -8,40 +8,26 @@ source ~/utils/utils.sh
# /Library/Application\ Support/com.apple.TCC/TCC.db
systemValuesArray=(
# Allow Full Disk Access for "Microsoft Defender for macOS" to bypass installation on-flight
"'kTCCServiceAccessibility','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
"'kTCCServiceAccessibility','/opt/hca/hosted-compute-agent',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,NULL,1592919552"
"'kTCCServiceAccessibility','/opt/hca/start_hca.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1566321319"
"'kTCCServiceAccessibility','/usr/bin/osascript',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1566321319"
"'kTCCServiceAccessibility','/usr/libexec/sshd-keygen-wrapper',1,2,4,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'UNUSED',NULL,0,1644564233"
"'kTCCServiceAccessibility','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,NULL,1592919552"
"'kTCCServiceAccessibility','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1566321319"
"'kTCCServiceAccessibility','com.apple.Terminal',0,2,0,1,X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,NULL,'UNUSED',NULL,0,1591180502"
"'kTCCServiceAccessibility','com.apple.dt.Xcode-Helper',0,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1551941368"
"'kTCCServiceAppleEvents','/bin/bash',1,2,0,1,NULL,NULL,0,'com.apple.systemevents',NULL,NULL,1591532620"
"'kTCCServiceAppleEvents','/opt/hca/hosted-compute-agent',1,2,3,1,NULL,NULL,0,'com.apple.finder',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e66696e64657200000003',NULL,1592919552"
"'kTCCServiceAppleEvents','/usr/local/opt/runner/provisioner/provisioner',1,2,3,1,NULL,NULL,0,'com.apple.finder',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e66696e64657200000003',NULL,1592919552"
"'kTCCServiceAppleEvents','com.apple.Terminal',0,2,0,1,X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,NULL,'UNUSED',NULL,0,1591180502"
"'kTCCServiceAppleEvents','/usr/bin/osascript',1,2,0,1,NULL,NULL,0,'com.apple.systemevents',NULL,NULL,1591532620"
"'kTCCServiceAppleEvents','/usr/bin/osascript',1,2,0,1,NULL,NULL,0,'com.apple.Safari',NULL,NULL,1755087312"
"'kTCCServiceAppleEvents','/bin/bash',1,2,0,1,NULL,NULL,0,'com.apple.Safari',NULL,NULL,1755087312"
"'kTCCServiceAppleEvents','/opt/hca/hosted-compute-agent',1,2,0,1,NULL,NULL,0,'com.apple.Safari',NULL,NULL,1755087312"
"'kTCCServiceMicrophone','/opt/hca/hosted-compute-agent',1,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1736467200"
"'kTCCServiceMicrophone','/opt/hca/start_hca.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576661342"
"'kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1736467200"
"'kTCCServiceMicrophone','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576661342"
"'kTCCServicePostEvent','/Library/Application Support/Veertu/Anka/addons/ankarund',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1644565949"
"'kTCCServicePostEvent','/opt/hca/start_hca.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1566321326"
"'kTCCServicePostEvent','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1566321326"
"'kTCCServiceScreenCapture','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1599831148"
"'kTCCServiceScreenCapture','/opt/hca/hosted-compute-agent',1,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"
"'kTCCServiceScreenCapture','com.devexpress.testcafe-browser-tools',0,2,3,1,X'fade0c0000000068000000010000000700000007000000080000001443fa4ca5141baeda21aeca1f50894673b440d4690000000800000014f8afcf6e69791b283e55bd0b03e39e422745770e0000000800000014bf4fc1aed64c871a49fc6bc9dd3878ce5d4d17c6',NULL,0,'UNUSED',NULL,0,1687952810"
"'kTCCServiceSystemPolicyAllFiles','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
"'kTCCServiceSystemPolicyAllFiles','/opt/hca/start_hca.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
"'kTCCServiceSystemPolicyAllFiles','/usr/libexec/sshd-keygen-wrapper',1,0,4,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'UNUSED',NULL,0,1639660695"
"'kTCCServiceSystemPolicyAllFiles','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
"'kTCCServiceAccessibility','com.apple.dt.Xcode-Helper',0,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1551941368"
"'kTCCServiceSystemPolicyAllFiles','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
"'kTCCServiceSystemPolicyAllFiles','/usr/libexec/sshd-keygen-wrapper',1,0,4,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'UNUSED',NULL,0,1639660695"
"'kTCCServiceSystemPolicyAllFiles','com.apple.Terminal',0,2,4,1,X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,0,'UNUSED',NULL,0,1678990068"
"'kTCCServiceAccessibility','/usr/libexec/sshd-keygen-wrapper',1,2,4,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'UNUSED',NULL,0,1644564233"
"'kTCCServiceAccessibility','com.apple.Terminal',0,2,0,1,X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,NULL,'UNUSED',NULL,0,1591180502"
"'kTCCServiceAccessibility','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
"'kTCCServiceMicrophone','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576661342"
"'kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1736467200"
"'kTCCServiceScreenCapture','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1599831148"
"'kTCCServiceScreenCapture','com.devexpress.testcafe-browser-tools',0,2,3,1,X'fade0c0000000068000000010000000700000007000000080000001443fa4ca5141baeda21aeca1f50894673b440d4690000000800000014f8afcf6e69791b283e55bd0b03e39e422745770e0000000800000014bf4fc1aed64c871a49fc6bc9dd3878ce5d4d17c6',NULL,0,'UNUSED',NULL,0,1687952810"
"'kTCCServicePostEvent','/Library/Application Support/Veertu/Anka/addons/ankarund',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1644565949"
"'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"
"'kTCCServiceAppleEvents','/bin/bash',1,2,0,1,NULL,NULL,0,'com.apple.systemevents',NULL,NULL,1591532620"
"'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
"'kTCCServiceSystemPolicyAllFiles','com.microsoft.wdav',0,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,0,1643970979"
"'kTCCServiceSystemPolicyAllFiles','com.microsoft.wdav.epsext',0,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,0,1643970979"
"'kTCCServiceSystemPolicyNetworkVolumes','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
@@ -58,44 +44,29 @@ done
# $HOME/Library/Application\ Support/com.apple.TCC/TCC.db
userValuesArray=(
"'kTCCServiceAccessibility','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
"'kTCCServiceAccessibility','/usr/bin/osascript',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1566321319"
"'kTCCServiceAccessibility','com.apple.Terminal',0,2,0,1,X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,NULL,'UNUSED',NULL,0,1591180502"
"'kTCCServiceAppleEvents','/Library/Application Support/Veertu/Anka/addons/ankarund',1,2,3,1,NULL,NULL,0,'com.apple.Terminal',X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,1655808179"
"'kTCCServiceUbiquity','com.apple.mail',0,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1551941469"
"'kTCCServiceUbiquity','com.apple.TextEdit',0,2,0,1,X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465787445646974000000000003',NULL,NULL,'UNUSED',NULL,0,1566368356"
"'kTCCServiceUbiquity','com.apple.CloudDocs.MobileDocumentsFileProvider',0,2,0,1,X'fade0c000000004c0000000100000006000000020000002f636f6d2e6170706c652e436c6f7564446f63732e4d6f62696c65446f63756d656e747346696c6550726f76696465720000000003',NULL,NULL,'UNUSED',NULL,0,1570793290"
"'kTCCServiceAppleEvents','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,0,'com.apple.systemevents',NULL,NULL,1574241374"
"'kTCCServiceSystemPolicyAllFiles','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
"'kTCCServiceAppleEvents','/usr/libexec/sshd-keygen-wrapper',1,2,3,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'com.apple.systemevents',X'fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003',NULL,1644564201"
"'kTCCServiceAppleEvents','com.apple.Terminal',0,2,0,1,X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,0,'com.apple.systemevents',X'fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003',NULL,1591180478"
"'kTCCServiceAppleEvents','/usr/libexec/sshd-keygen-wrapper',1,2,0,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'com.apple.finder',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e66696e64657200000003',NULL,1591357685"
"'kTCCServiceAppleEvents','/bin/bash',1,2,0,1,NULL,NULL,0,'com.apple.systemevents',NULL,NULL,1591532620"
"'kTCCServiceAppleEvents','/bin/bash',1,2,0,1,NULL,NULL,0,'com.apple.finder',NULL,NULL,1592919552"
"'kTCCServiceMicrophone','com.apple.CoreSimulator.SimulatorTrampoline',0,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576347152"
"'kTCCServiceMicrophone','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576661342"
"'kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1736467200"
"'kTCCServiceUbiquity','/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/Versions/A/Support/photolibraryd',1,2,5,1,NULL,NULL,NULL,'UNUSED',NULL,0,1619461750"
"'kTCCServiceUbiquity','com.apple.PassKitCore',0,2,5,1,NULL,NULL,NULL,'UNUSED',NULL,0,1619516250"
"'kTCCServiceAppleEvents','/Library/Application Support/Veertu/Anka/addons/ankarund',1,2,3,1,NULL,NULL,0,'com.apple.finder',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e66696e64657200000003',NULL,1629294900"
"'kTCCServiceAppleEvents','/Library/Application Support/Veertu/Anka/addons/ankarund',1,2,3,1,NULL,NULL,0,'com.apple.systemevents',X'fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003',NULL,164456761"
"'kTCCServiceAppleEvents','/bin/bash',1,2,0,1,NULL,NULL,0,'com.apple.finder',NULL,NULL,1592919552"
"'kTCCServiceAppleEvents','/bin/bash',1,2,0,1,NULL,NULL,0,'com.apple.systemevents',NULL,NULL,1591532620"
"'kTCCServiceAppleEvents','/usr/bin/osascript',1,2,0,1,NULL,NULL,0,'com.apple.finder',NULL,NULL,1592919552"
"'kTCCServiceAppleEvents','/usr/bin/osascript',1,2,0,1,NULL,NULL,0,'com.apple.systemevents',NULL,NULL,1591532620"
"'kTCCServiceAppleEvents','/opt/hca/hosted-compute-agent',1,2,3,1,NULL,NULL,0,'com.apple.finder',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e66696e64657200000003',NULL,1592919552"
"'kTCCServiceAppleEvents','/opt/hca/hosted-compute-agent',1,2,3,1,NULL,NULL,0,'com.apple.systemevents',X'fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003',NULL,1592919552"
"'kTCCServiceAppleEvents','/opt/hca/start_hca.sh',1,2,0,1,NULL,NULL,0,'com.apple.systemevents',NULL,NULL,1574241374"
"'kTCCServiceAppleEvents','/usr/libexec/sshd-keygen-wrapper',1,2,0,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'com.apple.finder',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e66696e64657200000003',NULL,1591357685"
"'kTCCServiceAppleEvents','/usr/libexec/sshd-keygen-wrapper',1,2,3,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'com.apple.systemevents',X'fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003',NULL,1644564201"
"'kTCCServiceAppleEvents','/Library/Application Support/Veertu/Anka/addons/ankarund',1,2,3,1,NULL,NULL,0,'com.apple.Terminal',X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,1655808179"
"'kTCCServiceAppleEvents','/usr/libexec/sshd-keygen-wrapper',1,2,3,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'com.apple.Terminal',X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,1650386089"
"'kTCCServiceAppleEvents','/usr/local/opt/runner/provisioner/provisioner',1,2,3,1,NULL,NULL,0,'com.apple.finder',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e66696e64657200000003',NULL,1592919552"
"'kTCCServiceAppleEvents','/usr/local/opt/runner/provisioner/provisioner',1,2,3,1,NULL,NULL,0,'com.apple.systemevents',X'fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003',NULL,1592919552"
"'kTCCServiceAppleEvents','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,0,'com.apple.systemevents',NULL,NULL,1574241374"
"'kTCCServiceAppleEvents','com.apple.Terminal',0,2,0,1,X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,0,'com.apple.systemevents',X'fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003',NULL,1591180478"
"'kTCCServiceMicrophone','/opt/hca/hosted-compute-agent',1,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1736467200"
"'kTCCServiceMicrophone','/opt/hca/start_hca.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576661342"
"'kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1736467200"
"'kTCCServiceMicrophone','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576661342"
"'kTCCServiceMicrophone','com.apple.CoreSimulator.SimulatorTrampoline',0,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576347152"
"'kTCCServicePostEvent','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
"'kTCCServiceScreenCapture','/opt/hca/hosted-compute-agent',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"
"'kTCCServiceScreenCapture','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
"'kTCCServiceScreenCapture','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
"'kTCCServiceScreenCapture','/usr/bin/osascript',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1566321319"
"'kTCCServiceScreenCapture','com.apple.Terminal',0,2,4,1,X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,0,'UNUSED',NULL,0,1678990068"
"'kTCCServiceSystemPolicyAllFiles','/opt/hca/start_hca.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
"'kTCCServiceSystemPolicyAllFiles','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
"'kTCCServiceUbiquity','/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/Versions/A/Support/photolibraryd',1,2,5,1,NULL,NULL,NULL,'UNUSED',NULL,0,1619461750"
"'kTCCServiceUbiquity','com.apple.CloudDocs.MobileDocumentsFileProvider',0,2,0,1,X'fade0c000000004c0000000100000006000000020000002f636f6d2e6170706c652e436c6f7564446f63732e4d6f62696c65446f63756d656e747346696c6550726f76696465720000000003',NULL,NULL,'UNUSED',NULL,0,1570793290"
"'kTCCServiceUbiquity','com.apple.PassKitCore',0,2,5,1,NULL,NULL,NULL,'UNUSED',NULL,0,1619516250"
"'kTCCServiceUbiquity','com.apple.TextEdit',0,2,0,1,X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465787445646974000000000003',NULL,NULL,'UNUSED',NULL,0,1566368356"
"'kTCCServiceUbiquity','com.apple.mail',0,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1551941469"
"'kTCCServiceAppleEvents','/usr/local/opt/runner/provisioner/provisioner',1,2,3,1,NULL,NULL,0,'com.apple.systemevents',X'fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003',NULL,1592919552"
)
for values in "${userValuesArray[@]}"; do
if is_Sonoma || is_Sequoia; then
@@ -6,43 +6,27 @@
source ~/utils/utils.sh
# Retrieve the latest major version of the CodeQL Action to use in the base URL for downloading the bundle.
[ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}")
releases=$(curl "${authString[@]}" -s "https://api.github.com/repos/github/codeql-action/releases")
# Get the release tags starting with v[0-9] and sort them in descending order, then parse the first one to get the major version.
codeql_action_latest_major_version=$(echo "$releases" |
jq -r '.[].tag_name' |
grep -E '^v[0-9]' |
sort -nr |
head -n 1 |
sed -E 's/^v([0-9]+).*/\1/')
if [ -z "$codeql_action_latest_major_version" ]; then
echo "Error: Unable to find the latest major version of the CodeQL Action."
exit 1
fi
# Retrieve the CLI version of the latest CodeQL bundle.
defaults_json_path=$(download_with_retry "https://raw.githubusercontent.com/github/codeql-action/v$codeql_action_latest_major_version/src/defaults.json")
bundle_version=$(jq -r '.cliVersion' "$defaults_json_path")
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_tag_name="codeql-bundle-v$bundle_version"
echo "Downloading CodeQL bundle $bundle_version..."
# Note that this is the all-platforms CodeQL bundle, to support scenarios where customers run
# different operating systems within containers.
archive_path=$(download_with_retry "https://github.com/github/codeql-action/releases/download/$bundle_tag_name/codeql-bundle-osx64.tar.gz")
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"
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"
@@ -9,48 +9,19 @@ source ~/utils/utils.sh
common_packages=$(get_toolset_value '.brew.common_packages[]')
for package in $common_packages; do
echo "Installing $package..."
case "$package" in
packer)
# Packer has been deprecated in Homebrew. Use tap to install Packer.
brew install hashicorp/tap/packer
;;
cmake)
# Pin cmake to 3.31.6 due to a backward compatibility issue
# https://github.com/actions/runner-images/issues/11926
cmake_commit="b4e46db74e74a8c1650b38b1da222284ce1ec5ce"
tap_name="local/pinned"
echo "Creating local tap (no git)..."
brew tap-new --no-git "$tap_name" >/dev/null
cmake_formula_dir="$(brew --repo "$tap_name")/Formula"
mkdir -p "$cmake_formula_dir"
cmake_rb_link="https://raw.githubusercontent.com/Homebrew/homebrew-core/$cmake_commit/Formula/c/cmake.rb"
cmake_rb_path="$cmake_formula_dir/cmake.rb"
echo "Downloading cmake.rb from $cmake_rb_link"
curl -fsSL "$cmake_rb_link" -o "$cmake_rb_path"
echo "Installing cmake 3.31.6 from custom tap..."
brew install "$tap_name/cmake"
;;
tcl-tk@8)
if [[ $package == "packer" ]]; then
# Packer has been deprecated in Homebrew. Use tap to install Packer.
brew install hashicorp/tap/packer
else
if (is_VenturaX64 || is_SonomaX64) && [[ $package == "tcl-tk@8" ]]; then
brew_smart_install "$package"
if is_VenturaX64 || is_SonomaX64; then
# Fix for https://github.com/actions/runner-images/issues/11074
ln -sf "$(brew --prefix tcl-tk@8)/lib/libtcl8.6.dylib" /usr/local/lib/libtcl8.6.dylib
ln -sf "$(brew --prefix tcl-tk@8)/lib/libtk8.6.dylib" /usr/local/lib/libtk8.6.dylib
fi
;;
# Default behaviour for all other packages
*)
# Fix for https://github.com/actions/runner-images/issues/11074
ln -sf $(brew --prefix tcl-tk@8)/lib/libtcl8.6.dylib /usr/local/lib/libtcl8.6.dylib
ln -sf $(brew --prefix tcl-tk@8)/lib/libtk8.6.dylib /usr/local/lib/libtk8.6.dylib
else
brew_smart_install "$package"
;;
esac
fi
fi
done
cask_packages=$(get_toolset_value '.brew.cask_packages[]')
@@ -64,13 +35,13 @@ for package in $cask_packages; do
done
# Load "Parallels International GmbH"
if is_SonomaX64 || is_VenturaX64 || is_SequoiaX64; then
if is_SonomaX64 || is_VenturaX64; then
sudo kextload /Applications/Parallels\ Desktop.app/Contents/Library/Extensions/10.9/prl_hypervisor.kext || true
fi
# Execute AppleScript to change security preferences for macOS12, macOS13, macOS14 and macOS15
# Execute AppleScript to change security preferences for macOS12, macOS13 and macOS14
# System Preferences -> Security & Privacy -> General -> Unlock -> Allow -> Not now
if is_SonomaX64 || is_VenturaX64 || is_SequoiaX64; then
if is_SonomaX64 || is_VenturaX64; then
for retry in {4..0}; do
echo "Executing AppleScript to change security preferences. Retries left: $retry"
{
@@ -83,9 +54,6 @@ if is_SonomaX64 || is_VenturaX64 || is_SequoiaX64; then
if is_SonomaX64; then
osascript $HOME/utils/confirm-identified-developers-macos14.scpt $USER_PASSWORD
fi
if is_SequoiaX64; then
osascript $HOME/utils/confirm-identified-developers-macos15.scpt $USER_PASSWORD
fi
} && break
if [[ $retry -eq 0 ]]; then
@@ -99,7 +67,7 @@ if is_SonomaX64 || is_VenturaX64 || is_SequoiaX64; then
fi
# Validate "Parallels International GmbH" kext
if is_SonomaX64 || is_VenturaX64 || is_SequoiaX64; then
if is_SonomaX64 || is_VenturaX64; then
echo "Closing System Settings window if it is still opened"
killall "System Settings" || true
+3 -8
View File
@@ -17,14 +17,9 @@ echo "Version of Microsoft Edge: ${edge_version}"
echo "Installing Microsoft Edge WebDriver..."
edge_driver_version_file_path=$(download_with_retry "https://msedgedriver.microsoft.com/LATEST_RELEASE_${edge_version_major}_MACOS")
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')
if is_Arm64; then
edge_driver_url="https://msedgedriver.microsoft.com/${edge_driver_latest_version}/edgedriver_mac64_m1.zip"
else
edge_driver_url="https://msedgedriver.microsoft.com/${edge_driver_latest_version}/edgedriver_mac64.zip"
fi
edge_driver_url="https://msedgedriver.azureedge.net/${edge_driver_latest_version}/edgedriver_mac64.zip"
echo "Compatible version of WebDriver: ${edge_driver_latest_version}"
@@ -47,7 +42,7 @@ sudo mkdir "/Library/Managed Preferences"
cat <<EOF | sudo tee "/Library/Managed Preferences/com.microsoft.EdgeUpdater.plist" > /dev/null
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>updatePolicies</key>
@@ -38,3 +38,6 @@ brew_smart_install curl
echo "Installing wget..."
brew_smart_install "wget"
# init brew bundle feature
brew tap Homebrew/bundle
+36
View File
@@ -0,0 +1,36 @@
#!/bin/bash -e -o pipefail
################################################################################
## File: install-nvm.sh
## Desc: Install node version manager
################################################################################
source ~/utils/utils.sh
[[ -n $API_PAT ]] && authString=(-H "Authorization: token ${API_PAT}")
nvm_version=$(get_toolset_value '.node.nvm_installer')
if [[ -z $nvm_version || "$nvm_version" == "latest" ]]; then
nvm_version=$(curl "${authString[@]}" -fsSL https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r '.tag_name')
fi
if [[ $nvm_version != "v*" ]]; then
nvm_version="v${nvm_version}"
fi
nvm_installer_path=$(download_with_retry "https://raw.githubusercontent.com/nvm-sh/nvm/$nvm_version/install.sh")
if bash $nvm_installer_path; then
source ~/.bashrc
nvm --version
for version in $(get_toolset_value '.node.nvm_versions[]'); do
nvm install "v${version}"
done
# set system node as default
nvm alias default system
echo "Node version manager has been installed successfully"
else
echo "Node version manager installation failed"
fi
invoke_tests "Node" "nvm"
@@ -1,21 +0,0 @@
#!/bin/bash -e -o pipefail
################################################################################
## File: install-runner-package.sh
## Desc: Download and Install runner package
################################################################################
# Source the helpers for use with the script
source ~/utils/utils.sh
AGENT_PATH="/opt/runner-cache"
arch=$(get_arch)
download_url=$(resolve_github_release_asset_url "actions/runner" 'test("actions-runner-osx-'"$arch"'-[0-9]+\\.[0-9]{3}\\.[0-9]+\\.tar\\.gz$")' "latest" "$API_PAT")
archive_name="${download_url##*/}"
archive_path=$(download_with_retry "$download_url")
if [[ ! -d $AGENT_PATH ]]; then
sudo mkdir -p -m 775 $AGENT_PATH
sudo chown $USER:admin $AGENT_PATH
fi
sudo mv "$archive_path" "$AGENT_PATH/$archive_name"
+10 -3
View File
@@ -10,11 +10,18 @@ source ~/utils/utils.sh
VCPKG_INSTALLATION_ROOT=/usr/local/share/vcpkg
echo "export VCPKG_INSTALLATION_ROOT=${VCPKG_INSTALLATION_ROOT}" | tee -a ~/.bashrc
# workaround https://github.com/microsoft/vcpkg/issues/27786
mkdir -p /Users/runner/.vcpkg
touch /Users/runner/.vcpkg/vcpkg.path.txt
# Install vcpkg
sudo git clone https://github.com/Microsoft/vcpkg $VCPKG_INSTALLATION_ROOT
sudo $VCPKG_INSTALLATION_ROOT/bootstrap-vcpkg.sh
git clone https://github.com/Microsoft/vcpkg $VCPKG_INSTALLATION_ROOT
$VCPKG_INSTALLATION_ROOT/bootstrap-vcpkg.sh
$VCPKG_INSTALLATION_ROOT/vcpkg integrate install
sudo chmod -R 0777 $VCPKG_INSTALLATION_ROOT
chmod -R 0777 $VCPKG_INSTALLATION_ROOT
ln -sf $VCPKG_INSTALLATION_ROOT/vcpkg /usr/local/bin
rm -rf /Users/runner/.vcpkg
invoke_tests "Common" "vcpkg"
@@ -64,7 +64,7 @@ if ((-not $os.IsSequoia)) {
$packageManagement.AddToolVersion("Pip3", $(Get-Pip3Version))
$packageManagement.AddToolVersion("Pipx", $(Get-PipxVersion))
$packageManagement.AddToolVersion("RubyGems", $(Get-RubyGemsVersion))
if (-not $os.IsVenturaArm64) {
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonoma) -and (-not $os.IsSequoia)) {
$packageManagement.AddToolVersion("Vcpkg", $(Get-VcpkgVersion))
}
$packageManagement.AddToolVersion("Yarn", $(Get-YarnVersion))
@@ -97,7 +97,6 @@ $utilities.AddToolVersion("pkgconf", $(Get-PKGConfVersion))
$utilities.AddToolVersion("Unxip", $(Get-UnxipVersion))
$utilities.AddToolVersion("yq", $(Get-YqVersion))
$utilities.AddToolVersion("zstd", $(Get-ZstdVersion))
$utilities.AddToolVersion("Ninja", $(Get-NinjaVersion))
# Tools
$tools = $installedSoftware.AddHeader("Tools")
@@ -174,15 +173,12 @@ $android.AddTable($androidTable)
$androidEnv = $android.AddHeader("Environment variables")
$androidEnv.AddTable($(Build-AndroidEnvironmentTable))
if ($os.IsSonoma -or $os.IsVentura -or $os.IsSequoiaX64) {
$miscellaneous = $installedSoftware.AddHeader("Miscellaneous")
}
if ($os.IsSonoma -or $os.IsVentura) {
$miscellaneous = $installedSoftware.AddHeader("Miscellaneous")
$miscellaneous.AddToolVersion("Tcl/Tk", $(Get-TclTkVersion))
}
if ($os.IsSonomaX64 -or $os.IsVenturaX64 -or $os.IsSequoiaX64) {
if ($os.IsSonomaX64 -or $os.IsVenturaX64) {
Write-Host "Adding environment variables for parallels"
@@ -9,13 +9,18 @@ function Build-BrowserSection {
[ToolVersionNode]::new("Google Chrome", $(Get-ChromeVersion))
[ToolVersionNode]::new("Google Chrome for Testing", $(Get-ChromeForTestingVersion))
[ToolVersionNode]::new("ChromeDriver", $(Get-ChromeDriverVersion))
[ToolVersionNode]::new("Microsoft Edge", $(Get-EdgeVersion))
[ToolVersionNode]::new("Microsoft Edge WebDriver", $(Get-EdgeDriverVersion))
)
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64) -and (-not $os.IsSequoiaArm64)) {
$nodes += @(
[ToolVersionNode]::new("Microsoft Edge", $(Get-EdgeVersion))
[ToolVersionNode]::new("Microsoft Edge WebDriver", $(Get-EdgeDriverVersion))
[ToolVersionNode]::new("Mozilla Firefox", $(Get-FirefoxVersion))
[ToolVersionNode]::new("geckodriver", $(Get-GeckodriverVersion))
)
}
$nodes += @(
[ToolVersionNode]::new("Mozilla Firefox", $(Get-FirefoxVersion))
[ToolVersionNode]::new("geckodriver", $(Get-GeckodriverVersion))
[ToolVersionNode]::new("Selenium server", $(Get-SeleniumVersion))
)
@@ -231,8 +231,10 @@ function Get-WgetVersion {
}
function Get-PackerVersion {
$packerVersion = Run-Command "packer --version" | Select-String "Packer" | Select-Object -First 1 | Take-Part -Part 1
return ($packerVersion.Trim("v"))
# Packer 1.7.1 has a bug and outputs version to stderr instead of stdout https://github.com/hashicorp/packer/issues/10855
$result = Run-Command "packer --version"
$packerVersion = [regex]::matches($result, "(\d+.){2}\d+").Value
return $packerVersion
}
function Get-OpenSSLVersion {
@@ -407,7 +409,3 @@ function Get-UnxipVersion {
$unxipVersion = Run-Command "unxip --version" | Take-Part -Part 1
return $unxipVersion
}
function Get-NinjaVersion {
return $(ninja --version)
}
@@ -175,84 +175,33 @@ function Install-AdditionalSimulatorRuntimes {
[Parameter(Mandatory)]
[string] $Version,
[Parameter(Mandatory)]
[string] $Arch,
[Parameter(Mandatory)]
[object] $Runtimes
[array] $Runtimes
)
Write-Host "Installing Simulator Runtimes for Xcode $Version ..."
$xcodebuildPath = Get-XcodeToolPath -Version $Version -ToolName 'xcodebuild'
$validRuntimes = @("iOS", "watchOS", "tvOS")
# visionOS is only available on arm64
if ($Arch -eq "arm64") {
$validRuntimes += "visionOS"
}
# Install all runtimes / skip runtimes
if ($Runtimes -eq "default") {
Write-Host "Installing all runtimes for Xcode $Version ..."
Invoke-ValidateCommand "$xcodebuildPath -downloadAllPlatforms" | Out-Null
return
} elseif ($Runtimes -eq "none") {
Write-Host "Skipping runtimes installation for Xcode $Version ..."
return
}
# Convert $Runtimes to hashtable
if ($Runtimes -is [System.Object[]]) {
$convertedRuntimes = @{}
foreach ($entry in $Runtimes) {
if ($entry -is [PSCustomObject]) {
$entry = $entry | ConvertTo-Json -Compress | ConvertFrom-Json -AsHashtable
}
# Copy all keys and values from the entry to the converted runtimes
foreach ($key in $entry.Keys) {
if ($convertedRuntimes.ContainsKey($key)) {
$convertedRuntimes[$key] += $entry[$key]
} else {
$convertedRuntimes[$key] = $entry[$key]
}
}
}
$Runtimes = $convertedRuntimes
}
# Validate runtimes format
if ($Runtimes -isnot [System.Collections.Hashtable]) {
throw "Invalid runtime format for Xcode $(Version): Expected hashtable, got [$($Runtimes.GetType())]"
}
# Install runtimes for specified platforms
foreach ($platform in $validRuntimes) {
if (-not $Runtimes.ContainsKey($platform)) {
Write-Host "No runtimes specified for $platform in the toolset for Xcode $Version, please check the toolset."
$validRuntimes = @("iOS", "watchOS", "tvOS", "visionOS")
# Install all runtimes / skip all runtimes installation
if ($Runtimes.Count -eq 1) {
if ($Runtimes[0] -eq "true") {
Write-Host "Installing all runtimes for Xcode $Version ..."
Invoke-ValidateCommand "sudo $xcodebuildPath -downloadAllPlatforms" | Out-Null
return
} elseif ($Runtimes[0] -eq "false") {
Write-Host "Skipping runtimes installation for Xcode $Version ..."
return
}
foreach ($platformVersion in $Runtimes[$platform]) {
switch ($platformVersion) {
"skip" {
Write-Host "Skipping $platform runtimes installation for Xcode $Version ..."
continue
}
"default" {
Write-Host "Installing default $platform runtime for Xcode $Version ..."
Invoke-ValidateCommand "$xcodebuildPath -downloadPlatform $platform" | Out-Null
continue
}
default {
# Version might be a semver or a build number
if (($platformVersion -match "^\d{1,2}\.\d(\.\d)?$") -or ($platformVersion -match "^[a-zA-Z0-9]{6,8}$")) {
Write-Host "Installing $platform $platformVersion runtime for Xcode $Version ..."
Invoke-ValidateCommand "$xcodebuildPath -downloadPlatform $platform -buildVersion $platformVersion" | Out-Null
continue
}
throw "$platformVersion is not a valid value for $platform version. Valid values are 'latest' or 'skip' or a semver from 0.0 to 99.9.(9)."
}
}
}
}
# Validate and install specified runtimes
$invalidRuntimes = $Runtimes | Where-Object { $_ -notin $validRuntimes }
if ($invalidRuntimes) {
throw "Error: Invalid runtimes detected: $($invalidRuntimes -join ', '). Valid values are: $validRuntimes."
}
foreach ($runtime in $Runtimes) {
Write-Host "Installing runtime $runtime ..."
Invoke-ValidateCommand "sudo $xcodebuildPath -downloadPlatform $runtime" | Out-Null
}
}
@@ -1,34 +0,0 @@
# This AppleScript clicks "Allow" for "System Software from developer "Parallels International GmbH"
# Steps:
# - Open System Settings -> Privacy & Security
# - Click 'Allow' for 'System Software from developer "Parallels International GmbH'
# - Enter password for runner
on run argv
set userpassword to item 1 of argv
tell application "System Settings"
activate
delay 5
end tell
tell application "System Events"
tell process "System Settings"
set frontmost to true
repeat until exists window 1
delay 2
end repeat
tell splitter group 1 of group 1 of window 1
select row 27 of outline 1 of scroll area 1 of group 1
delay 5
click UI element 1 of row 27 of outline 1 of scroll area 1 of group 1
delay 5
keystroke userpassword
delay 5
keystroke return
delay 5
end tell
end tell
end tell
end run
@@ -133,7 +133,7 @@ Describe "Kotlin" {
$kotlinPackages = @("kapt", "kotlin", "kotlinc", "kotlinc-jvm", "kotlinc-js")
It "<toolName> is available" -TestCases ($kotlinPackages | ForEach-Object { @{ toolName = $_ } }) {
"$toolName -help" | Should -ReturnZeroExitCode
"$toolName -version" | Should -ReturnZeroExitCode
}
}
@@ -148,25 +148,3 @@ Describe "pkgconf" {
"pkgconf --version" | Should -ReturnZeroExitCode
}
}
Describe "Ninja" {
New-item -Path "/tmp/ninjaproject" -ItemType Directory -Force
Set-Location '/tmp/ninjaproject'
@'
cmake_minimum_required(VERSION 3.10)
project(NinjaTest NONE)
'@ | Out-File -FilePath "./CMakeLists.txt"
It "Make a simple ninja project" {
"cmake -GNinja /tmp/ninjaproject" | Should -ReturnZeroExitCode
}
It "build.ninja file should exist" {
$buildFilePath = Join-Path "/tmp/ninjaproject" "build.ninja"
$buildFilePath | Should -Exist
}
It "Ninja" {
"ninja --version" | Should -ReturnZeroExitCode
}
}
@@ -41,7 +41,7 @@ Describe "Selenium server" {
}
}
Describe "Edge" {
Describe "Edge" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoiaArm64) {
It "Microsoft Edge" {
$edgeLocation = "/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge"
$edgeLocation | Should -Exist
@@ -53,7 +53,7 @@ Describe "Edge" {
}
}
Describe "Firefox" {
Describe "Firefox" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoiaArm64) {
It "Firefox" {
$firefoxLocation = "/Applications/Firefox.app/Contents/MacOS/firefox"
$firefoxLocation | Should -Exist
+1 -10
View File
@@ -33,7 +33,7 @@ Describe "GCC" {
}
}
Describe "vcpkg" -Skip:($os.IsVenturaArm64) {
Describe "vcpkg" -Skip:($os.IsVenturaArm64 -or $os.IsSonoma -or $os.IsSequoia) {
It "vcpkg" {
"vcpkg version" | Should -ReturnZeroExitCode
}
@@ -87,12 +87,3 @@ Describe "Unxip" {
"unxip --version" | Should -ReturnZeroExitCode
}
}
Describe "Sudoers" {
It "Sudo Cache" {
"sudo -v" | Should -ReturnZeroExitCode
}
It "Sudoers files" {
"sudo visudo -c" | Should -ReturnZeroExitCode
}
}
+25
View File
@@ -21,6 +21,31 @@ Describe "Node.js" {
}
}
Describe "nvm" -Skip:($os.IsVentura -or $os.IsSonoma -or $os.IsSequoia) {
BeforeAll {
$nvmPath = Join-Path $env:HOME ".nvm" "nvm.sh"
$nvmInitCommand = ". $nvmPath > /dev/null 2>&1 || true"
}
It "nvm is installed" {
$nvmPath | Should -Exist
"$nvmInitCommand && nvm --version" | Should -ReturnZeroExitCode
}
Context "nvm versions" {
[array]$nvmVersions = (Get-ToolsetContent).node.nvm_versions
$testCases = $nvmVersions | ForEach-Object { @{NvmVersion = $_} }
It "<NvmVersion>" -TestCases $testCases {
param (
[string] $NvmVersion
)
"$nvmInitCommand && nvm ls $($NvmVersion)" | Should -ReturnZeroExitCode
}
}
}
Describe "Global NPM Packages" {
$globalNpmPackages = (Get-ToolsetContent).npm.global_packages
$globalNpmPackagesWithTests = $globalNpmPackages | Where-Object { $_.test } | ForEach-Object { @{ Name = $_.name; Test = $_.test } }
@@ -1,7 +0,0 @@
Describe "RunnerCache" {
Context "runner cache directory not empty" {
It "<RunnerCachePath> not empty" -TestCases @{ RunnerCachePath = "/opt/runner-cache" } {
(Get-ChildItem -Path "$RunnerCachePath/*.tar.gz" -Recurse).Count | Should -BeGreaterThan 0
}
}
}
+3 -4
View File
@@ -3,17 +3,16 @@ Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
$os = Get-OSVersion
Describe "Disk free space" {
It "Image has more than 25GB free space" {
# we should have at least 25 GB of free space on macOS images
It "Image has more than 30GB free space" {
# we should have at least 30 GB of free space on macOS images
# 10GB here: https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops#capabilities-and-limitations
# 14GB here: https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories
# 30GB due to: https://github.com/actions/runner-images/issues/10511
# 25GB is the current minimum due to the size of Xcode 16.4 and it's dependencies
$diskInfo = Get-PSDrive "/"
$totalSpaceGB = [math]::Floor(($diskInfo.Used + $diskInfo.Free) / 1GB)
$freeSpaceGB = [math]::Floor($diskInfo.Free / 1GB)
Write-Host " [i] Disk size: ${totalSpaceGB} GB; Free space: ${freeSpaceGB} GB"
$freeSpaceGB | Should -BeGreaterOrEqual 25
$freeSpaceGB | Should -BeGreaterOrEqual 30
}
}
@@ -236,7 +236,6 @@ build {
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-runner-package.sh",
"${path.root}/../scripts/build/install-llvm.sh",
"${path.root}/../scripts/build/install-swiftlint.sh",
"${path.root}/../scripts/build/install-openjdk.sh",
@@ -237,7 +237,6 @@ build {
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-runner-package.sh",
"${path.root}/../scripts/build/install-llvm.sh",
"${path.root}/../scripts/build/install-openjdk.sh",
"${path.root}/../scripts/build/install-aws-tools.sh",
@@ -247,10 +246,8 @@ build {
"${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-firefox.sh",
"${path.root}/../scripts/build/install-bicep.sh",
"${path.root}/../scripts/build/install-codeql-bundle.sh",
"${path.root}/../scripts/build/install-edge.sh"
"${path.root}/../scripts/build/install-codeql-bundle.sh"
]
}
@@ -286,9 +283,6 @@ build {
provisioner "shell" {
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"
]
scripts = ["${path.root}/../scripts/build/configure-hostname.sh"]
}
}
@@ -235,7 +235,6 @@ build {
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-runner-package.sh",
"${path.root}/../scripts/build/install-llvm.sh",
"${path.root}/../scripts/build/install-swiftlint.sh",
"${path.root}/../scripts/build/install-openjdk.sh",
@@ -245,7 +244,6 @@ build {
"${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",
@@ -236,7 +236,6 @@ build {
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-runner-package.sh",
"${path.root}/../scripts/build/install-llvm.sh",
"${path.root}/../scripts/build/install-openjdk.sh",
"${path.root}/../scripts/build/install-aws-tools.sh",
@@ -244,13 +243,10 @@ build {
"${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-firefox.sh",
"${path.root}/../scripts/build/install-bicep.sh",
"${path.root}/../scripts/build/install-codeql-bundle.sh",
"${path.root}/../scripts/build/install-edge.sh"
"${path.root}/../scripts/build/install-codeql-bundle.sh"
]
}
@@ -286,9 +282,6 @@ build {
provisioner "shell" {
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"
]
scripts = ["${path.root}/../scripts/build/configure-hostname.sh"]
}
}
@@ -156,7 +156,6 @@ build {
inline = [
"mv ${local.image_folder}/docs-gen ${local.image_folder}/software-report",
"mkdir ~/utils",
"mv ${local.image_folder}/helpers/confirm-identified-developers-macos15.scpt ~/utils",
"mv ${local.image_folder}/helpers/invoke-tests.sh ~/utils",
"mv ${local.image_folder}/helpers/utils.sh ~/utils"
]
@@ -234,7 +233,6 @@ build {
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-runner-package.sh",
"${path.root}/../scripts/build/install-llvm.sh",
"${path.root}/../scripts/build/install-swiftlint.sh",
"${path.root}/../scripts/build/install-openjdk.sh",
@@ -244,7 +242,6 @@ build {
"${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",
@@ -235,7 +235,6 @@ build {
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-runner-package.sh",
"${path.root}/../scripts/build/install-llvm.sh",
"${path.root}/../scripts/build/install-openjdk.sh",
"${path.root}/../scripts/build/install-aws-tools.sh",
@@ -243,13 +242,10 @@ build {
"${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-firefox.sh",
"${path.root}/../scripts/build/install-bicep.sh",
"${path.root}/../scripts/build/install-codeql-bundle.sh",
"${path.root}/../scripts/build/install-edge.sh"
"${path.root}/../scripts/build/install-codeql-bundle.sh"
]
}
@@ -285,9 +281,6 @@ build {
provisioner "shell" {
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"
]
scripts = ["${path.root}/../scripts/build/configure-hostname.sh"]
}
}
+4 -40
View File
@@ -6,19 +6,9 @@
- `link` property points to the place where Xcode will be located on image. `/Applications/Xcode_<link>.app`
- `version` points to Xcode version that will be downloaded and installed
- `symlinks` describes the list of aliases where symlinks will be created to
- `install_runtimes` is an array or boolean function to control over the related simulator runtimes, set of possible values: [ `iOS`, `watchOS`, `visionOS`, `tvOS` ], use `true` if you want to install all runtimes, use `false` if you want to skip runtimes installation
- `sha256` used to check integrity of the Xcode installer file
- `install_runtimes` controls the installation of simulator runtimes:
- `default` installs all default runtimes.
- `none` skips runtime installation.
- **Hashtable** allows manual selection:
- Mandatory keys: `[ "iOS", "watchOS", "tvOS" ]`, plus `visionOS` for arm64 images.
- Values [array of string]:
- `"default"` installs the default runtime.
- `"skip"` skips installation.
- Specific version numbers, e.g., `"18.2"`, `"2.2"`, `"18.3.1"`.
- Apple release version, e.g., `"22E5216h"`, `"17A577"`.
- `default` - version of Xcode to set as default (should be matched with any `link` in `versions` property)
- `default` - version of Xcode to set as default (should be metched with any `link` in `versions` property)
**Example:** `"11.2"`
**Note:**
@@ -32,36 +22,10 @@
**Example:**
String format:
```json
"versions": [
{ "link": "16_beta_4", "version": "16.0.0-Beta.4+16A5211f", "symlinks": ["16.0"], "install_runtimes": "none", "sha256": "4270cd8021b2f7f512ce91bfc4423b25bccab36cdab21834709d798c8daade72"},
{ "link": "15.4", "version": "15.4.0+15F31d", "install_runtimes": "default", "sha256": "82d3d61804ff3f4c7c82085e91dc701037ddaa770e542848b2477e22f4e8aa7a"}
]
```
Block format:
```json
"versions": [
{
"link": "16.2",
"version": "16.2+16C5032a",
"sha256": "0e367d06eb7c334ea143bada5e4422f56688aabff571bedf0d2ad9434b7290de",
"install_runtimes": [
{ "iOS": ["18.0", "18.1", "18.2"] },
{ "watchOS": "default" },
{ "tvOS": "default" },
{ "visionOS": "2.2" }
]
},
{
"link": "16.1",
"version": "16.1+16B40",
"sha256": "8ca961d55981f983d21b99a95a6b0ac04905b837f6e11346ee86d28f12afe720",
"install_runtimes": "default"
}
{ "link": "16_beta_4", "version": "16.0.0-Beta.4+16A5211f", "symlinks": ["16.0"], "install_runtimes": "false", "sha256": "4270cd8021b2f7f512ce91bfc4423b25bccab36cdab21834709d798c8daade72"},
{ "link": "15.4", "version": "15.4.0+15F31d", "install_runtimes": "true", "sha256": "82d3d61804ff3f4c7c82085e91dc701037ddaa770e542848b2477e22f4e8aa7a"}
]
```
+20 -22
View File
@@ -3,22 +3,22 @@
"default": "15.2",
"x64": {
"versions": [
{ "link": "15.2", "filename": "15.2", "version": "15.2.0+15C500b", "install_runtimes": "default", "sha256": "04E93680C6DDBEC84666531BE412DE778AFC8EAC6AB2037F4C2BE7290818B59B"},
{ "link": "15.1", "filename": "15.1", "version": "15.1.0+15C65", "install_runtimes": "default", "sha256": "857D8DB537BAC82BF99DE0E1D3895D214D4D02101C1340CEF3DAF6E821BA1D05"},
{ "link": "15.0.1", "filename": "15.0.1", "version": "15.0.1+15A507", "symlinks": ["15.0"], "install_runtimes": "default", "sha256": "5AC17AE6060CAFC3C7112C6DA0B153450BE21F1DE6632777FBA9FBC9D999C9E8"},
{ "link": "14.3.1", "filename": "14.3.1", "version": "14.3.1+14E300c","symlinks": ["14.3"], "install_runtimes": "default", "sha256": "B5CC7BF37447C32A971B37D71C7DA1AF7ABB45CEE4B96FE126A1D3B0D2C260AF"},
{ "link": "14.2", "filename": "14.2", "version": "14.2.0+14C18", "install_runtimes": "default", "sha256": "686B9D53CA49E50D563BC0104B1E8B4F7CCFE80064A6D689965FB819BF8EFE72"},
{ "link": "14.1", "filename": "14.1", "version": "14.1.0+14B47b", "install_runtimes": "default", "sha256": "12F8A3AEF78BF354470AD8B351ADDD925C8EDAD888137D138CA50A8130EB9F2F"}
{ "link": "15.2", "version": "15.2.0+15C500b", "install_runtimes": "true", "sha256": "04E93680C6DDBEC84666531BE412DE778AFC8EAC6AB2037F4C2BE7290818B59B"},
{ "link": "15.1", "version": "15.1.0+15C65", "install_runtimes": "true", "sha256": "857D8DB537BAC82BF99DE0E1D3895D214D4D02101C1340CEF3DAF6E821BA1D05"},
{ "link": "15.0.1", "version": "15.0.1+15A507", "symlinks": ["15.0"], "install_runtimes": "true", "sha256": "5AC17AE6060CAFC3C7112C6DA0B153450BE21F1DE6632777FBA9FBC9D999C9E8"},
{ "link": "14.3.1", "version": "14.3.1+14E300c","symlinks": ["14.3"], "install_runtimes": "true", "sha256": "B5CC7BF37447C32A971B37D71C7DA1AF7ABB45CEE4B96FE126A1D3B0D2C260AF"},
{ "link": "14.2", "version": "14.2.0+14C18", "install_runtimes": "true", "sha256": "686B9D53CA49E50D563BC0104B1E8B4F7CCFE80064A6D689965FB819BF8EFE72"},
{ "link": "14.1", "version": "14.1.0+14B47b", "install_runtimes": "true", "sha256": "12F8A3AEF78BF354470AD8B351ADDD925C8EDAD888137D138CA50A8130EB9F2F"}
]
},
"arm64":{
"versions": [
{ "link": "15.2", "filename": "15.2", "version": "15.2.0+15C500b", "install_runtimes": "default", "sha256": "04E93680C6DDBEC84666531BE412DE778AFC8EAC6AB2037F4C2BE7290818B59B"},
{ "link": "15.1", "filename": "15.1", "version": "15.1.0+15C65", "install_runtimes": "default", "sha256": "857D8DB537BAC82BF99DE0E1D3895D214D4D02101C1340CEF3DAF6E821BA1D05"},
{ "link": "15.0.1", "filename": "15.0.1", "version": "15.0.1+15A507", "symlinks": ["15.0"], "install_runtimes": "default", "sha256": "5AC17AE6060CAFC3C7112C6DA0B153450BE21F1DE6632777FBA9FBC9D999C9E8"},
{ "link": "14.3.1", "filename": "14.3.1", "version": "14.3.1+14E300c","symlinks": ["14.3"], "install_runtimes": "default", "sha256": "B5CC7BF37447C32A971B37D71C7DA1AF7ABB45CEE4B96FE126A1D3B0D2C260AF"},
{ "link": "14.2", "filename": "14.2", "version": "14.2.0+14C18", "install_runtimes": "default", "sha256": "686B9D53CA49E50D563BC0104B1E8B4F7CCFE80064A6D689965FB819BF8EFE72"},
{ "link": "14.1", "filename": "14.1", "version": "14.1.0+14B47b", "install_runtimes": "default", "sha256": "12F8A3AEF78BF354470AD8B351ADDD925C8EDAD888137D138CA50A8130EB9F2F"}
{ "link": "15.2", "version": "15.2.0+15C500b", "install_runtimes": "true", "sha256": "04E93680C6DDBEC84666531BE412DE778AFC8EAC6AB2037F4C2BE7290818B59B"},
{ "link": "15.1", "version": "15.1.0+15C65", "install_runtimes": "true", "sha256": "857D8DB537BAC82BF99DE0E1D3895D214D4D02101C1340CEF3DAF6E821BA1D05"},
{ "link": "15.0.1", "version": "15.0.1+15A507", "symlinks": ["15.0"], "install_runtimes": "true", "sha256": "5AC17AE6060CAFC3C7112C6DA0B153450BE21F1DE6632777FBA9FBC9D999C9E8"},
{ "link": "14.3.1", "version": "14.3.1+14E300c","symlinks": ["14.3"], "install_runtimes": "true", "sha256": "B5CC7BF37447C32A971B37D71C7DA1AF7ABB45CEE4B96FE126A1D3B0D2C260AF"},
{ "link": "14.2", "version": "14.2.0+14C18", "install_runtimes": "true", "sha256": "686B9D53CA49E50D563BC0104B1E8B4F7CCFE80064A6D689965FB819BF8EFE72"},
{ "link": "14.1", "version": "14.1.0+14B47b", "install_runtimes": "true", "sha256": "12F8A3AEF78BF354470AD8B351ADDD925C8EDAD888137D138CA50A8130EB9F2F"}
]
}
},
@@ -42,12 +42,12 @@
],
"addons": [],
"additional_tools": [
"cmake;3.31.5"
"cmake;3.31.0"
],
"ndk": {
"default": "26",
"versions": [
"26", "27", "28"
"26", "27"
]
}
},
@@ -55,7 +55,7 @@
{
"name": "Az",
"versions": [
"12.5.0"
"12.4.0"
]
},
{ "name": "Pester" },
@@ -81,7 +81,6 @@
"swiftformat",
"tcl-tk@8",
"zstd",
"ninja",
"gmp",
"yq",
"xcbeautify",
@@ -95,8 +94,7 @@
"versions": [
"12",
"13",
"14",
"15"
"14"
]
},
"dotnet": {
@@ -192,17 +190,17 @@
"x64": {
"variable_template" : "GOROOT_{0}_{1}_X64",
"versions": [
"1.21.*",
"1.22.*",
"1.23.*",
"1.24.*"
"1.23.*"
]
},
"arm64": {
"variable_template" : "GOROOT_{0}_{1}_ARM64",
"versions": [
"1.21.*",
"1.22.*",
"1.23.*",
"1.24.*"
"1.23.*"
]
}
}
+22 -119
View File
@@ -3,119 +3,24 @@
"default": "15.4",
"x64": {
"versions": [
{
"link": "16.2",
"filename": "16.2",
"version": "16.2+16C5032a",
"sha256": "0e367d06eb7c334ea143bada5e4422f56688aabff571bedf0d2ad9434b7290de",
"install_runtimes": [
{ "iOS": "18.2" },
{ "watchOS": "default" },
{ "tvOS": "default" }
]
},
{
"link": "16.1",
"filename": "16.1",
"version": "16.1+16B40",
"sha256": "8ca961d55981f983d21b99a95a6b0ac04905b837f6e11346ee86d28f12afe720",
"install_runtimes": "default"
},
{
"link": "15.4",
"filename": "15.4",
"version": "15.4.0+15F31d",
"sha256": "82d3d61804ff3f4c7c82085e91dc701037ddaa770e542848b2477e22f4e8aa7a",
"install_runtimes": "default"
},
{
"link": "15.3",
"filename": "15.3",
"version": "15.3.0+15E204a",
"sha256": "f13f6a2e2df432c3008e394640b8549a18c285acd7fd148d6c4bac8c3a5af234",
"install_runtimes": "default"
},
{
"link": "15.2",
"filename": "15.2",
"version": "15.2.0+15C500b",
"sha256": "04E93680C6DDBEC84666531BE412DE778AFC8EAC6AB2037F4C2BE7290818B59B",
"install_runtimes": "default"
},
{
"link": "15.1",
"filename": "15.1",
"version": "15.1.0+15C65",
"sha256": "857D8DB537BAC82BF99DE0E1D3895D214D4D02101C1340CEF3DAF6E821BA1D05",
"install_runtimes": "default"
},
{
"link": "15.0.1",
"filename": "15.0.1",
"version": "15.0.1+15A507",
"sha256": "5AC17AE6060CAFC3C7112C6DA0B153450BE21F1DE6632777FBA9FBC9D999C9E8",
"symlinks": ["15.0"],
"install_runtimes": "default"
}
{ "link": "16.2", "version": "16.2+16C5032a", "install_runtimes": ["iOS", "watchOS", "tvOS"], "sha256": "0e367d06eb7c334ea143bada5e4422f56688aabff571bedf0d2ad9434b7290de"},
{ "link": "16.1", "version": "16.1+16B40", "install_runtimes": ["iOS", "watchOS", "tvOS"], "sha256": "8ca961d55981f983d21b99a95a6b0ac04905b837f6e11346ee86d28f12afe720"},
{ "link": "15.4", "version": "15.4.0+15F31d", "install_runtimes": "true", "sha256": "82d3d61804ff3f4c7c82085e91dc701037ddaa770e542848b2477e22f4e8aa7a"},
{ "link": "15.3", "version": "15.3.0+15E204a", "install_runtimes": "true", "sha256": "f13f6a2e2df432c3008e394640b8549a18c285acd7fd148d6c4bac8c3a5af234"},
{ "link": "15.2", "version": "15.2.0+15C500b", "install_runtimes": "true", "sha256": "04E93680C6DDBEC84666531BE412DE778AFC8EAC6AB2037F4C2BE7290818B59B"},
{ "link": "15.1", "version": "15.1.0+15C65", "install_runtimes": "true", "sha256": "857D8DB537BAC82BF99DE0E1D3895D214D4D02101C1340CEF3DAF6E821BA1D05"},
{ "link": "15.0.1", "version": "15.0.1+15A507", "symlinks": ["15.0"], "install_runtimes": "true", "sha256": "5AC17AE6060CAFC3C7112C6DA0B153450BE21F1DE6632777FBA9FBC9D999C9E8"}
]
},
"arm64":{
"versions": [
{
"link": "16.2",
"filename": "16.2",
"version": "16.2+16C5032a",
"sha256": "0e367d06eb7c334ea143bada5e4422f56688aabff571bedf0d2ad9434b7290de",
"install_runtimes": [
{ "iOS": "18.2" },
{ "watchOS": "default" },
{ "tvOS": "default" },
{ "visionOS": "2.2" }
]
},
{
"link": "16.1",
"filename": "16.1",
"version": "16.1+16B40",
"sha256": "8ca961d55981f983d21b99a95a6b0ac04905b837f6e11346ee86d28f12afe720",
"install_runtimes": "default"
},
{
"link": "15.4",
"filename": "15.4",
"version": "15.4.0+15F31d",
"sha256": "82d3d61804ff3f4c7c82085e91dc701037ddaa770e542848b2477e22f4e8aa7a",
"install_runtimes": "default"
},
{
"link": "15.3",
"filename": "15.3",
"version": "15.3.0+15E204a",
"sha256": "f13f6a2e2df432c3008e394640b8549a18c285acd7fd148d6c4bac8c3a5af234",
"install_runtimes": "default"
},
{
"link": "15.2",
"filename": "15.2",
"version": "15.2.0+15C500b",
"sha256": "04E93680C6DDBEC84666531BE412DE778AFC8EAC6AB2037F4C2BE7290818B59B",
"install_runtimes": "default"
},
{
"link": "15.1",
"filename": "15.1",
"version": "15.1.0+15C65",
"sha256": "857D8DB537BAC82BF99DE0E1D3895D214D4D02101C1340CEF3DAF6E821BA1D05",
"install_runtimes": "default"
},
{
"link": "15.0.1",
"filename": "15.0.1",
"version": "15.0.1+15A507",
"sha256": "5AC17AE6060CAFC3C7112C6DA0B153450BE21F1DE6632777FBA9FBC9D999C9E8",
"symlinks": ["15.0"],
"install_runtimes": "default"
}
{ "link": "16.2", "version": "16.2+16C5032a", "install_runtimes": ["iOS", "watchOS", "tvOS"], "sha256": "0e367d06eb7c334ea143bada5e4422f56688aabff571bedf0d2ad9434b7290de"},
{ "link": "16.1", "version": "16.1+16B40", "install_runtimes": ["iOS", "watchOS", "tvOS"], "sha256": "8ca961d55981f983d21b99a95a6b0ac04905b837f6e11346ee86d28f12afe720"},
{ "link": "15.4", "version": "15.4.0+15F31d", "install_runtimes": "true", "sha256": "82d3d61804ff3f4c7c82085e91dc701037ddaa770e542848b2477e22f4e8aa7a"},
{ "link": "15.3", "version": "15.3.0+15E204a", "install_runtimes": "true", "sha256": "f13f6a2e2df432c3008e394640b8549a18c285acd7fd148d6c4bac8c3a5af234"},
{ "link": "15.2", "version": "15.2.0+15C500b", "install_runtimes": "true", "sha256": "04E93680C6DDBEC84666531BE412DE778AFC8EAC6AB2037F4C2BE7290818B59B"},
{ "link": "15.1", "version": "15.1.0+15C65", "install_runtimes": "true", "sha256": "857D8DB537BAC82BF99DE0E1D3895D214D4D02101C1340CEF3DAF6E821BA1D05"},
{ "link": "15.0.1", "version": "15.0.1+15A507", "symlinks": ["15.0"], "install_runtimes": "true", "sha256": "5AC17AE6060CAFC3C7112C6DA0B153450BE21F1DE6632777FBA9FBC9D999C9E8"}
]
}
},
@@ -139,12 +44,12 @@
],
"addons": [],
"additional_tools": [
"cmake;3.31.5"
"cmake;3.31.0"
],
"ndk": {
"default": "26",
"versions": [
"26", "27", "28"
"26", "27"
]
}
},
@@ -152,7 +57,7 @@
{
"name": "Az",
"versions": [
"12.5.0"
"12.4.0"
]
},
{ "name": "Pester" },
@@ -179,7 +84,6 @@
"swiftformat",
"tcl-tk@8",
"zstd",
"ninja",
"gmp",
"yq",
"unxip",
@@ -194,8 +98,7 @@
"versions": [
"12",
"13",
"14",
"15"
"14"
]
},
"dotnet": {
@@ -275,17 +178,17 @@
"x64": {
"variable_template" : "GOROOT_{0}_{1}_X64",
"versions": [
"1.21.*",
"1.22.*",
"1.23.*",
"1.24.*"
"1.23.*"
]
},
"arm64": {
"variable_template" : "GOROOT_{0}_{1}_ARM64",
"versions": [
"1.21.*",
"1.22.*",
"1.23.*",
"1.24.*"
"1.23.*"
]
}
}
+20 -109
View File
@@ -1,109 +1,22 @@
{
"xcode": {
"default": "16.4",
"default": "16",
"x64": {
"versions": [
{
"link": "26_beta_6",
"filename": "26_beta_6_Universal",
"version": "26.0.0-Beta.6+17A5305f",
"symlinks": ["26.0"],
"sha256": "969b8dfe04c366a1900db6052aae7e711f3ecd34b1cfd08f51b5f98c031c2abd",
"install_runtimes": "none"
},
{
"link": "16.4",
"filename": "16.4",
"version": "16.4.0+16F6",
"sha256": "2dbf65ba28fb85b34e72c14c529a42d5c3189ab0f11fb29fdebd5f4ee6c87900",
"install_runtimes": [
{ "iOS": ["18.4", "18.5", "18.6"] },
{ "watchOS": ["11.2", "11.4", "11.5"] },
{ "tvOS": ["18.2", "18.4", "18.5"] }
]
},
{
"link": "16.3",
"filename": "16.3",
"version": "16.3+16E140",
"sha256": "c593177b73e45f31e1cf7ced131760d8aa8e1532f5bbf8ba11a4ded01da14fbb",
"install_runtimes": "none"
},
{
"link": "16.2",
"filename": "16.2",
"version": "16.2+16C5032a",
"sha256": "0e367d06eb7c334ea143bada5e4422f56688aabff571bedf0d2ad9434b7290de",
"install_runtimes": "none"
},
{
"link": "16.1",
"filename": "16.1",
"version": "16.1+16B40",
"sha256": "8ca961d55981f983d21b99a95a6b0ac04905b837f6e11346ee86d28f12afe720",
"install_runtimes": "none"
},
{
"link": "16",
"filename": "16",
"version": "16.0.0+16A242d",
"sha256": "4a26c3d102a55c7222fb145e0ee1503249c9c26c6e02dc64d783c8810b37b1e3",
"symlinks": ["16.0"],
"install_runtimes": "none"
}
{ "link": "16.3_beta", "version": "16.3.0-Beta+16E5104o", "symlinks": ["16.3"], "install_runtimes": "true", "sha256": "bedc4c411d65f65afe03e38d8703b133b9d1158942a30bec0ca96be0e3435c2d"},
{ "link": "16.2", "version": "16.2+16C5032a", "install_runtimes": "true", "sha256": "0e367d06eb7c334ea143bada5e4422f56688aabff571bedf0d2ad9434b7290de"},
{ "link": "16.1", "version": "16.1+16B40", "install_runtimes": "true", "sha256": "8ca961d55981f983d21b99a95a6b0ac04905b837f6e11346ee86d28f12afe720"},
{ "link": "16", "version": "16.0.0+16A242d", "symlinks": ["16.0"], "install_runtimes": "true", "sha256": "4a26c3d102a55c7222fb145e0ee1503249c9c26c6e02dc64d783c8810b37b1e3"},
{ "link": "15.4", "version": "15.4.0+15F31d", "install_runtimes": "true", "sha256": "82d3d61804ff3f4c7c82085e91dc701037ddaa770e542848b2477e22f4e8aa7a"}
]
},
"arm64":{
"versions": [
{
"link": "26_beta_6",
"filename": "26_beta_6_Universal",
"version": "26.0.0-Beta.6+17A5305f",
"symlinks": ["26.0"],
"sha256": "969b8dfe04c366a1900db6052aae7e711f3ecd34b1cfd08f51b5f98c031c2abd",
"install_runtimes": "none"
},
{
"link": "16.4",
"filename": "16.4",
"version": "16.4.0+16F6",
"sha256": "2dbf65ba28fb85b34e72c14c529a42d5c3189ab0f11fb29fdebd5f4ee6c87900",
"install_runtimes": [
{ "iOS": ["18.4", "18.5", "18.6"] },
{ "watchOS": ["11.2", "11.4", "11.5"] },
{ "tvOS": ["18.2", "18.4", "18.5"] },
{ "visionOS": ["2.3", "2.4", "2.5"] }
]
},
{
"link": "16.3",
"filename": "16.3",
"version": "16.3+16E140",
"sha256": "c593177b73e45f31e1cf7ced131760d8aa8e1532f5bbf8ba11a4ded01da14fbb",
"install_runtimes": "none"
},
{
"link": "16.2",
"filename": "16.2",
"version": "16.2+16C5032a",
"sha256": "0e367d06eb7c334ea143bada5e4422f56688aabff571bedf0d2ad9434b7290de",
"install_runtimes": "none"
},
{
"link": "16.1",
"filename": "16.1",
"version": "16.1+16B40",
"sha256": "8ca961d55981f983d21b99a95a6b0ac04905b837f6e11346ee86d28f12afe720",
"install_runtimes": "none"
},
{
"link": "16",
"filename": "16",
"version": "16.0.0+16A242d",
"sha256": "4a26c3d102a55c7222fb145e0ee1503249c9c26c6e02dc64d783c8810b37b1e3",
"symlinks": ["16.0"],
"install_runtimes": "none"
}
{ "link": "16.3_beta", "version": "16.3.0-Beta+16E5104o", "symlinks": ["16.3"], "install_runtimes": "true", "sha256": "bedc4c411d65f65afe03e38d8703b133b9d1158942a30bec0ca96be0e3435c2d"},
{ "link": "16.2", "version": "16.2+16C5032a", "install_runtimes": "true", "sha256": "0e367d06eb7c334ea143bada5e4422f56688aabff571bedf0d2ad9434b7290de"},
{ "link": "16.1", "version": "16.1+16B40", "install_runtimes": "true", "sha256": "8ca961d55981f983d21b99a95a6b0ac04905b837f6e11346ee86d28f12afe720"},
{ "link": "16", "version": "16.0.0+16A242d", "symlinks": ["16.0"], "install_runtimes": "true", "sha256": "4a26c3d102a55c7222fb145e0ee1503249c9c26c6e02dc64d783c8810b37b1e3"},
{ "link": "15.4", "version": "15.4.0+15F31d", "install_runtimes": "true", "sha256": "82d3d61804ff3f4c7c82085e91dc701037ddaa770e542848b2477e22f4e8aa7a"}
]
}
},
@@ -127,12 +40,12 @@
],
"addons": [],
"additional_tools": [
"cmake;3.31.5"
"cmake;3.31.0"
],
"ndk": {
"default": "27",
"versions": [
"26", "27","28"
"26", "27"
]
}
},
@@ -140,7 +53,7 @@
{
"name": "Az",
"versions": [
"12.5.0"
"12.4.0"
]
},
{ "name": "Pester" },
@@ -166,7 +79,6 @@
"pkgconf",
"swiftformat",
"zstd",
"ninja",
"gmp",
"yq",
"unxip",
@@ -174,15 +86,14 @@
"xcodes"
],
"cask_packages": [
"parallels"
""
]
},
"gcc": {
"versions": [
"12",
"13",
"14",
"15"
"14"
]
},
"dotnet": {
@@ -262,17 +173,17 @@
"x64": {
"variable_template" : "GOROOT_{0}_{1}_X64",
"versions": [
"1.21.*",
"1.22.*",
"1.23.*",
"1.24.*"
"1.23.*"
]
},
"arm64": {
"variable_template" : "GOROOT_{0}_{1}_ARM64",
"versions": [
"1.21.*",
"1.22.*",
"1.23.*",
"1.24.*"
"1.23.*"
]
}
}
+393
View File
@@ -0,0 +1,393 @@
# Ubuntu 20.04
- OS Version: 20.04.6 LTS
- Kernel Version: 5.15.0-1078-azure
- Image Version: 20250209.1.0
- Systemd version: 245.4-4ubuntu3.24
## Installed Software
### Language and Runtime
- Bash 5.0.17(1)-release
- Clang: 10.0.0, 11.0.0, 12.0.0
- Clang-format: 10.0.0, 11.0.0, 12.0.0
- Clang-tidy: 10.0.0, 11.0.0, 12.0.0
- Dash 0.5.10.2-6
- Erlang 25.3.2 (Eshell 13.2.2)
- Erlang rebar3 3.24.0
- GNU C++: 10.5.0
- GNU Fortran: 10.5.0
- Julia 1.11.3
- Kotlin 2.1.10-release-473
- Mono 6.12.0.200
- MSBuild 16.10.1.31701 (Mono 6.12.0.200)
- Node.js 18.20.6
- Perl 5.30.0
- Python 3.8.10
- Ruby 2.7.0p0
- Swift 6.0.3
### Package Management
- cpan 1.64
- Helm 3.17.0
- Homebrew 4.4.20
- Miniconda 25.1.1
- Npm 10.8.2
- NuGet 6.6.1.2
- Pip 20.0.2
- Pip3 20.0.2
- Pipx 1.7.1
- RubyGems 3.1.2
- Vcpkg (build from commit 74ec888e38)
- Yarn 1.22.22
#### Environment variables
| Name | Value |
| ----------------------- | ---------------------- |
| CONDA | /usr/share/miniconda |
| VCPKG_INSTALLATION_ROOT | /usr/local/share/vcpkg |
#### Homebrew note
```
Location: /home/linuxbrew
Note: Homebrew is pre-installed on image but not added to PATH.
run the eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" command
to accomplish this.
```
### Project Management
- Ant 1.10.7
- Gradle 8.12.1
- Lerna 8.1.9
- Maven 3.9.9
- Sbt 1.10.7
### Tools
- Ansible 2.13.13
- apt-fast 1.10.0
- AzCopy 10.28.0 - available by `azcopy` and `azcopy10` aliases
- Bazel 8.0.1
- Bazelisk 1.25.0
- Bicep 0.33.93
- Buildah 1.22.3
- CMake 3.31.5
- CodeQL Action Bundle 2.20.1
- Docker Amazon ECR Credential Helper 0.9.0
- Docker Compose v2 2.27.1
- Docker-Buildx 0.20.1
- Docker Client 26.1.3
- Docker Server 26.1.3
- Fastlane 2.226.0
- Git 2.48.1
- Git LFS 3.6.1
- Git-ftp 1.6.0
- Haveged 1.9.1
- Heroku 10.1.0
- HHVM (HipHop VM) 4.172.1
- jq 1.6
- Kind 0.26.0
- Kubectl 1.32.1
- Kustomize 5.6.0
- Leiningen 2.11.2
- MediaInfo 19.09
- Mercurial 5.3.1
- Minikube 1.34.0
- n 10.1.0
- Newman 6.2.1
- nvm 0.40.1
- OpenSSL 1.1.1f-1ubuntu2.23
- Packer 1.12.0
- Parcel 2.13.3
- PhantomJS 2.1.1 2.1.1
- Podman 3.4.2
- Pulumi 3.149.0
- R 4.4.2
- Skopeo 1.5.0
- Sphinx Open Source Search Server 2.2.11
- SVN 1.13.0
- Terraform 1.10.5
- yamllint 1.35.1
- yq 4.45.1
- zstd 1.5.6
### CLI Tools
- Alibaba Cloud CLI 3.0.174
- AWS CLI 2.24.0
- AWS CLI Session Manager Plugin 1.2.707.0
- AWS SAM CLI 1.133.0
- Azure CLI 2.68.0
- Azure CLI (azure-devops) 1.0.1
- GitHub CLI 2.66.1
- Google Cloud CLI 509.0.0
- Netlify CLI 18.0.4
- OpenShift CLI 4.15.19
- ORAS CLI 1.2.2
- Vercel CLI 41.0.2
### Java
| Version | Environment Variable |
| ------------------- | -------------------- |
| 8.0.442+6 | JAVA_HOME_8_X64 |
| 11.0.26+4 (default) | JAVA_HOME_11_X64 |
| 17.0.14+7 | JAVA_HOME_17_X64 |
| 21.0.6+7 | JAVA_HOME_21_X64 |
### PHP Tools
- PHP: 7.4.33, 8.0.30, 8.1.31, 8.2.27, 8.3.16
- Composer 2.8.5
- PHPUnit 8.5.41
```
Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled.
```
### Haskell Tools
- Cabal 3.14.1.1
- GHC 9.12.1
- GHCup 0.1.40.0
- Stack 3.3.1
### Rust Tools
- Cargo 1.84.1
- Rust 1.84.1
- Rustdoc 1.84.1
- Rustup 1.27.1
#### Packages
- Bindgen 0.71.1
- Cargo audit 0.21.1
- Cargo clippy 0.1.84
- Cargo outdated 0.16.0
- Cbindgen 0.28.0
- Rustfmt 1.8.0
### Browsers and Drivers
- Google Chrome 133.0.6943.53
- ChromeDriver 133.0.6943.53
- Chromium 133.0.6943.0
- Microsoft Edge 132.0.2957.140
- Microsoft Edge WebDriver 132.0.2957.140
- Selenium server 4.28.1
- Mozilla Firefox 135.0
- Geckodriver 0.35.0
#### Environment variables
| Name | Value |
| ----------------- | ------------------------------------- |
| CHROMEWEBDRIVER | /usr/local/share/chromedriver-linux64 |
| EDGEWEBDRIVER | /usr/local/share/edge_driver |
| GECKOWEBDRIVER | /usr/local/share/gecko_driver |
| SELENIUM_JAR_PATH | /usr/share/java/selenium-server.jar |
### .NET Tools
- .NET Core SDK: 6.0.428, 8.0.405, 9.0.102
- nbgv 3.7.115+d31f50f4d1
### Databases
- MongoDB 5.0.31
- sqlite3 3.31.1
#### PostgreSQL
- PostgreSQL 14.15
```
User: postgres
PostgreSQL service is disabled by default.
Use the following command as a part of your job to start the service: 'sudo systemctl start postgresql.service'
```
#### MySQL
- MySQL 8.0.41-0ubuntu0.20.04.1
```
User: root
Password: root
MySQL service is disabled by default.
Use the following command as a part of your job to start the service: 'sudo systemctl start mysql.service'
```
#### MS SQL
- sqlcmd 17.10.0001.1
- SqlPackage 162.5.57.1
### Cached Tools
#### Go
- 1.21.13
- 1.22.12
- 1.23.6
#### Node.js
- 18.20.6
- 20.18.2
- 22.13.1
#### Python
- 3.8.18
- 3.9.21
- 3.10.16
- 3.11.11
- 3.12.9
- 3.13.2
#### PyPy
- 2.7.18 [PyPy 7.3.18]
- 3.6.12 [PyPy 7.3.3]
- 3.7.13 [PyPy 7.3.9]
- 3.8.16 [PyPy 7.3.11]
- 3.9.19 [PyPy 7.3.16]
- 3.10.16 [PyPy 7.3.18]
#### Ruby
- 3.0.7
- 3.1.6
- 3.2.7
- 3.3.7
### PowerShell Tools
- PowerShell 7.4.7
#### PowerShell Modules
- Az: 12.1.0
- MarkdownPS: 1.10
- Microsoft.Graph: 2.25.0
- Pester: 5.7.1
- PSScriptAnalyzer: 1.23.0
### Web Servers
| Name | Version | ConfigFile | ServiceStatus | ListenPort |
| --------- | ------- | ------------------------- | ------------- | ---------- |
| apache2 | 2.4.41 | /etc/apache2/apache2.conf | inactive | 80 |
| mono-xsp4 | 4.7.1 | /etc/default/mono-xsp4 | active | 8084 |
| nginx | 1.18.0 | /etc/nginx/nginx.conf | inactive | 80 |
### Android
| Package Name | Version |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 9.0 |
| Android SDK Build-tools | 35.0.0 35.0.1<br>34.0.0<br>33.0.0 33.0.1 33.0.2 33.0.3<br>32.0.0<br>31.0.0 |
| Android SDK Platform-Tools | 35.0.2 |
| Android SDK Platforms | android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3)<br>android-32 (rev 1)<br>android-31 (rev 1) |
| 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 | 26.3.11579264<br>27.2.12479018 (default) |
#### Environment variables
| Name | Value |
| ----------------------- | -------------------------------------------- |
| ANDROID_HOME | /usr/local/lib/android/sdk |
| ANDROID_NDK | /usr/local/lib/android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_HOME | /usr/local/lib/android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_LATEST_HOME | /usr/local/lib/android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_ROOT | /usr/local/lib/android/sdk/ndk/27.2.12479018 |
| ANDROID_SDK_ROOT | /usr/local/lib/android/sdk |
### Cached Docker images
| Repository:Tag | Digest | Created |
| -------------------- | ------------------------------------------------------------------------ | ---------- |
| alpine:3.16 | sha256:452e7292acee0ee16c332324d7de05fa2c99f9994ecc9f0779c602916a672ae4 | 2024-01-27 |
| alpine:3.17 | sha256:8fc3dacfb6d69da8d44e42390de777e48577085db99aa4e4af35f483eb08b989 | 2024-09-06 |
| alpine:3.18 | sha256:dd60c75fba961ecc5e918961c713f3c42dd5665171c58f9b2ef5aafe081ad5a0 | 2025-01-08 |
| alpine:3.19 | sha256:6380aa6b04faa579332d4c9d1f65bd7093012ba6e01d9bbcd5e2d8a4f9fae38f | 2025-01-08 |
| debian:10 | sha256:58ce6f1271ae1c8a2006ff7d3e54e9874d839f573d8009c20154ad0f2fb0a225 | 2024-06-13 |
| debian:11 | sha256:63904b1442dc0bb1e7a7a7065b3ba0d10d4e300f984115a40d371827fe4e3a85 | 2025-02-03 |
| debian:9 | sha256:c5c5200ff1e9c73ffbf188b4a67eb1c91531b644856b4aefe86a58d2f0cb05be | 2022-06-23 |
| moby/buildkit:latest | sha256:14aa1b4dd92ea0a4cd03a54d0c6079046ea98cd0c0ae6176bdd7036ba370cbbe | 2025-01-20 |
| node:18 | sha256:f12d34408955b2081f82078e8f96c3299ca0f38d11e76086cb9b9b1b669977e4 | 2025-01-22 |
| node:18-alpine | sha256:974afb6cbc0314dc6502b14243b8a39fbb2d04d975e9059dd066be3e274fbb25 | 2025-01-22 |
| node:20 | sha256:3496cba96d3548fc484a7febc77edebffcae693aff6a067bc34ec6d8c1f7affe | 2025-01-22 |
| node:20-alpine | sha256:2cd2a6f4cb37cf8a007d5f1e9aef090ade6b62974c7a274098c390599e8c72b4 | 2025-01-22 |
| node:22 | sha256:5145c882f9e32f07dd7593962045d97f221d57a1b609f5bf7a807eb89deff9d6 | 2025-01-22 |
| node:22-alpine | sha256:e2b39f7b64281324929257d0f8004fb6cb4bf0fdfb9aa8cedb235a766aec31da | 2025-01-22 |
| ubuntu:20.04 | sha256:8e5c4f0285ecbb4ead070431d29b576a530d3166df73ec44affc1cd27555141b | 2024-10-11 |
### Installed apt packages
| Name | Version |
| ---------------------- | --------------------------------- |
| acl | 2.2.53-6 |
| aria2 | 1.35.0-1build1 |
| autoconf | 2.69-11.1 |
| automake | 1:1.16.1-4ubuntu6 |
| binutils | 2.34-6ubuntu1.9 |
| bison | 2:3.5.1+dfsg-1 |
| brotli | 1.0.7-6ubuntu0.1 |
| bzip2 | 1.0.8-2 |
| coreutils | 8.30-3ubuntu2 |
| curl | 7.68.0-1ubuntu2.25 |
| dbus | 1.12.16-2ubuntu2.3 |
| dnsutils | 1:9.18.30-0ubuntu0.20.04.2 |
| dpkg | 1.19.7ubuntu3.2 |
| dpkg-dev | 1.19.7ubuntu3.2 |
| fakeroot | 1.24-1 |
| file | 1:5.38-4 |
| findutils | 4.7.0-1ubuntu1 |
| flex | 2.6.4-6.2 |
| fonts-noto-color-emoji | 0\~20200916-1\~ubuntu20.04.1 |
| ftp | 0.17-34.1 |
| g++ | 4:9.3.0-1ubuntu2 |
| gcc | 4:9.3.0-1ubuntu2 |
| gnupg2 | 2.2.19-3ubuntu2.2 |
| haveged | 1.9.1-6ubuntu1 |
| imagemagick | 8:6.9.10.23+dfsg-2.1ubuntu11.10 |
| iproute2 | 5.5.0-1ubuntu1 |
| iputils-ping | 3:20190709-3ubuntu1 |
| jq | 1.6-1ubuntu0.20.04.1 |
| lib32z1 | 1:1.2.11.dfsg-2ubuntu1.5 |
| libc++-dev | 1:10.0-50\~exp1 |
| libc++abi-dev | 1:10.0-50\~exp1 |
| libc6-dev | 2.31-0ubuntu9.17 |
| libcurl4 | 7.68.0-1ubuntu2.25 |
| libgbm-dev | 21.2.6-0ubuntu0.1\~20.04.2 |
| libgconf-2-4 | 3.2.6-6ubuntu1 |
| libgsl-dev | 2.5+dfsg-6+deb10u1build0.20.04.1 |
| libgtk-3-0 | 3.24.20-0ubuntu1.2 |
| libmagic-dev | 1:5.38-4 |
| libmagickcore-dev | 8:6.9.10.23+dfsg-2.1ubuntu11.10 |
| libmagickwand-dev | 8:6.9.10.23+dfsg-2.1ubuntu11.10 |
| libsecret-1-dev | 0.20.4-0ubuntu1 |
| libsqlite3-dev | 3.31.1-4ubuntu0.6 |
| libtool | 2.4.6-14 |
| libunwind8 | 1.2.1-9ubuntu0.1 |
| libxkbfile-dev | 1:1.1.0-1 |
| libxss1 | 1:1.2.3-1 |
| libyaml-dev | 0.2.2-1 |
| locales | 2.31-0ubuntu9.17 |
| m4 | 1.4.18-4 |
| make | 4.2.1-1.2 |
| mediainfo | 19.09-1build1 |
| mercurial | 5.3.1-1ubuntu1 |
| net-tools | 1.60+git20180626.aebd88e-1ubuntu1 |
| netcat | 1.206-1ubuntu1 |
| openssh-client | 1:8.2p1-4ubuntu0.11 |
| p7zip-full | 16.02+dfsg-7build1 |
| p7zip-rar | 16.02-3build1 |
| parallel | 20161222-1.1 |
| pass | 1.7.3-2 |
| patchelf | 0.10-2build1 |
| pigz | 2.4-1 |
| pkg-config | 0.29.1-0ubuntu4 |
| pollinate | 4.33-3ubuntu1.20.04.1 |
| python-is-python3 | 3.8.2-4 |
| rpm | 4.14.2.1+dfsg1-1build2 |
| rsync | 3.1.3-8ubuntu0.9 |
| shellcheck | 0.7.0-2build2 |
| sphinxsearch | 2.2.11-2ubuntu2 |
| sqlite3 | 3.31.1-4ubuntu0.6 |
| ssh | 1:8.2p1-4ubuntu0.11 |
| sshpass | 1.06-1 |
| subversion | 1.13.0-3ubuntu0.2 |
| sudo | 1.8.31-1ubuntu1.5 |
| swig | 4.0.1-5build1 |
| systemd-coredump | 245.4-4ubuntu3.24 |
| tar | 1.30+dfsg-7ubuntu0.20.04.4 |
| telnet | 0.17-41.2build1 |
| texinfo | 6.7.0.dfsg.2-5 |
| time | 1.7-25.1build1 |
| tk | 8.6.9+1 |
| tzdata | 2024b-0ubuntu0.20.04 |
| unzip | 6.0-25ubuntu1.2 |
| upx | 3.95-2build1 |
| wget | 1.20.3-1ubuntu2.1 |
| xorriso | 1.5.2-1 |
| xvfb | 2:1.20.13-1ubuntu1\~20.04.18 |
| xz-utils | 5.2.4-1ubuntu1.1 |
| zip | 3.0-11build1 |
| zsync | 0.6.2-3ubuntu1 |
+152 -154
View File
@@ -1,8 +1,8 @@
# Ubuntu 22.04
- OS Version: 22.04.5 LTS
- Kernel Version: 6.8.0-1031-azure
- Image Version: 20250818.1.0
- Systemd version: 249.11-0ubuntu3.16
- Kernel Version: 6.5.0-1025-azure
- Image Version: 20250209.1.0
- Systemd version: 249.11-0ubuntu3.12
## Installed Software
@@ -14,28 +14,28 @@
- Dash 0.5.11+git20210903+057cd650a4ed-3build1
- GNU C++: 10.5.0, 11.4.0, 12.3.0
- GNU Fortran: 10.5.0, 11.4.0, 12.3.0
- Julia 1.11.6
- Kotlin 2.2.10-release-430
- Julia 1.11.3
- Kotlin 2.1.10-release-473
- Mono 6.12.0.200
- MSBuild 16.10.1.31701 (Mono 6.12.0.200)
- Node.js 20.19.4
- Node.js 18.20.6
- Perl 5.34.0
- Python 3.10.12
- Ruby 3.0.2p107
- Swift 6.1.2
- Swift 6.0.3
### Package Management
- cpan 1.64
- Helm 3.18.5
- Homebrew 4.6.4
- Miniconda 25.5.1
- Helm 3.17.0
- Homebrew 4.4.20
- Miniconda 25.1.1
- Npm 10.8.2
- NuGet 6.6.1.2
- Pip 22.0.2
- Pip3 22.0.2
- Pipx 1.7.1
- RubyGems 3.3.5
- Vcpkg (build from commit ee0973d809)
- Vcpkg (build from commit 74ec888e38)
- Yarn 1.22.22
#### Environment variables
@@ -54,117 +54,116 @@ to accomplish this.
### Project Management
- Ant 1.10.12
- Gradle 9.0.0
- Lerna 8.2.3
- Maven 3.9.11
- Sbt 1.11.4
- Gradle 8.12.1
- Lerna 8.1.9
- Maven 3.9.9
- Sbt 1.10.7
### Tools
- Ansible 2.17.13
- Ansible 2.17.8
- apt-fast 1.10.0
- AzCopy 10.30.0 - available by `azcopy` and `azcopy10` aliases
- Bazel 8.3.1
- Bazelisk 1.26.0
- Bicep 0.37.4
- AzCopy 10.28.0 - available by `azcopy` and `azcopy10` aliases
- Bazel 8.0.1
- Bazelisk 1.25.0
- Bicep 0.33.93
- Buildah 1.23.1
- CMake 3.31.6
- CodeQL Action Bundle 2.22.3
- Docker Amazon ECR Credential Helper 0.10.1
- Docker Compose v2 2.38.2
- Docker-Buildx 0.26.1
- Docker Client 28.0.4
- Docker Server 28.0.4
- Fastlane 2.228.0
- Git 2.51.0
- Git LFS 3.7.0
- CMake 3.31.5
- CodeQL Action Bundle 2.20.1
- Docker Amazon ECR Credential Helper 0.9.0
- Docker Compose v2 2.27.1
- Docker-Buildx 0.20.1
- Docker Client 26.1.3
- Docker Server 26.1.3
- Fastlane 2.226.0
- Git 2.48.1
- Git LFS 3.6.1
- Git-ftp 1.6.0
- Haveged 1.9.14
- Heroku 10.12.0
- Heroku 10.1.0
- jq 1.6
- Kind 0.29.0
- Kubectl 1.33.4
- Kustomize 5.7.1
- Kind 0.26.0
- Kubectl 1.32.1
- Kustomize 5.6.0
- Leiningen 2.11.2
- MediaInfo 21.09
- Mercurial 6.1.1
- Minikube 1.36.0
- n 10.2.0
- Minikube 1.34.0
- n 10.1.0
- Newman 6.2.1
- nvm 0.40.3
- OpenSSL 3.0.2-0ubuntu1.19
- Packer 1.14.1
- Parcel 2.15.4
- nvm 0.40.1
- OpenSSL 3.0.2-0ubuntu1.18
- Packer 1.12.0
- Parcel 2.13.3
- Podman 3.4.4
- Pulumi 3.190.0
- R 4.5.1
- Pulumi 3.149.0
- R 4.4.2
- Skopeo 1.4.1
- Sphinx Open Source Search Server 2.2.11
- SVN 1.14.1
- Terraform 1.12.2
- yamllint 1.37.1
- yq 4.47.1
- zstd 1.5.7
- Ninja 1.13.1
- Terraform 1.10.5
- yamllint 1.35.1
- yq 4.45.1
- zstd 1.5.6
### CLI Tools
- Alibaba Cloud CLI 3.0.296
- AWS CLI 2.28.12
- Alibaba Cloud CLI 3.0.251
- AWS CLI 2.24.0
- AWS CLI Session Manager Plugin 1.2.707.0
- AWS SAM CLI 1.142.1
- Azure CLI 2.76.0
- Azure CLI (azure-devops) 1.0.2
- GitHub CLI 2.76.2
- Google Cloud CLI 534.0.0
- Netlify CLI 23.1.4
- OpenShift CLI 4.19.7
- ORAS CLI 1.2.3
- Vercel CLI 46.0.2
- AWS SAM CLI 1.133.0
- Azure CLI 2.68.0
- Azure CLI (azure-devops) 1.0.1
- GitHub CLI 2.66.1
- Google Cloud CLI 509.0.0
- Netlify CLI 18.0.4
- OpenShift CLI 4.17.15
- ORAS CLI 1.2.2
- Vercel CLI 41.0.2
### Java
| Version | Environment Variable |
| ------------------- | -------------------- |
| 8.0.462+8 | JAVA_HOME_8_X64 |
| 11.0.28+6 (default) | JAVA_HOME_11_X64 |
| 17.0.16+8 | JAVA_HOME_17_X64 |
| 21.0.8+9 | JAVA_HOME_21_X64 |
| 8.0.442+6 | JAVA_HOME_8_X64 |
| 11.0.26+4 (default) | JAVA_HOME_11_X64 |
| 17.0.14+7 | JAVA_HOME_17_X64 |
| 21.0.6+7 | JAVA_HOME_21_X64 |
### PHP Tools
- PHP: 8.1.2
- Composer 2.8.10
- PHPUnit 8.5.43
- Composer 2.8.5
- PHPUnit 8.5.41
```
Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled.
```
### Haskell Tools
- Cabal 3.16.0.0
- GHC 9.12.2
- GHCup 0.1.50.2
- Stack 3.7.1
- Cabal 3.14.1.1
- GHC 9.12.1
- GHCup 0.1.40.0
- Stack 3.3.1
### Rust Tools
- Cargo 1.89.0
- Rust 1.89.0
- Rustdoc 1.89.0
- Rustup 1.28.2
- Cargo 1.84.1
- Rust 1.84.1
- Rustdoc 1.84.1
- Rustup 1.27.1
#### Packages
- Bindgen 0.72.0
- Cargo audit 0.21.2
- Cargo clippy 0.1.89
- Cargo outdated 0.17.0
- Cbindgen 0.29.0
- Bindgen 0.71.1
- Cargo audit 0.21.1
- Cargo clippy 0.1.84
- Cargo outdated 0.16.0
- Cbindgen 0.28.0
- Rustfmt 1.8.0
### Browsers and Drivers
- Google Chrome 139.0.7258.127
- ChromeDriver 139.0.7258.68
- Chromium 139.0.7258.0
- Microsoft Edge 139.0.3405.102
- Microsoft Edge WebDriver 139.0.3405.102
- Selenium server 4.35.0
- Mozilla Firefox 141.0.3
- Geckodriver 0.36.0
- Google Chrome 133.0.6943.53
- ChromeDriver 133.0.6943.53
- Chromium 133.0.6943.0
- Microsoft Edge 132.0.2957.140
- Microsoft Edge WebDriver 132.0.2957.140
- Selenium server 4.28.1
- Mozilla Firefox 135.0
- Geckodriver 0.35.0
#### Environment variables
| Name | Value |
@@ -175,14 +174,14 @@ Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled.
| SELENIUM_JAR_PATH | /usr/share/java/selenium-server.jar |
### .NET Tools
- .NET Core SDK: 8.0.413, 9.0.203
- .NET Core SDK: 6.0.428, 8.0.405, 9.0.102
- nbgv 3.7.115+d31f50f4d1
### Databases
- sqlite3 3.37.2
#### PostgreSQL
- PostgreSQL 14.19
- PostgreSQL 14.15
```
User: postgres
PostgreSQL service is disabled by default.
@@ -190,7 +189,7 @@ Use the following command as a part of your job to start the service: 'sudo syst
```
#### MySQL
- MySQL 8.0.43-0ubuntu0.22.04.1
- MySQL 8.0.41-0ubuntu0.22.04.1
```
User: root
Password: root
@@ -200,49 +199,48 @@ Use the following command as a part of your job to start the service: 'sudo syst
#### MS SQL
- sqlcmd 17.10.0001.1
- SqlPackage 170.1.61.1
- SqlPackage 162.5.57.1
### Cached Tools
#### Go
- 1.21.13
- 1.22.12
- 1.23.12
- 1.24.6
- 1.23.6
#### Node.js
- 18.20.8
- 20.19.4
- 22.18.0
- 18.20.6
- 20.18.2
- 22.13.1
#### Python
- 3.9.23
- 3.10.18
- 3.11.13
- 3.12.11
- 3.13.7
- 3.8.18
- 3.9.21
- 3.10.16
- 3.11.11
- 3.12.9
- 3.13.2
#### PyPy
- 3.7.13 [PyPy 7.3.9]
- 3.8.16 [PyPy 7.3.11]
- 3.9.19 [PyPy 7.3.16]
- 3.10.16 [PyPy 7.3.19]
- 3.11.13 [PyPy 7.3.20]
- 3.10.16 [PyPy 7.3.18]
#### Ruby
- 3.1.7
- 3.2.9
- 3.3.9
- 3.4.5
- 3.1.6
- 3.2.7
- 3.3.7
### PowerShell Tools
- PowerShell 7.4.10
- PowerShell 7.4.7
#### PowerShell Modules
- Az: 12.5.0
- Az: 12.1.0
- MarkdownPS: 1.10
- Microsoft.Graph: 2.29.1
- Microsoft.Graph: 2.25.0
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.0
- PSScriptAnalyzer: 1.23.0
### Web Servers
| Name | Version | ConfigFile | ServiceStatus | ListenPort |
@@ -251,26 +249,26 @@ Use the following command as a part of your job to start the service: 'sudo syst
| nginx | 1.18.0 | /etc/nginx/nginx.conf | inactive | 80 |
### Android
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 9.0 |
| Android SDK Build-tools | 36.0.0<br>35.0.0 35.0.1<br>34.0.0<br>33.0.0 33.0.1 33.0.2 33.0.3<br>32.0.0<br>31.0.0 |
| Android SDK Platform-Tools | 36.0.0 |
| Android SDK Platforms | android-36-ext19 (rev 1)<br>android-36-ext18 (rev 1)<br>android-36 (rev 2)<br>android-35-ext15 (rev 1)<br>android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3)<br>android-32 (rev 1)<br>android-31 (rev 1) |
| Android Support Repository | 47.0.0 |
| CMake | 3.18.1<br>3.22.1<br>3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264<br>27.3.13750724 (default) |
| Package Name | Version |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 9.0 |
| Android SDK Build-tools | 35.0.0 35.0.1<br>34.0.0<br>33.0.0 33.0.1 33.0.2 33.0.3<br>32.0.0<br>31.0.0 |
| Android SDK Platform-Tools | 35.0.2 |
| Android SDK Platforms | android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3)<br>android-32 (rev 1)<br>android-31 (rev 1) |
| 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 | 26.3.11579264<br>27.2.12479018 (default) |
#### Environment variables
| Name | Value |
| ----------------------- | -------------------------------------------- |
| ANDROID_HOME | /usr/local/lib/android/sdk |
| ANDROID_NDK | /usr/local/lib/android/sdk/ndk/27.3.13750724 |
| ANDROID_NDK_HOME | /usr/local/lib/android/sdk/ndk/27.3.13750724 |
| ANDROID_NDK_LATEST_HOME | /usr/local/lib/android/sdk/ndk/27.3.13750724 |
| ANDROID_NDK_ROOT | /usr/local/lib/android/sdk/ndk/27.3.13750724 |
| ANDROID_NDK | /usr/local/lib/android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_HOME | /usr/local/lib/android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_LATEST_HOME | /usr/local/lib/android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_ROOT | /usr/local/lib/android/sdk/ndk/27.2.12479018 |
| ANDROID_SDK_ROOT | /usr/local/lib/android/sdk |
### Cached Docker images
@@ -278,19 +276,19 @@ Use the following command as a part of your job to start the service: 'sudo syst
| -------------------- | ------------------------------------------------------------------------ | ---------- |
| alpine:3.16 | sha256:452e7292acee0ee16c332324d7de05fa2c99f9994ecc9f0779c602916a672ae4 | 2024-01-27 |
| alpine:3.17 | sha256:8fc3dacfb6d69da8d44e42390de777e48577085db99aa4e4af35f483eb08b989 | 2024-09-06 |
| alpine:3.18 | sha256:de0eb0b3f2a47ba1eb89389859a9bd88b28e82f5826b6969ad604979713c2d4f | 2025-02-14 |
| alpine:3.19 | sha256:3be987e6cde1d07e873c012bf6cfe941e6e85d16ca5fc5b8bedc675451d2de67 | 2025-07-15 |
| alpine:3.18 | sha256:dd60c75fba961ecc5e918961c713f3c42dd5665171c58f9b2ef5aafe081ad5a0 | 2025-01-08 |
| alpine:3.19 | sha256:6380aa6b04faa579332d4c9d1f65bd7093012ba6e01d9bbcd5e2d8a4f9fae38f | 2025-01-08 |
| debian:10 | sha256:58ce6f1271ae1c8a2006ff7d3e54e9874d839f573d8009c20154ad0f2fb0a225 | 2024-06-13 |
| debian:11 | sha256:8ec25a9073e8cc89a184a6256e219828196d75203375a8ad4f0977f3011f2115 | 2025-08-11 |
| moby/buildkit:latest | sha256:ddd1ca44b21eda906e81ab14a3d467fa6c39cd73b9a39df1196210edcb8db59e | 2025-07-01 |
| node:18 | sha256:c6ae79e38498325db67193d391e6ec1d224d96c693a8a4d943498556716d3783 | 2025-03-27 |
| node:18-alpine | sha256:8d6421d663b4c28fd3ebc498332f249011d118945588d0a35cb9bc4b8ca09d9e | 2025-03-27 |
| node:20 | sha256:572a90df10a58ebb7d3f223d661d964a6c2383a9c2b5763162b4f631c53dc56a | 2025-07-15 |
| node:20-alpine | sha256:df02558528d3d3d0d621f112e232611aecfee7cbc654f6b375765f72bb262799 | 2025-07-15 |
| node:22 | sha256:3266bc9e8bee1acc8a77386eefaf574987d2729b8c5ec35b0dbd6ddbc40b0ce2 | 2025-08-01 |
| node:22-alpine | sha256:1b2479dd35a99687d6638f5976fd235e26c5b37e8122f786fcd5fe231d63de5b | 2025-08-01 |
| ubuntu:20.04 | sha256:8feb4d8ca5354def3d8fce243717141ce31e2c428701f6682bd2fafe15388214 | 2025-04-08 |
| ubuntu:22.04 | sha256:1aa979d85661c488ce030ac292876cf6ed04535d3a237e49f61542d8e5de5ae0 | 2025-07-30 |
| debian:11 | sha256:63904b1442dc0bb1e7a7a7065b3ba0d10d4e300f984115a40d371827fe4e3a85 | 2025-02-03 |
| moby/buildkit:latest | sha256:14aa1b4dd92ea0a4cd03a54d0c6079046ea98cd0c0ae6176bdd7036ba370cbbe | 2025-01-20 |
| node:18 | sha256:f12d34408955b2081f82078e8f96c3299ca0f38d11e76086cb9b9b1b669977e4 | 2025-01-22 |
| node:18-alpine | sha256:974afb6cbc0314dc6502b14243b8a39fbb2d04d975e9059dd066be3e274fbb25 | 2025-01-22 |
| node:20 | sha256:3496cba96d3548fc484a7febc77edebffcae693aff6a067bc34ec6d8c1f7affe | 2025-01-22 |
| node:20-alpine | sha256:2cd2a6f4cb37cf8a007d5f1e9aef090ade6b62974c7a274098c390599e8c72b4 | 2025-01-22 |
| node:22 | sha256:5145c882f9e32f07dd7593962045d97f221d57a1b609f5bf7a807eb89deff9d6 | 2025-01-22 |
| node:22-alpine | sha256:e2b39f7b64281324929257d0f8004fb6cb4bf0fdfb9aa8cedb235a766aec31da | 2025-01-22 |
| ubuntu:20.04 | sha256:8e5c4f0285ecbb4ead070431d29b576a530d3166df73ec44affc1cd27555141b | 2024-10-11 |
| ubuntu:22.04 | sha256:ed1544e454989078f5dec1bfdabd8c5cc9c48e0705d07b678ab6ae3fb61952d2 | 2025-01-26 |
### Installed apt packages
| Name | Version |
@@ -299,7 +297,7 @@ Use the following command as a part of your job to start the service: 'sudo syst
| aria2 | 1.36.0-1 |
| autoconf | 2.71-2 |
| automake | 1:1.16.5-1.3 |
| binutils | 2.38-4ubuntu2.8 |
| binutils | 2.38-4ubuntu2.6 |
| bison | 2:3.8.2+dfsg-1build1 |
| brotli | 1.0.9-2build6 |
| bzip2 | 1.0.8-5build1 |
@@ -313,20 +311,20 @@ Use the following command as a part of your job to start the service: 'sudo syst
| file | 1:5.41-3ubuntu0.1 |
| findutils | 4.8.0-1ubuntu3 |
| flex | 2.6.4-8build2 |
| fonts-noto-color-emoji | 2.047-0ubuntu0.22.04.1 |
| fonts-noto-color-emoji | 2.042-0ubuntu0.22.04.1 |
| ftp | 20210827-4build1 |
| g++ | 4:11.2.0-1ubuntu1 |
| gcc | 4:11.2.0-1ubuntu1 |
| gnupg2 | 2.2.27-3ubuntu2.4 |
| gnupg2 | 2.2.27-3ubuntu2.1 |
| haveged | 1.9.14-1ubuntu1 |
| imagemagick | 8:6.9.11.60+dfsg-1.3ubuntu0.22.04.5 |
| iproute2 | 5.15.0-1ubuntu2 |
| iputils-ping | 3:20211215-1ubuntu0.1 |
| jq | 1.6-2.1ubuntu3.1 |
| iputils-ping | 3:20211215-1 |
| jq | 1.6-2.1ubuntu3 |
| lib32z1 | 1:1.2.11.dfsg-2ubuntu9.2 |
| libc++-dev | 1:14.0-55\~exp2 |
| libc++abi-dev | 1:14.0-55\~exp2 |
| libc6-dev | 2.35-0ubuntu3.10 |
| libc6-dev | 2.35-0ubuntu3.9 |
| libcurl4 | 7.81.0-1ubuntu1.20 |
| libgbm-dev | 23.2.1-1ubuntu3.1\~22.04.3 |
| libgconf-2-4 | 3.2.6-7ubuntu2 |
@@ -336,22 +334,22 @@ Use the following command as a part of your job to start the service: 'sudo syst
| libmagickcore-dev | 8:6.9.11.60+dfsg-1.3ubuntu0.22.04.5 |
| libmagickwand-dev | 8:6.9.11.60+dfsg-1.3ubuntu0.22.04.5 |
| libsecret-1-dev | 0.20.5-2 |
| libsqlite3-dev | 3.37.2-2ubuntu0.5 |
| libssl-dev | 3.0.2-0ubuntu1.19 |
| libsqlite3-dev | 3.37.2-2ubuntu0.3 |
| libssl-dev | 3.0.2-0ubuntu1.18 |
| libtool | 2.4.6-15build2 |
| libunwind8 | 1.3.2-2build2.1 |
| libxkbfile-dev | 1:1.1.0-1build3 |
| libxss1 | 1:1.2.3-1build2 |
| libyaml-dev | 0.2.2-1build2 |
| locales | 2.35-0ubuntu3.10 |
| locales | 2.35-0ubuntu3.9 |
| lz4 | 1.9.3-2build2 |
| m4 | 1.4.18-5ubuntu2 |
| make | 4.3-4.1build1 |
| mediainfo | 22.03-1 |
| mercurial | 6.1.1-1ubuntu1 |
| net-tools | 1.60+git20181103.0eebece-1ubuntu5.4 |
| net-tools | 1.60+git20181103.0eebece-1ubuntu5 |
| netcat | 1.218-4ubuntu1 |
| openssh-client | 1:8.9p1-3ubuntu0.13 |
| openssh-client | 1:8.9p1-3ubuntu0.10 |
| p7zip-full | 16.02+dfsg-8 |
| p7zip-rar | 16.02-3build1 |
| parallel | 20210822+ds-2 |
@@ -359,30 +357,30 @@ Use the following command as a part of your job to start the service: 'sudo syst
| patchelf | 0.14.3-1 |
| pigz | 2.6-1 |
| pkg-config | 0.29.2-1ubuntu3 |
| pollinate | 4.33-3ubuntu2.1 |
| pollinate | 4.33-3ubuntu2 |
| python-is-python3 | 3.9.2-2 |
| rpm | 4.17.0+dfsg1-4build1 |
| rsync | 3.2.7-0ubuntu0.22.04.4 |
| shellcheck | 0.8.0-2 |
| sphinxsearch | 2.2.11-8 |
| sqlite3 | 3.37.2-2ubuntu0.5 |
| ssh | 1:8.9p1-3ubuntu0.13 |
| sqlite3 | 3.37.2-2ubuntu0.3 |
| ssh | 1:8.9p1-3ubuntu0.10 |
| sshpass | 1.09-1 |
| subversion | 1.14.1-3ubuntu0.22.04.1 |
| sudo | 1.9.9-1ubuntu2.5 |
| sudo | 1.9.9-1ubuntu2.4 |
| swig | 4.0.2-1ubuntu1 |
| systemd-coredump | 249.11-0ubuntu3.16 |
| systemd-coredump | 249.11-0ubuntu3.12 |
| tar | 1.34+dfsg-1ubuntu0.1.22.04.2 |
| telnet | 0.17-44build1 |
| texinfo | 6.8-4build1 |
| time | 1.9-0.1build2 |
| tk | 8.6.11+1build2 |
| tzdata | 2025b-0ubuntu0.22.04.1 |
| tzdata | 2024b-0ubuntu0.22.04 |
| unzip | 6.0-26ubuntu3.2 |
| upx | 3.96-3 |
| wget | 1.21.2-2ubuntu1.1 |
| xorriso | 1.5.4-2 |
| xvfb | 2:21.1.4-2ubuntu1.7\~22.04.15 |
| xvfb | 2:21.1.4-2ubuntu1.7\~22.04.12 |
| xz-utils | 5.2.5-2ubuntu1 |
| zip | 3.0-12build2 |
| zsync | 0.6.2-3ubuntu1 |
+179 -183
View File
@@ -1,8 +1,8 @@
# Ubuntu 24.04
- OS Version: 24.04.2 LTS
- Kernel Version: 6.11.0-1018-azure
- Image Version: 20250818.1.0
- Systemd version: 255.4-1ubuntu8.10
- OS Version: 24.04.1 LTS
- Kernel Version: 6.8.0-1021-azure
- Image Version: 20250209.1.0
- Systemd version: 255.4-1ubuntu8.5
## Installed Software
@@ -14,25 +14,25 @@
- Dash 0.5.12-6ubuntu5
- GNU C++: 12.3.0, 13.3.0, 14.2.0
- GNU Fortran: 12.3.0, 13.3.0, 14.2.0
- Julia 1.11.6
- Kotlin 2.2.10-release-430
- Node.js 20.19.4
- Julia 1.11.3
- Kotlin 2.1.10-release-473
- Node.js 20.18.2
- Perl 5.38.2
- Python 3.12.3
- Ruby 3.2.3
- Swift 6.1.2
- Swift 6.0.3
### Package Management
- cpan 1.64
- Helm 3.18.5
- Homebrew 4.6.4
- Miniconda 25.5.1
- Helm 3.17.0
- Homebrew 4.4.20
- Miniconda 25.1.1
- Npm 10.8.2
- Pip 24.0
- Pip3 24.0
- Pipx 1.7.1
- RubyGems 3.4.20
- Vcpkg (build from commit ee0973d809)
- Vcpkg (build from commit 74ec888e38)
- Yarn 1.22.22
#### Environment variables
@@ -51,100 +51,99 @@ to accomplish this.
### Project Management
- Ant 1.10.14
- Gradle 9.0.0
- Lerna 8.2.3
- Maven 3.9.11
- Gradle 8.12.1
- Lerna 8.1.9
- Maven 3.9.9
### Tools
- Ansible 2.18.8
- AzCopy 10.30.0 - available by `azcopy` and `azcopy10` aliases
- Bazel 8.3.1
- Bazelisk 1.26.0
- Bicep 0.37.4
- Ansible 2.18.2
- AzCopy 10.28.0 - available by `azcopy` and `azcopy10` aliases
- Bazel 8.0.1
- Bazelisk 1.25.0
- Bicep 0.33.93
- Buildah 1.33.7
- CMake 3.31.6
- CodeQL Action Bundle 2.22.3
- Docker Amazon ECR Credential Helper 0.10.1
- Docker Compose v2 2.38.2
- Docker-Buildx 0.26.1
- Docker Client 28.0.4
- Docker Server 28.0.4
- Fastlane 2.228.0
- Git 2.51.0
- Git LFS 3.7.0
- CMake 3.31.5
- CodeQL Action Bundle 2.20.1
- Docker Amazon ECR Credential Helper 0.9.0
- Docker Compose v2 2.27.1
- Docker-Buildx 0.20.1
- Docker Client 26.1.3
- Docker Server 26.1.3
- Fastlane 2.226.0
- Git 2.48.1
- Git LFS 3.6.1
- Git-ftp 1.6.0
- Haveged 1.9.14
- jq 1.7
- Kind 0.29.0
- Kubectl 1.33.4
- Kustomize 5.7.1
- Kind 0.26.0
- Kubectl 1.32.1
- Kustomize 5.6.0
- MediaInfo 24.01
- Mercurial 6.7.2
- Minikube 1.36.0
- n 10.2.0
- Minikube 1.34.0
- n 10.1.0
- Newman 6.2.1
- nvm 0.40.3
- OpenSSL 3.0.13-0ubuntu3.5
- Packer 1.14.1
- Parcel 2.15.4
- nvm 0.40.1
- OpenSSL 3.0.13-0ubuntu3.4
- Packer 1.12.0
- Parcel 2.13.3
- Podman 4.9.3
- Pulumi 3.190.0
- Pulumi 3.149.0
- Skopeo 1.13.3
- Sphinx Open Source Search Server 2.2.11
- yamllint 1.37.1
- yq 4.47.1
- zstd 1.5.7
- Ninja 1.13.1
- yamllint 1.35.1
- yq 4.45.1
- zstd 1.5.6
### CLI Tools
- AWS CLI 2.28.12
- AWS CLI 2.24.0
- AWS CLI Session Manager Plugin 1.2.707.0
- AWS SAM CLI 1.142.1
- Azure CLI 2.76.0
- Azure CLI (azure-devops) 1.0.2
- GitHub CLI 2.76.2
- Google Cloud CLI 534.0.0
- AWS SAM CLI 1.133.0
- Azure CLI 2.68.0
- Azure CLI (azure-devops) 1.0.1
- GitHub CLI 2.66.1
- Google Cloud CLI 509.0.0
### Java
| Version | Environment Variable |
| ------------------- | -------------------- |
| 8.0.462+8 | JAVA_HOME_8_X64 |
| 11.0.28+6 | JAVA_HOME_11_X64 |
| 17.0.16+8 (default) | JAVA_HOME_17_X64 |
| 21.0.8+9 | JAVA_HOME_21_X64 |
| 8.0.442+6 | JAVA_HOME_8_X64 |
| 11.0.26+4 | JAVA_HOME_11_X64 |
| 17.0.14+7 (default) | JAVA_HOME_17_X64 |
| 21.0.6+7 | JAVA_HOME_21_X64 |
### PHP Tools
- PHP: 8.3.6
- Composer 2.8.10
- PHPUnit 8.5.43
- Composer 2.8.5
- PHPUnit 8.5.41
```
Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled.
```
### Haskell Tools
- Cabal 3.16.0.0
- GHC 9.12.2
- GHCup 0.1.50.2
- Stack 3.7.1
- Cabal 3.14.1.1
- GHC 9.12.1
- GHCup 0.1.40.0
- Stack 3.3.1
### Rust Tools
- Cargo 1.89.0
- Rust 1.89.0
- Rustdoc 1.89.0
- Rustup 1.28.2
- Cargo 1.84.1
- Rust 1.84.1
- Rustdoc 1.84.1
- Rustup 1.27.1
#### Packages
- Rustfmt 1.8.0
### Browsers and Drivers
- Google Chrome 139.0.7258.127
- ChromeDriver 139.0.7258.68
- Chromium 139.0.7258.0
- Microsoft Edge 139.0.3405.102
- Microsoft Edge WebDriver 139.0.3405.102
- Selenium server 4.35.0
- Mozilla Firefox 141.0.3
- Geckodriver 0.36.0
- Google Chrome 133.0.6943.53
- ChromeDriver 133.0.6943.53
- Chromium 133.0.6943.0
- Microsoft Edge 132.0.2957.140
- Microsoft Edge WebDriver 132.0.2957.140
- Selenium server 4.28.1
- Mozilla Firefox 135.0
- Geckodriver 0.35.0
#### Environment variables
| Name | Value |
@@ -155,14 +154,14 @@ Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled.
| SELENIUM_JAR_PATH | /usr/share/java/selenium-server.jar |
### .NET Tools
- .NET Core SDK: 8.0.119
- .NET Core SDK: 8.0.112
- nbgv 3.7.115+d31f50f4d1
### Databases
- sqlite3 3.45.1
#### PostgreSQL
- PostgreSQL 16.10
- PostgreSQL 16.6
```
User: postgres
PostgreSQL service is disabled by default.
@@ -170,7 +169,7 @@ Use the following command as a part of your job to start the service: 'sudo syst
```
#### MySQL
- MySQL 8.0.43-0ubuntu0.24.04.1
- MySQL 8.0.41-0ubuntu0.24.04.1
```
User: root
Password: root
@@ -181,40 +180,38 @@ Use the following command as a part of your job to start the service: 'sudo syst
### Cached Tools
#### Go
- 1.21.13
- 1.22.12
- 1.23.12
- 1.24.6
- 1.23.6
#### Node.js
- 18.20.8
- 20.19.4
- 22.18.0
- 18.20.6
- 20.18.2
- 22.13.1
#### Python
- 3.9.23
- 3.10.18
- 3.11.13
- 3.12.11
- 3.13.7
- 3.9.21
- 3.10.16
- 3.11.11
- 3.12.9
- 3.13.2
#### PyPy
- 3.9.19 [PyPy 7.3.16]
- 3.10.16 [PyPy 7.3.19]
- 3.11.13 [PyPy 7.3.20]
- 3.10.16 [PyPy 7.3.18]
#### Ruby
- 3.2.9
- 3.3.9
- 3.4.5
- 3.2.7
- 3.3.7
### PowerShell Tools
- PowerShell 7.4.10
- PowerShell 7.4.7
#### PowerShell Modules
- Az: 12.5.0
- Microsoft.Graph: 2.29.1
- Az: 12.1.0
- Microsoft.Graph: 2.25.0
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.0
- PSScriptAnalyzer: 1.23.0
### Web Servers
| Name | Version | ConfigFile | ServiceStatus | ListenPort |
@@ -223,100 +220,99 @@ Use the following command as a part of your job to start the service: 'sudo syst
| nginx | 1.24.0 | /etc/nginx/nginx.conf | inactive | 80 |
### Android
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 12.0 |
| Android SDK Build-tools | 36.0.0<br>35.0.0 35.0.1<br>34.0.0 |
| Android SDK Platform-Tools | 36.0.0 |
| Android SDK Platforms | android-36-ext19 (rev 1)<br>android-36-ext18 (rev 1)<br>android-36 (rev 2)<br>android-35-ext15 (rev 1)<br>android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1) |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264<br>27.3.13750724 (default)<br>28.2.13676358 |
| Package Name | Version |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 12.0 |
| Android SDK Build-tools | 35.0.0 35.0.1<br>34.0.0 |
| Android SDK Platform-Tools | 35.0.2 |
| Android SDK Platforms | android-35-ext14 (rev 1)<br>android-35 (rev 2)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1) |
| Android Support Repository | 47.0.0 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264<br>27.2.12479018 (default) |
#### Environment variables
| Name | Value |
| ----------------------- | -------------------------------------------- |
| ANDROID_HOME | /usr/local/lib/android/sdk |
| ANDROID_NDK | /usr/local/lib/android/sdk/ndk/27.3.13750724 |
| ANDROID_NDK_HOME | /usr/local/lib/android/sdk/ndk/27.3.13750724 |
| ANDROID_NDK_LATEST_HOME | /usr/local/lib/android/sdk/ndk/28.2.13676358 |
| ANDROID_NDK_ROOT | /usr/local/lib/android/sdk/ndk/27.3.13750724 |
| ANDROID_NDK | /usr/local/lib/android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_HOME | /usr/local/lib/android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_LATEST_HOME | /usr/local/lib/android/sdk/ndk/27.2.12479018 |
| ANDROID_NDK_ROOT | /usr/local/lib/android/sdk/ndk/27.2.12479018 |
| ANDROID_SDK_ROOT | /usr/local/lib/android/sdk |
### Installed apt packages
| Name | Version |
| ---------------------- | ---------------------------- |
| acl | 2.3.2-1build1.1 |
| aria2 | 1.37.0+debian-1build3 |
| autoconf | 2.71-3 |
| automake | 1:1.16.5-1.3ubuntu1 |
| binutils | 2.42-4ubuntu2.5 |
| bison | 2:3.8.2+dfsg-1build2 |
| brotli | 1.1.0-2build2 |
| bzip2 | 1.0.8-5.1build0.1 |
| coreutils | 9.4-3ubuntu6 |
| curl | 8.5.0-2ubuntu10.6 |
| dbus | 1.14.10-4ubuntu4.1 |
| dnsutils | 1:9.18.30-0ubuntu0.24.04.2 |
| dpkg | 1.22.6ubuntu6.1 |
| dpkg-dev | 1.22.6ubuntu6.1 |
| fakeroot | 1.33-1 |
| file | 1:5.45-3build1 |
| findutils | 4.9.0-5build1 |
| flex | 2.6.4-8.2build1 |
| fonts-noto-color-emoji | 2.047-0ubuntu0.24.04.1 |
| ftp | 20230507-2build3 |
| g++ | 4:13.2.0-7ubuntu1 |
| gcc | 4:13.2.0-7ubuntu1 |
| gnupg2 | 2.4.4-2ubuntu17.3 |
| haveged | 1.9.14-1ubuntu2 |
| iproute2 | 6.1.0-1ubuntu6.2 |
| iputils-ping | 3:20240117-1ubuntu0.1 |
| jq | 1.7.1-3ubuntu0.24.04.1 |
| libsqlite3-dev | 3.45.1-1ubuntu2.4 |
| libssl-dev | 3.0.13-0ubuntu3.5 |
| libtool | 2.4.7-7build1 |
| libyaml-dev | 0.2.5-1build1 |
| locales | 2.39-0ubuntu8.5 |
| lz4 | 1.9.4-1build1.1 |
| m4 | 1.4.19-4build1 |
| make | 4.3-4.1build2 |
| mediainfo | 24.01.1-1build2 |
| mercurial | 6.7.2-1ubuntu2.2 |
| net-tools | 2.10-0.1ubuntu4.4 |
| netcat | 1.226-1ubuntu2 |
| openssh-client | 1:9.6p1-3ubuntu13.13 |
| p7zip-full | 16.02+transitional.1 |
| p7zip-rar | 16.02+transitional.1 |
| parallel | 20231122+ds-1 |
| patchelf | 0.18.0-1.1build1 |
| pigz | 2.8-1 |
| pkg-config | 1.8.1-2build1 |
| pollinate | 4.33-3.1ubuntu1.1 |
| python-is-python3 | 3.11.4-1 |
| rpm | 4.18.2+dfsg-2.1build2 |
| rsync | 3.2.7-1ubuntu1.2 |
| shellcheck | 0.9.0-1 |
| sphinxsearch | 2.2.11-8build1 |
| sqlite3 | 3.45.1-1ubuntu2.4 |
| ssh | 1:9.6p1-3ubuntu13.13 |
| sshpass | 1.09-1 |
| sudo | 1.9.15p5-3ubuntu5.24.04.1 |
| swig | 4.2.0-2ubuntu1 |
| systemd-coredump | 255.4-1ubuntu8.10 |
| tar | 1.35+dfsg-3build1 |
| telnet | 0.17+2.5-3ubuntu4 |
| texinfo | 7.1-3build2 |
| time | 1.9-0.2build1 |
| tk | 8.6.14build1 |
| tree | 2.1.1-2ubuntu3 |
| tzdata | 2025b-0ubuntu0.24.04.1 |
| unzip | 6.0-28ubuntu4.1 |
| upx | 4.2.2-3 |
| wget | 1.21.4-1ubuntu4.1 |
| xvfb | 2:21.1.12-1ubuntu1.4 |
| xz-utils | 5.6.1+really5.4.5-1ubuntu0.2 |
| zip | 3.0-13ubuntu0.2 |
| zsync | 0.6.2-5build1 |
| Name | Version |
| ---------------------- | --------------------------- |
| acl | 2.3.2-1build1.1 |
| aria2 | 1.37.0+debian-1build3 |
| autoconf | 2.71-3 |
| automake | 1:1.16.5-1.3ubuntu1 |
| binutils | 2.42-4ubuntu2.3 |
| bison | 2:3.8.2+dfsg-1build2 |
| brotli | 1.1.0-2build2 |
| bzip2 | 1.0.8-5.1build0.1 |
| coreutils | 9.4-3ubuntu6 |
| curl | 8.5.0-2ubuntu10.6 |
| dbus | 1.14.10-4ubuntu4.1 |
| dnsutils | 1:9.18.30-0ubuntu0.24.04.2 |
| dpkg | 1.22.6ubuntu6.1 |
| dpkg-dev | 1.22.6ubuntu6.1 |
| fakeroot | 1.33-1 |
| file | 1:5.45-3build1 |
| findutils | 4.9.0-5build1 |
| flex | 2.6.4-8.2build1 |
| fonts-noto-color-emoji | 2.042-1 |
| ftp | 20230507-2build3 |
| g++ | 4:13.2.0-7ubuntu1 |
| gcc | 4:13.2.0-7ubuntu1 |
| gnupg2 | 2.4.4-2ubuntu17 |
| haveged | 1.9.14-1ubuntu2 |
| iproute2 | 6.1.0-1ubuntu6 |
| iputils-ping | 3:20240117-1build1 |
| jq | 1.7.1-3build1 |
| libsqlite3-dev | 3.45.1-1ubuntu2.1 |
| libssl-dev | 3.0.13-0ubuntu3.4 |
| libtool | 2.4.7-7build1 |
| libyaml-dev | 0.2.5-1build1 |
| locales | 2.39-0ubuntu8.4 |
| lz4 | 1.9.4-1build1.1 |
| m4 | 1.4.19-4build1 |
| make | 4.3-4.1build2 |
| mediainfo | 24.01.1-1build2 |
| mercurial | 6.7.2-1ubuntu2.2 |
| net-tools | 2.10-0.1ubuntu4 |
| netcat | 1.226-1ubuntu2 |
| openssh-client | 1:9.6p1-3ubuntu13.5 |
| p7zip-full | 16.02+transitional.1 |
| p7zip-rar | 16.02+transitional.1 |
| parallel | 20231122+ds-1 |
| patchelf | 0.18.0-1.1build1 |
| pigz | 2.8-1 |
| pkg-config | 1.8.1-2build1 |
| pollinate | 4.33-3.1ubuntu1 |
| python-is-python3 | 3.11.4-1 |
| rpm | 4.18.2+dfsg-2.1build2 |
| rsync | 3.2.7-1ubuntu1.2 |
| shellcheck | 0.9.0-1 |
| sphinxsearch | 2.2.11-8build1 |
| sqlite3 | 3.45.1-1ubuntu2.1 |
| ssh | 1:9.6p1-3ubuntu13.5 |
| sshpass | 1.09-1 |
| sudo | 1.9.15p5-3ubuntu5 |
| swig | 4.2.0-2ubuntu1 |
| systemd-coredump | 255.4-1ubuntu8.5 |
| tar | 1.35+dfsg-3build1 |
| telnet | 0.17+2.5-3ubuntu4 |
| texinfo | 7.1-3build2 |
| time | 1.9-0.2build1 |
| tk | 8.6.14build1 |
| tree | 2.1.1-2ubuntu3 |
| tzdata | 2024b-0ubuntu0.24.04.1 |
| unzip | 6.0-28ubuntu4.1 |
| upx | 4.2.2-3 |
| wget | 1.21.4-1ubuntu4.1 |
| xvfb | 2:21.1.12-1ubuntu1.1 |
| xz-utils | 5.6.1+really5.4.5-1build0.1 |
| zip | 3.0-13ubuntu0.2 |
| zsync | 0.6.2-5build1 |
+2
View File
@@ -0,0 +1,2 @@
# Name of pool supported by this image
POOL_NAME="Ubuntu 2004"
@@ -9,16 +9,16 @@ source $HELPER_SCRIPTS/os.sh
touch /etc/apt/apt-mirrors.txt
printf "http://azure.archive.ubuntu.com/ubuntu/\tpriority:1\n" | tee -a /etc/apt/apt-mirrors.txt
printf "https://archive.ubuntu.com/ubuntu/\tpriority:2\n" | tee -a /etc/apt/apt-mirrors.txt
printf "https://security.ubuntu.com/ubuntu/\tpriority:3\n" | tee -a /etc/apt/apt-mirrors.txt
printf "http://archive.ubuntu.com/ubuntu/\tpriority:2\n" | tee -a /etc/apt/apt-mirrors.txt
printf "http://security.ubuntu.com/ubuntu/\tpriority:3\n" | tee -a /etc/apt/apt-mirrors.txt
if is_ubuntu24; then
sed -i 's|http://azure\.archive\.ubuntu\.com/ubuntu/|mirror+file:/etc/apt/apt-mirrors.txt|' /etc/apt/sources.list.d/ubuntu.sources
sed -i 's/http:\/\/azure.archive.ubuntu.com\/ubuntu\//mirror+file:\/etc\/apt\/apt-mirrors.txt/' /etc/apt/sources.list.d/ubuntu.sources
# Apt changes to survive Cloud Init
cp -f /etc/apt/sources.list.d/ubuntu.sources /etc/cloud/templates/sources.list.ubuntu.deb822.tmpl
else
sed -i 's|http://azure\.archive\.ubuntu\.com/ubuntu/|mirror+file:/etc/apt/apt-mirrors.txt|' /etc/apt/sources.list
sed -i 's/http:\/\/azure.archive.ubuntu.com\/ubuntu\//mirror+file:\/etc\/apt\/apt-mirrors.txt/' /etc/apt/sources.list
# Apt changes to survive Cloud Init
cp -f /etc/apt/sources.list /etc/cloud/templates/sources.list.ubuntu.tmpl
@@ -31,8 +31,6 @@ echo 'APT::Get::Always-Include-Phased-Updates "true";' > /etc/apt/apt.conf.d/99-
cat <<EOF >> /etc/apt/apt.conf.d/99bad_proxy
Acquire::http::Pipeline-Depth 0;
Acquire::http::No-Cache true;
Acquire::https::Pipeline-Depth 0;
Acquire::https::No-Cache true;
Acquire::BrokenProxy true;
EOF
@@ -33,10 +33,6 @@ EOF
# Install libicu70 package for Ubuntu 24
if is_ubuntu24 ; then
wget https://archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu70_70.1-2_amd64.deb
EXPECTED_LIBICU_SHA512="a6315482d93606e375c272718d2458870b95e4ed4b672ea8640cf7bc2d2c2f41aea13b798b1e417e1ffc472a90c6aad150d3d293aa9bddec48e39106e4042807"
ACTUAL_LIBICU_SHA512="$(sha512sum "./libicu70_70.1-2_amd64.deb" | awk '{print $1}')"
[ "$EXPECTED_LIBICU_SHA512" = "$ACTUAL_LIBICU_SHA512" ] || { echo "libicu checksum mismatch in configure-dpkg.sh"; exit 1;}
wget http://archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu70_70.1-2_amd64.deb
sudo apt-get install -y ./libicu70_70.1-2_amd64.deb
fi
@@ -59,18 +59,9 @@ ln -s $HELPER_SCRIPTS/invoke-tests.sh /usr/local/bin/invoke_tests
# Disable motd updates metadata
sed -i 's/ENABLED=1/ENABLED=0/g' /etc/default/motd-news
# Remove fwupd if installed. We're running on VMs in Azure and the fwupd package is not needed.
# Leaving it enable means periodic refreshes show in network traffic and firewall logs
# Check if fwupd-refresh.timer exists in systemd
if systemctl list-unit-files fwupd-refresh.timer &>/dev/null; then
echo "Masking fwupd-refresh.timer..."
systemctl mask fwupd-refresh.timer
fi
# This is a legacy check, leaving for earlier versions of Ubuntu
# If fwupd config still exists, disable the motd updates
if [[ -f "/etc/fwupd/daemon.conf" ]]; then
sed -i 's/UpdateMotd=true/UpdateMotd=false/g' /etc/fwupd/daemon.conf
systemctl mask fwupd-refresh.timer
fi
# Disable to load providers
@@ -10,14 +10,23 @@ source $HELPER_SCRIPTS/os.sh
source $HELPER_SCRIPTS/install.sh
# Install Alibaba Cloud CLI
download_url=$(resolve_github_release_asset_url "aliyun/aliyun-cli" "contains(\"aliyun-cli-linux\") and endswith(\"amd64.tgz\")" "latest")
hash_url="https://github.com/aliyun/aliyun-cli/releases/latest/download/SHASUMS256.txt"
# Pin tool version on ubuntu20 due to issues with GLIBC_2.32 not available
if is_ubuntu20; then
toolset_version=$(get_toolset_value '.aliyunCli.version')
download_url="https://github.com/aliyun/aliyun-cli/releases/download/v$toolset_version/aliyun-cli-linux-$toolset_version-amd64.tgz"
else
download_url=$(resolve_github_release_asset_url "aliyun/aliyun-cli" "contains(\"aliyun-cli-linux\") and endswith(\"amd64.tgz\")" "latest")
hash_url="https://github.com/aliyun/aliyun-cli/releases/latest/download/SHASUMS256.txt"
fi
archive_path=$(download_with_retry "$download_url")
# Supply chain security - Alibaba Cloud CLI
external_hash=$(get_checksum_from_url "$hash_url" "aliyun-cli-linux.*amd64.tgz" "SHA256")
if is_ubuntu20; then
external_hash=$(get_toolset_value '.aliyunCli.sha256')
else
external_hash=$(get_checksum_from_url "$hash_url" "aliyun-cli-linux.*amd64.tgz" "SHA256")
fi
use_checksum_comparison "$archive_path" "$external_hash"
+2 -2
View File
@@ -14,11 +14,11 @@ if command -v cmake; then
echo "cmake is already installed"
else
# Download script to install CMake
download_url=$(resolve_github_release_asset_url "Kitware/CMake" "endswith(\"inux-x86_64.sh\")" "3.31.6")
download_url=$(resolve_github_release_asset_url "Kitware/CMake" "endswith(\"inux-x86_64.sh\")" "latest")
curl -fsSL "${download_url}" -o cmakeinstall.sh
# Supply chain security - CMake
hash_url=$(resolve_github_release_asset_url "Kitware/CMake" "endswith(\"SHA-256.txt\")" "3.31.6")
hash_url=$(resolve_github_release_asset_url "Kitware/CMake" "endswith(\"SHA-256.txt\")" "latest")
external_hash=$(get_checksum_from_url "$hash_url" "linux-x86_64.sh" "SHA256")
use_checksum_comparison "cmakeinstall.sh" "$external_hash"
@@ -7,30 +7,15 @@
# Source the helpers for use with the script
source $HELPER_SCRIPTS/install.sh
# Retrieve the latest major version of the CodeQL Action to use in the base URL for downloading the bundle.
releases=$(curl -s "https://api.github.com/repos/github/codeql-action/releases")
# Get the release tags starting with v[0-9] and sort them in descending order, then parse the first one to get the major version.
codeql_action_latest_major_version=$(echo "$releases" |
jq -r '.[].tag_name' |
grep -E '^v[0-9]' |
sort -nr |
head -n 1 |
sed -E 's/^v([0-9]+).*/\1/')
if [ -z "$codeql_action_latest_major_version" ]; then
echo "Error: Unable to find the latest major version of the CodeQL Action."
exit 1
fi
# Retrieve the CLI version of the latest CodeQL bundle.
base_url="$(curl -fsSL https://raw.githubusercontent.com/github/codeql-action/v"$codeql_action_latest_major_version"/src/defaults.json)"
base_url="$(curl -fsSL https://raw.githubusercontent.com/github/codeql-action/v2/src/defaults.json)"
bundle_version="$(echo "$base_url" | jq -r '.cliVersion')"
bundle_tag_name="codeql-bundle-v$bundle_version"
echo "Downloading CodeQL bundle $bundle_version..."
# Note that this is the all-platforms CodeQL bundle, to support scenarios where customers run
# different operating systems within containers.
codeql_archive=$(download_with_retry "https://github.com/github/codeql-action/releases/download/$bundle_tag_name/codeql-bundle-linux64.tar.gz")
codeql_archive=$(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"
@@ -17,11 +17,14 @@ else
install_packages=(podman=3.4.4+ds1-1ubuntu1 buildah skopeo)
fi
# Packages is available in the official Ubuntu upstream starting from Ubuntu 21
if is_ubuntu20; then
REPO_URL="https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_$(lsb_release -rs)"
GPG_KEY="/usr/share/keyrings/devel_kubic_libcontainers_stable.gpg"
REPO_PATH="/etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"
if is_ubuntu22; then
# Install containernetworking-plugins for Ubuntu 22
curl -O http://archive.ubuntu.com/ubuntu/pool/universe/g/golang-github-containernetworking-plugins/containernetworking-plugins_1.1.1+ds1-3build1_amd64.deb
dpkg -i containernetworking-plugins_1.1.1+ds1-3build1_amd64.deb
curl -fsSL "${REPO_URL}/Release.key" | gpg --dearmor -o $GPG_KEY
echo "deb [arch=amd64 signed-by=$GPG_KEY] ${REPO_URL}/ /" > $REPO_PATH
fi
# Install podman, buildah, skopeo container's tools
@@ -30,4 +33,13 @@ apt-get install ${install_packages[@]}
mkdir -p /etc/containers
printf "[registries.search]\nregistries = ['docker.io', 'quay.io']\n" | tee /etc/containers/registries.conf
if is_ubuntu20; then
# Remove source repo
rm $GPG_KEY
rm $REPO_PATH
# Document source repo
echo "containers $REPO_URL" >> $HELPER_SCRIPTS/apt-sources.txt
fi
invoke_tests "Tools" "Containers"
@@ -0,0 +1,29 @@
#!/bin/bash -e
################################################################################
## File: install-erlang.sh
## Desc: Install erlang and rebar3
################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/install.sh
source_list=/etc/apt/sources.list.d/eslerlang.list
source_key=/usr/share/keyrings/eslerlang.gpg
# Install Erlang
wget -q -O - https://binaries2.erlang-solutions.com/GPG-KEY-pmanager.asc | gpg --dearmor > $source_key
echo "deb [signed-by=$source_key] http://binaries2.erlang-solutions.com/ubuntu $(lsb_release -cs)-esl-erlang-25 contrib" > $source_list
apt-get update
apt-get install --no-install-recommends esl-erlang
# Install rebar3
rebar3_url=$(resolve_github_release_asset_url "erlang/rebar3" "endswith(\"rebar3\")" "latest")
binary_path=$(download_with_retry "$rebar3_url")
install "$binary_path" /usr/local/bin/rebar3
# Clean up source list
rm $source_list
rm $source_key
invoke_tests "Tools" "erlang"
@@ -11,7 +11,7 @@ source $HELPER_SCRIPTS/etc-environment.sh
# Mozillateam PPA is added manually because sometimes
# launchpad portal sends empty answer when trying to add it automatically
REPO_URL="https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu/"
REPO_URL="http://ppa.launchpad.net/mozillateam/ppa/ubuntu"
GPG_FINGERPRINT="0ab215679c571d1c8325275b9bdb3d89ce49ec21"
GPG_KEY="/etc/apt/trusted.gpg.d/mozillateam_ubuntu_ppa.gpg"
REPO_PATH="/etc/apt/sources.list.d/mozillateam-ubuntu-ppa-focal.list"
@@ -0,0 +1,23 @@
#!/bin/bash -e
################################################################################
## File: install-hhvm.sh
## Desc: Install HHVM
################################################################################
REPO_URL="https://dl.hhvm.com/ubuntu"
GPG_KEY="/usr/share/keyrings/hhvm.gpg"
REPO_PATH="/etc/apt/sources.list.d/hhvm.list"
# add HHVM repository to apt
curl -fsSL https://dl.hhvm.com/conf/hhvm.gpg.key | gpg --dearmor -o $GPG_KEY
echo "deb [signed-by=$GPG_KEY] $REPO_URL $(lsb_release -cs) main" > $REPO_PATH
# install HHVM
apt-get update
apt-get install hhvm
# remove HHVM's apt repository
rm $REPO_PATH
rm $GPG_KEY
invoke_tests "Tools" "HHVM"
@@ -20,21 +20,8 @@ use_checksum_comparison "${kind_binary_path}" "${kind_external_hash}"
install "${kind_binary_path}" /usr/local/bin/kind
## Install kubectl
# Ensure keyrings directory exists only if it doesn't already
[ -d /etc/apt/keyrings ] || sudo mkdir -p -m 755 /etc/apt/keyrings
kubectl_minor_version=$(curl -fsSL --retry 5 --retry-delay 10 "https://dl.k8s.io/release/stable.txt" | cut -d'.' -f1,2 )
# Download and validate GPG key
key_url="https://pkgs.k8s.io/core:/stable:/$kubectl_minor_version/deb/Release.key"
if curl -fsSL --retry 5 --retry-delay 10 -A "Mozilla/5.0" "$key_url" | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg; then
echo "Key downloaded and stored successfully."
else
echo "Failed to download valid GPG key from: $key_url"
exit 1
fi
kubectl_minor_version=$(curl -fsSL "https://dl.k8s.io/release/stable.txt" | cut -d'.' -f1,2 )
curl -fsSL https://pkgs.k8s.io/core:/stable:/$kubectl_minor_version/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/'$kubectl_minor_version'/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install kubectl
@@ -43,16 +30,16 @@ rm -f /etc/apt/sources.list.d/kubernetes.list
# Install Helm
curl -fsSL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
# Temporarily pinning the version
# Download minikube
curl -fsSL -O https://storage.googleapis.com/minikube/releases/v1.34.0/minikube-linux-amd64
# Download and install minikube
minikube_version="latest"
minikube_binary_path=$(download_with_retry "https://storage.googleapis.com/minikube/releases/${minikube_version}/minikube-linux-amd64")
# Supply chain security - minikube
minikube_hash=$(get_checksum_from_github_release "kubernetes/minikube" "linux-amd64" "1.34.0" "SHA256")
use_checksum_comparison "minikube-linux-amd64" "${minikube_hash}"
# Supply chain security - Minikube
minikube_hash=$(get_checksum_from_github_release "kubernetes/minikube" "linux-amd64" "${minikube_version}" "SHA256")
use_checksum_comparison "${minikube_binary_path}" "${minikube_hash}"
install "${minikube_binary_path}" /usr/local/bin/minikube
# Install minikube
install minikube-linux-amd64 /usr/local/bin/minikube
# Install kustomize
download_url="https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"
@@ -34,11 +34,11 @@ mkdir -p $EDGEDRIVER_DIR
edge_version=$(microsoft-edge --version | cut -d' ' -f 3)
edge_version_major=$(echo $edge_version | cut -d'.' -f 1)
edgedriver_version_url="https://msedgedriver.microsoft.com/LATEST_RELEASE_${edge_version_major}_LINUX"
edgedriver_version_url="https://msedgedriver.azureedge.net/LATEST_RELEASE_${edge_version_major}_LINUX"
# Convert a resulting file to normal UTF-8
edgedriver_latest_version=$(curl -fsSL "$edgedriver_version_url" | iconv -f utf-16 -t utf-8 | tr -d '\r')
edgedriver_url="https://msedgedriver.microsoft.com/${edgedriver_latest_version}/edgedriver_linux64.zip"
edgedriver_url="https://msedgedriver.azureedge.net/${edgedriver_latest_version}/edgedriver_linux64.zip"
edgedriver_archive_path=$(download_with_retry "$edgedriver_url")
unzip -qq "$edgedriver_archive_path" -d "$EDGEDRIVER_DIR"
@@ -0,0 +1,30 @@
#!/bin/bash -e
################################################################################
## File: install-mongodb.sh
## Desc: Install Mongo DB
################################################################################
# Source the helpers
source $HELPER_SCRIPTS/install.sh
toolset_version=$(get_toolset_value '.mongodb.version')
REPO_URL="https://repo.mongodb.org/apt/ubuntu"
GPG_KEY="/usr/share/keyrings/mongodb-org-$toolset_version.gpg"
REPO_PATH="/etc/apt/sources.list.d/mongodb-org-$toolset_version.list"
# add Mongo DB repository to apt
curl -fsSL https://www.mongodb.org/static/pgp/server-$toolset_version.asc | gpg --dearmor -o $GPG_KEY
echo "deb [ arch=amd64,arm64 signed-by=$GPG_KEY ] $REPO_URL $(lsb_release -cs)/mongodb-org/$toolset_version multiverse" > $REPO_PATH
# Install Mongo DB
sudo apt-get update
sudo apt-get install mongodb-org
# remove Mongo DB's apt repository
rm $REPO_PATH
rm $GPG_KEY
# Document source repo
echo "mongodb $REPO_URL" >> $HELPER_SCRIPTS/apt-sources.txt
invoke_tests "Databases" "MongoDB"
@@ -1,17 +0,0 @@
#!/bin/bash -e
################################################################################
## File: install-ninja.sh
## Desc: Install ninja-build
################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/install.sh
# Install ninja
download_url=$(resolve_github_release_asset_url "ninja-build/ninja" "endswith(\"ninja-linux.zip\")" "latest")
ninja_binary_path=$(download_with_retry "${download_url}")
# Unzip the ninja binary
unzip -qq "$ninja_binary_path" -d /usr/local/bin
invoke_tests "Tools" "Ninja"
@@ -8,9 +8,14 @@
source $HELPER_SCRIPTS/os.sh
source $HELPER_SCRIPTS/install.sh
if is_ubuntu20; then
toolset_version=$(get_toolset_value '.ocCli.version')
download_url="https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$toolset_version/openshift-client-linux-$toolset_version.tar.gz"
else
# Install the oc CLI
download_url="https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-client-linux.tar.gz"
# Install the oc CLI
download_url="https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-client-linux.tar.gz"
fi
archive_path=$(download_with_retry "$download_url")
@@ -0,0 +1,26 @@
#!/bin/bash -e
################################################################################
## File: install-phantomjs.sh
## Desc: Install PhantomJS
################################################################################
# Source the helpers for use with the script
source $HELPER_SCRIPTS/install.sh
# Install required dependencies
apt-get install chrpath libssl-dev libxft-dev libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev
# Define the version and hash of PhantomJS to be installed
DIR_NAME=phantomjs-2.1.1-linux-x86_64
ARCHIVE_HASH="86dd9a4bf4aee45f1a84c9f61cf1947c1d6dce9b9e8d2a907105da7852460d2f"
# Download the archive and verify its integrity using checksum comparison
download_url="https://bitbucket.org/ariya/phantomjs/downloads/$DIR_NAME.tar.bz2"
archive_path=$(download_with_retry "$download_url")
use_checksum_comparison "$archive_path" "$ARCHIVE_HASH"
# Extract the archive and create a symbolic link to the executable
tar xjf "$archive_path" -C /usr/local/share
ln -sf /usr/local/share/$DIR_NAME/bin/phantomjs /usr/local/bin
invoke_tests "Tools" "Phantomjs"
@@ -9,6 +9,13 @@ source $HELPER_SCRIPTS/etc-environment.sh
source $HELPER_SCRIPTS/os.sh
source $HELPER_SCRIPTS/install.sh
# add repository for old Ubuntu images
# details in thread: https://github.com/actions/runner-images/issues/6331
if is_ubuntu20; then
apt-add-repository ppa:ondrej/php -y
apt-get update
fi
# Install PHP
php_versions=$(get_toolset_value '.php.versions[]')
@@ -96,4 +103,11 @@ mkdir -p /etc/skel/.composer
wget -q -O phpunit https://phar.phpunit.de/phpunit-8.phar
install phpunit /usr/local/bin/phpunit
# ubuntu 20.04 libzip-dev is libzip5 based and is not compatible libzip-dev of ppa:ondrej/php
# see https://github.com/actions/runner-images/issues/1084
if is_ubuntu20; then
rm /etc/apt/sources.list.d/ondrej-*.list
apt-get update
fi
invoke_tests "Common" "PHP"
@@ -10,6 +10,11 @@ source $HELPER_SCRIPTS/install.sh
apt-get install ruby-full
# temporary fix for fastlane installation https://github.com/sporkmonger/addressable/issues/541
if is_ubuntu20; then
gem install public_suffix -v 5.1.1
fi
# Install ruby gems from toolset
gems_to_install=$(get_toolset_value ".rubygems[] .name")
if [[ -n "$gems_to_install" ]]; then
+5 -1
View File
@@ -20,7 +20,11 @@ source $CARGO_HOME/env
rustup component add rustfmt clippy
if is_ubuntu22; then
cargo install --locked bindgen-cli cbindgen cargo-audit cargo-outdated
cargo install bindgen-cli cbindgen cargo-audit cargo-outdated
fi
if is_ubuntu20; then
cargo install bindgen-cli cbindgen cargo-audit cargo-outdated
fi
# Cleanup Cargo cache
@@ -11,7 +11,7 @@ source $HELPER_SCRIPTS/os.sh
# Install libssl1.1 dependency
if is_ubuntu22; then
focal_list=/etc/apt/sources.list.d/focal-security.list
echo "deb https://archive.ubuntu.com/ubuntu/ focal-security main" | tee "${focal_list}"
echo "deb http://archive.ubuntu.com/ubuntu/ focal-security main" | tee "${focal_list}"
apt-get update --quiet
apt-get install --no-install-recommends libssl1.1
@@ -1,19 +0,0 @@
#!/bin/bash -e
################################################################################
## File: post-build-validation.sh
## Desc: Validate different aspects of the image after build
################################################################################
echo "Test microsoft defender not installed using '-d /opt/microsoft/mdatp'"
# Validate Defender not installed test 1
if [ -d /opt/microsoft/mdatp ]; then
echo "Microsoft Defender for Endpoint is installed."
exit 1
fi
echo "Test microsoft defender not installed using 'systemctl list-units --type=service --all | grep mdatp'"
# Validate Defender not installed test 2
if systemctl list-units --type=service --all | grep -w mdatp &>/dev/null; then
echo "Microsoft Defender for Endpoint is installed."
exit 1
fi
@@ -41,6 +41,10 @@ $languageAndRuntime.AddToolVersionsListInline("Clang", $(Get-ClangToolVersions -
$languageAndRuntime.AddToolVersionsListInline("Clang-format", $(Get-ClangToolVersions -ToolName "clang-format"), "^\d+")
$languageAndRuntime.AddToolVersionsListInline("Clang-tidy", $(Get-ClangTidyVersions), "^\d+")
$languageAndRuntime.AddToolVersion("Dash", $(Get-DashVersion))
if (Test-IsUbuntu20) {
$languageAndRuntime.AddToolVersion("Erlang", $(Get-ErlangVersion))
$languageAndRuntime.AddToolVersion("Erlang rebar3", $(Get-ErlangRebar3Version))
}
$languageAndRuntime.AddToolVersionsListInline("GNU C++", $(Get-CPPVersions), "^\d+")
$languageAndRuntime.AddToolVersionsListInline("GNU Fortran", $(Get-FortranVersions), "^\d+")
$languageAndRuntime.AddToolVersion("Julia", $(Get-JuliaVersion))
@@ -86,14 +90,14 @@ $projectManagement.AddToolVersion("Ant", $(Get-AntVersion))
$projectManagement.AddToolVersion("Gradle", $(Get-GradleVersion))
$projectManagement.AddToolVersion("Lerna", $(Get-LernaVersion))
$projectManagement.AddToolVersion("Maven", $(Get-MavenVersion))
if (Test-IsUbuntu22) {
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
$projectManagement.AddToolVersion("Sbt", $(Get-SbtVersion))
}
# Tools
$tools = $installedSoftware.AddHeader("Tools")
$tools.AddToolVersion("Ansible", $(Get-AnsibleVersion))
if (Test-IsUbuntu22) {
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
$tools.AddToolVersion("apt-fast", $(Get-AptFastVersion))
}
$tools.AddToolVersion("AzCopy", $(Get-AzCopyVersion))
@@ -113,14 +117,17 @@ $tools.AddToolVersion("Git", $(Get-GitVersion))
$tools.AddToolVersion("Git LFS", $(Get-GitLFSVersion))
$tools.AddToolVersion("Git-ftp", $(Get-GitFTPVersion))
$tools.AddToolVersion("Haveged", $(Get-HavegedVersion))
if (Test-IsUbuntu22) {
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
$tools.AddToolVersion("Heroku", $(Get-HerokuVersion))
}
if (Test-IsUbuntu20) {
$tools.AddToolVersion("HHVM (HipHop VM)", $(Get-HHVMVersion))
}
$tools.AddToolVersion("jq", $(Get-JqVersion))
$tools.AddToolVersion("Kind", $(Get-KindVersion))
$tools.AddToolVersion("Kubectl", $(Get-KubectlVersion))
$tools.AddToolVersion("Kustomize", $(Get-KustomizeVersion))
if (Test-IsUbuntu22) {
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
$tools.AddToolVersion("Leiningen", $(Get-LeiningenVersion))
}
$tools.AddToolVersion("MediaInfo", $(Get-MediainfoVersion))
@@ -132,25 +139,27 @@ $tools.AddToolVersion("nvm", $(Get-NvmVersion))
$tools.AddToolVersion("OpenSSL", $(Get-OpensslVersion))
$tools.AddToolVersion("Packer", $(Get-PackerVersion))
$tools.AddToolVersion("Parcel", $(Get-ParcelVersion))
if (Test-IsUbuntu20) {
$tools.AddToolVersion("PhantomJS", $(Get-PhantomJSVersion))
}
$tools.AddToolVersion("Podman", $(Get-PodManVersion))
$tools.AddToolVersion("Pulumi", $(Get-PulumiVersion))
if (Test-IsUbuntu22) {
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
$tools.AddToolVersion("R", $(Get-RVersion))
}
$tools.AddToolVersion("Skopeo", $(Get-SkopeoVersion))
$tools.AddToolVersion("Sphinx Open Source Search Server", $(Get-SphinxVersion))
if (Test-IsUbuntu22) {
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
$tools.AddToolVersion("SVN", $(Get-SVNVersion))
$tools.AddToolVersion("Terraform", $(Get-TerraformVersion))
}
$tools.AddToolVersion("yamllint", $(Get-YamllintVersion))
$tools.AddToolVersion("yq", $(Get-YqVersion))
$tools.AddToolVersion("zstd", $(Get-ZstdVersion))
$tools.AddToolVersion("Ninja", $(Get-NinjaVersion))
# CLI Tools
$cliTools = $installedSoftware.AddHeader("CLI Tools")
if (Test-IsUbuntu22) {
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
$cliTools.AddToolVersion("Alibaba Cloud CLI", $(Get-AlibabaCloudCliVersion))
}
$cliTools.AddToolVersion("AWS CLI", $(Get-AWSCliVersion))
@@ -160,7 +169,7 @@ $cliTools.AddToolVersion("Azure CLI", $(Get-AzureCliVersion))
$cliTools.AddToolVersion("Azure CLI (azure-devops)", $(Get-AzureDevopsVersion))
$cliTools.AddToolVersion("GitHub CLI", $(Get-GitHubCliVersion))
$cliTools.AddToolVersion("Google Cloud CLI", $(Get-GoogleCloudCLIVersion))
if (Test-IsUbuntu22) {
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
$cliTools.AddToolVersion("Netlify CLI", $(Get-NetlifyCliVersion))
$cliTools.AddToolVersion("OpenShift CLI", $(Get-OCCliVersion))
$cliTools.AddToolVersion("ORAS CLI", $(Get-ORASCliVersion))
@@ -194,7 +203,7 @@ $rustTools.AddToolVersion("Rustup", $(Get-RustupVersion))
# Packages
$rustToolsPackages = $rustTools.AddHeader("Packages")
if (Test-IsUbuntu22) {
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
$rustToolsPackages.AddToolVersion("Bindgen", $(Get-BindgenVersion))
$rustToolsPackages.AddToolVersion("Cargo audit", $(Get-CargoAuditVersion))
$rustToolsPackages.AddToolVersion("Cargo clippy", $(Get-CargoClippyVersion))
@@ -226,6 +235,9 @@ $netCoreTools.AddNodes($(Get-DotnetTools))
# Databases
$databasesTools = $installedSoftware.AddHeader("Databases")
if (Test-IsUbuntu20) {
$databasesTools.AddToolVersion("MongoDB", $(Get-MongoDbVersion))
}
$databasesTools.AddToolVersion("sqlite3", $(Get-SqliteVersion))
$databasesTools.AddNode($(Build-PostgreSqlSection))
$databasesTools.AddNode($(Build-MySQLSection))
@@ -207,7 +207,7 @@ function Get-MavenVersion {
function Get-SbtVersion {
$result = Get-CommandResult "sbt -version"
$result.Output -match "sbt runner version: (?<version>\d+\.\d+\.\d+)" | Out-Null
$result.Output -match "sbt script version: (?<version>\d+\.\d+\.\d+)" | Out-Null
return $Matches.version
}
@@ -275,10 +275,6 @@ function Get-ZstdVersion {
return "$zstdVersion"
}
function Get-NinjaVersion {
return $(ninja --version)
}
function Get-YqVersion {
$yqVersion = $(yq -V) | Get-StringPart -Part 3
return $yqVersion.TrimStart("v").Trim()
@@ -28,9 +28,27 @@ function Get-NginxVersion {
}
}
function Get-Xsp4Version {
$name = "mono-xsp4"
$port = (grep '^port=' /etc/default/mono-xsp4).Split('=')[1]
$version = (dpkg-query --showformat='${Version}' --show mono-xsp4).Split('-')[0]
$serviceStatus = systemctl show -p ActiveState --value mono-xsp4
$configFile = "/etc/default/mono-xsp4"
return [PsCustomObject]@{
"Name" = $name
"Version" = $version
"ConfigFile" = $configFile
"ServiceStatus" = $serviceStatus
"ListenPort" = $port
}
}
function Build-WebServersTable {
$servers = @()
$servers += (Get-ApacheVersion)
if (Test-IsUbuntu20) {
$servers += (Get-Xsp4Version)
}
$servers += (Get-NginxVersion)
return $servers
@@ -54,6 +54,10 @@ function Get-CommandResult {
}
}
function Test-IsUbuntu20 {
return (lsb_release -rs) -eq "20.04"
}
function Test-IsUbuntu22 {
return (lsb_release -rs) -eq "22.04"
}
@@ -129,7 +133,7 @@ function Invoke-DownloadWithRetry {
for ($retries = 20; $retries -gt 0; $retries--) {
try {
$attemptStartTime = Get-Date
Invoke-WebRequest -Uri $Url -Outfile $DestinationPath
(New-Object System.Net.WebClient).DownloadFile($Url, $DestinationPath)
$attemptSeconds = [math]::Round(($(Get-Date) - $attemptStartTime).TotalSeconds, 2)
Write-Host "Package downloaded in $attemptSeconds seconds"
break
+4
View File
@@ -4,6 +4,10 @@
## Desc: Helper functions for OS releases
################################################################################
is_ubuntu20() {
lsb_release -rs | grep -q '20.04'
}
is_ubuntu22() {
lsb_release -rs | grep -q '22.04'
}
@@ -10,7 +10,7 @@ Describe "Azure DevOps CLI" {
}
}
Describe "Aliyun CLI" -Skip:((-not (Test-IsUbuntu22))) {
Describe "Aliyun CLI" -Skip:((-not (Test-IsUbuntu20)) -and (-not (Test-IsUbuntu22))) {
It "Aliyun CLI" {
"aliyun version" | Should -ReturnZeroExitCode
}
@@ -42,13 +42,13 @@ Describe "Google Cloud CLI" {
}
}
Describe "OC CLI" -Skip:((-not (Test-IsUbuntu22))) {
Describe "OC CLI" -Skip:((-not (Test-IsUbuntu20)) -and (-not (Test-IsUbuntu22))) {
It "OC CLI" {
"oc version" | Should -ReturnZeroExitCode
}
}
Describe "Oras CLI" -Skip:((-not (Test-IsUbuntu22))) {
Describe "Oras CLI" -Skip:((-not (Test-IsUbuntu20)) -and (-not (Test-IsUbuntu22))) {
It "Oras CLI" {
"oras version" | Should -ReturnZeroExitCode
}
@@ -1,3 +1,13 @@
Describe "MongoDB" -Skip:(-not (Test-IsUbuntu20)) {
It "<ToolName>" -TestCases @(
@{ ToolName = "mongo" }
@{ ToolName = "mongod" }
) {
$toolsetVersion = (Get-ToolsetContent).mongodb.version
(& $ToolName --version)[2].Split('"')[-2] | Should -BeLike "$toolsetVersion*"
}
}
Describe "PostgreSQL" {
It "PostgreSQL Service" {
"sudo systemctl start postgresql" | Should -ReturnZeroExitCode
@@ -6,16 +6,3 @@ Describe "Disk free space" -Skip:(-not [String]::IsNullOrEmpty($env:AGENT_NAME)
$freeSpace | Should -BeGreaterOrEqual 17GB
}
}
Describe "fwupd removed" {
It "Is not present on box" {
$systemctlOutput = & systemctl list-units fwupd-refresh.timer --no-legend
# When disabled the output looks like this:
# systemctl list-units fwupd-refresh.timer --no-legend
#● fwupd-refresh.timer masked failed failed fwupd-refresh.timer
# When enabled the output looks like this:
# systemctl list-units fwupd-refresh.timer --no-legend
#fwupd-refresh.timer loaded active waiting Refresh fwupd metadata regularly
$systemctlOutput | Should -Not -Match "active"
}
}
+30 -36
View File
@@ -42,7 +42,7 @@ Describe "Rust" {
"cargo --version" | Should -ReturnZeroExitCode
}
Context "Cargo dependencies" -Skip:((-not (Test-IsUbuntu22))) {
Context "Cargo dependencies" -Skip:((-not (Test-IsUbuntu20)) -and (-not (Test-IsUbuntu22))) {
It "bindgen" {
"bindgen --version" | Should -ReturnZeroExitCode
}
@@ -154,6 +154,14 @@ Describe "Cmake" {
}
}
Describe "erlang" -Skip:(-not (Test-IsUbuntu20)) {
$testCases = @("erl -version", "erlc -v", "rebar3 -v") | ForEach-Object { @{ErlangCommand = $_} }
It "erlang <ErlangCommand>" -TestCases $testCases {
"$ErlangCommand" | Should -ReturnZeroExitCode
}
}
Describe "gcc" {
$testCases = (Get-ToolsetContent).gcc.Versions | ForEach-Object { @{GccVersion = $_} }
@@ -184,25 +192,25 @@ Describe "Mono" -Skip:(Test-IsUbuntu24) {
}
}
Describe "MSSQLCommandLineTools" -Skip:((-not (Test-IsUbuntu22))) {
Describe "MSSQLCommandLineTools" -Skip:((-not (Test-IsUbuntu20)) -and (-not (Test-IsUbuntu22))) {
It "sqlcmd" {
"sqlcmd -?" | Should -ReturnZeroExitCode
}
}
Describe "SqlPackage" -Skip:((-not (Test-IsUbuntu22))) {
Describe "SqlPackage" -Skip:((-not (Test-IsUbuntu20)) -and (-not (Test-IsUbuntu22))) {
It "sqlpackage" {
"sqlpackage /version" | Should -ReturnZeroExitCode
}
}
Describe "R" -Skip:((-not (Test-IsUbuntu22))) {
Describe "R" -Skip:((-not (Test-IsUbuntu20)) -and (-not (Test-IsUbuntu22))) {
It "r" {
"R --version" | Should -ReturnZeroExitCode
}
}
Describe "Sbt" -Skip:((-not (Test-IsUbuntu22))) {
Describe "Sbt" -Skip:((-not (Test-IsUbuntu20)) -and (-not (Test-IsUbuntu22))) {
It "sbt" {
"sbt --version" | Should -ReturnZeroExitCode
}
@@ -215,7 +223,7 @@ Describe "Selenium" {
}
}
Describe "Terraform" -Skip:((-not (Test-IsUbuntu22))) {
Describe "Terraform" -Skip:((-not (Test-IsUbuntu20)) -and (-not (Test-IsUbuntu22))) {
It "terraform" {
"terraform --version" | Should -ReturnZeroExitCode
}
@@ -253,12 +261,18 @@ Describe "Git-lfs" {
}
}
Describe "Heroku" -Skip:((-not (Test-IsUbuntu22))) {
Describe "Heroku" -Skip:((-not (Test-IsUbuntu20)) -and (-not (Test-IsUbuntu22))) {
It "heroku" {
"heroku --version" | Should -ReturnZeroExitCode
}
}
Describe "HHVM" -Skip:(-not (Test-IsUbuntu20)) {
It "hhvm" {
"hhvm --version" | Should -ReturnZeroExitCode
}
}
Describe "Homebrew" {
It "homebrew" {
"/home/linuxbrew/.linuxbrew/bin/brew --version" | Should -ReturnZeroExitCode
@@ -293,7 +307,7 @@ Describe "Kubernetes tools" {
}
}
Describe "Leiningen" -Skip:((-not (Test-IsUbuntu22))) {
Describe "Leiningen" -Skip:((-not (Test-IsUbuntu20)) -and (-not (Test-IsUbuntu22))) {
It "leiningen" {
"lein --version" | Should -ReturnZeroExitCode
}
@@ -317,6 +331,13 @@ Describe "Pulumi" {
}
}
Describe "Phantomjs" -Skip:(-not (Test-IsUbuntu20)) {
It "phantomjs" {
$env:OPENSSL_CONF="/etc/ssl"
"phantomjs --version" | Should -ReturnZeroExitCode
}
}
Describe "Containers" {
$testCases = @("podman", "buildah", "skopeo") | ForEach-Object { @{ContainerCommand = $_} }
@@ -387,33 +408,6 @@ Describe "Kotlin" {
}
It "kotlinc-js" {
"kotlinc-js -help" | Should -ReturnZeroExitCode
}
}
Describe "Ninja" {
BeforeAll {
New-item -Path "/tmp/ninjaproject" -ItemType Directory -Force
@'
cmake_minimum_required(VERSION 3.10)
project(NinjaTest NONE)
'@ | Out-File -FilePath "/tmp/ninjaproject/CMakeLists.txt"
}
It "Make a simple ninja project" {
"cmake -GNinja -S /tmp/ninjaproject -B /tmp/ninjaproject" | Should -ReturnZeroExitCode
}
It "build.ninja file should exist" {
$buildFilePath = Join-Path "/tmp/ninjaproject" "build.ninja"
$buildFilePath | Should -Exist
}
It "Ninja" {
"ninja --version" | Should -ReturnZeroExitCode
}
AfterAll {
Remove-Item -Path "/tmp/ninjaproject" -Recurse -Force
"kotlinc-js -version" | Should -ReturnZeroExitCode
}
}
@@ -1,18 +0,0 @@
locals {
image_properties_map = {
"ubuntu22" = {
publisher = "canonical"
offer = "0001-com-ubuntu-server-jammy"
sku = "22_04-lts"
os_disk_size_gb = coalesce(var.os_disk_size_gb, 75)
},
"ubuntu24" = {
publisher = "canonical"
offer = "ubuntu-24_04-lts"
sku = "server-gen1"
os_disk_size_gb = coalesce(var.os_disk_size_gb, 75)
}
}
image_properties = local.image_properties_map[var.image_os]
}
@@ -1,48 +0,0 @@
source "azure-arm" "image" {
client_cert_path = var.client_cert_path
client_id = var.client_id
client_secret = var.client_secret
object_id = var.object_id
oidc_request_token = var.oidc_request_token
oidc_request_url = var.oidc_request_url
subscription_id = var.subscription_id
tenant_id = var.tenant_id
use_azure_cli_auth = var.use_azure_cli_auth
allowed_inbound_ip_addresses = var.allowed_inbound_ip_addresses
build_resource_group_name = var.build_resource_group_name
image_offer = local.image_properties.offer
image_publisher = local.image_properties.publisher
image_sku = local.image_properties.sku
image_version = var.source_image_version
location = var.location
managed_image_name = var.managed_image_name
managed_image_resource_group_name = var.managed_image_resource_group_name
managed_image_storage_account_type = var.managed_image_storage_account_type
os_disk_size_gb = local.image_properties.os_disk_size_gb
os_type = var.image_os_type
private_virtual_network_with_public_ip = var.private_virtual_network_with_public_ip
temp_resource_group_name = var.temp_resource_group_name
virtual_network_name = var.virtual_network_name
virtual_network_resource_group_name = var.virtual_network_resource_group_name
virtual_network_subnet_name = var.virtual_network_subnet_name
vm_size = var.vm_size
winrm_username = var.winrm_username
shared_image_gallery_destination {
subscription = var.subscription_id
gallery_name = var.gallery_name
resource_group = var.gallery_resource_group_name
image_name = var.gallery_image_name
image_version = var.gallery_image_version
storage_account_type = var.gallery_storage_account_type
}
dynamic "azure_tag" {
for_each = var.azure_tags
content {
name = azure_tag.key
value = azure_tag.value
}
}
}
@@ -0,0 +1,423 @@
locals {
managed_image_name = var.managed_image_name != "" ? var.managed_image_name : "packer-${var.image_os}-${var.image_version}"
}
variable "allowed_inbound_ip_addresses" {
type = list(string)
default = []
}
variable "azure_tags" {
type = map(string)
default = {}
}
variable "build_resource_group_name" {
type = string
default = "${env("BUILD_RESOURCE_GROUP_NAME")}"
}
variable "client_cert_path" {
type = string
default = "${env("ARM_CLIENT_CERT_PATH")}"
}
variable "client_id" {
type = string
default = "${env("ARM_CLIENT_ID")}"
}
variable "client_secret" {
type = string
default = "${env("ARM_CLIENT_SECRET")}"
sensitive = true
}
variable "dockerhub_login" {
type = string
default = "${env("DOCKERHUB_LOGIN")}"
}
variable "dockerhub_password" {
type = string
default = "${env("DOCKERHUB_PASSWORD")}"
}
variable "helper_script_folder" {
type = string
default = "/imagegeneration/helpers"
}
variable "image_folder" {
type = string
default = "/imagegeneration"
}
variable "image_os" {
type = string
default = "ubuntu20"
}
variable "image_version" {
type = string
default = "dev"
}
variable "imagedata_file" {
type = string
default = "/imagegeneration/imagedata.json"
}
variable "installer_script_folder" {
type = string
default = "/imagegeneration/installers"
}
variable "install_password" {
type = string
default = ""
sensitive = true
}
variable "location" {
type = string
default = "${env("ARM_RESOURCE_LOCATION")}"
}
variable "managed_image_name" {
type = string
default = ""
}
variable "managed_image_resource_group_name" {
type = string
default = "${env("ARM_RESOURCE_GROUP")}"
}
variable "private_virtual_network_with_public_ip" {
type = bool
default = false
}
variable "subscription_id" {
type = string
default = "${env("ARM_SUBSCRIPTION_ID")}"
}
variable "temp_resource_group_name" {
type = string
default = "${env("TEMP_RESOURCE_GROUP_NAME")}"
}
variable "tenant_id" {
type = string
default = "${env("ARM_TENANT_ID")}"
}
variable "virtual_network_name" {
type = string
default = "${env("VNET_NAME")}"
}
variable "virtual_network_resource_group_name" {
type = string
default = "${env("VNET_RESOURCE_GROUP")}"
}
variable "virtual_network_subnet_name" {
type = string
default = "${env("VNET_SUBNET")}"
}
variable "vm_size" {
type = string
default = "Standard_D4s_v4"
}
source "azure-arm" "build_image" {
allowed_inbound_ip_addresses = "${var.allowed_inbound_ip_addresses}"
build_resource_group_name = "${var.build_resource_group_name}"
client_cert_path = "${var.client_cert_path}"
client_id = "${var.client_id}"
client_secret = "${var.client_secret}"
image_offer = "0001-com-ubuntu-server-focal"
image_publisher = "canonical"
image_sku = "20_04-lts"
location = "${var.location}"
managed_image_name = "${local.managed_image_name}"
managed_image_resource_group_name = "${var.managed_image_resource_group_name}"
os_disk_size_gb = "75"
os_type = "Linux"
private_virtual_network_with_public_ip = "${var.private_virtual_network_with_public_ip}"
subscription_id = "${var.subscription_id}"
temp_resource_group_name = "${var.temp_resource_group_name}"
tenant_id = "${var.tenant_id}"
virtual_network_name = "${var.virtual_network_name}"
virtual_network_resource_group_name = "${var.virtual_network_resource_group_name}"
virtual_network_subnet_name = "${var.virtual_network_subnet_name}"
vm_size = "${var.vm_size}"
dynamic "azure_tag" {
for_each = var.azure_tags
content {
name = azure_tag.key
value = azure_tag.value
}
}
}
build {
sources = ["source.azure-arm.build_image"]
provisioner "shell" {
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
inline = ["mkdir ${var.image_folder}", "chmod 777 ${var.image_folder}"]
}
provisioner "file" {
destination = "${var.helper_script_folder}"
source = "${path.root}/../scripts/helpers"
}
provisioner "shell" {
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
script = "${path.root}/../scripts/build/configure-apt-mock.sh"
}
provisioner "shell" {
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}","DEBIAN_FRONTEND=noninteractive"]
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
scripts = [
"${path.root}/../scripts/build/install-ms-repos.sh",
"${path.root}/../scripts/build/configure-apt-sources.sh",
"${path.root}/../scripts/build/configure-apt.sh"
]
}
provisioner "shell" {
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
script = "${path.root}/../scripts/build/configure-limits.sh"
}
provisioner "file" {
destination = "${var.installer_script_folder}"
source = "${path.root}/../scripts/build"
}
provisioner "file" {
destination = "${var.image_folder}"
sources = [
"${path.root}/../assets/post-gen",
"${path.root}/../scripts/tests",
"${path.root}/../scripts/docs-gen"
]
}
provisioner "file" {
destination = "${var.image_folder}/docs-gen/"
source = "${path.root}/../../../helpers/software-report-base"
}
provisioner "file" {
destination = "${var.installer_script_folder}/toolset.json"
source = "${path.root}/../toolsets/toolset-2004.json"
}
provisioner "shell" {
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
inline = [
"mv ${var.image_folder}/docs-gen ${var.image_folder}/SoftwareReport",
"mv ${var.image_folder}/post-gen ${var.image_folder}/post-generation"
]
}
provisioner "shell" {
environment_vars = ["IMAGE_VERSION=${var.image_version}", "IMAGEDATA_FILE=${var.imagedata_file}"]
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
scripts = ["${path.root}/../scripts/build/configure-image-data.sh"]
}
provisioner "shell" {
environment_vars = ["IMAGE_VERSION=${var.image_version}", "IMAGE_OS=${var.image_os}", "HELPER_SCRIPTS=${var.helper_script_folder}"]
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
scripts = ["${path.root}/../scripts/build/configure-environment.sh"]
}
provisioner "shell" {
environment_vars = ["DEBIAN_FRONTEND=noninteractive", "HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"]
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
scripts = ["${path.root}/../scripts/build/install-apt-vital.sh"]
}
provisioner "shell" {
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"]
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
scripts = ["${path.root}/../scripts/build/install-powershell.sh"]
}
provisioner "shell" {
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"]
execute_command = "sudo sh -c '{{ .Vars }} pwsh -f {{ .Path }}'"
scripts = ["${path.root}/../scripts/build/Install-PowerShellModules.ps1", "${path.root}/../scripts/build/Install-PowerShellAzModules.ps1"]
}
provisioner "shell" {
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}", "DEBIAN_FRONTEND=noninteractive"]
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
scripts = [
"${path.root}/../scripts/build/install-actions-cache.sh",
"${path.root}/../scripts/build/install-runner-package.sh",
"${path.root}/../scripts/build/install-apt-common.sh",
"${path.root}/../scripts/build/install-azcopy.sh",
"${path.root}/../scripts/build/install-azure-cli.sh",
"${path.root}/../scripts/build/install-azure-devops-cli.sh",
"${path.root}/../scripts/build/install-bicep.sh",
"${path.root}/../scripts/build/install-aliyun-cli.sh",
"${path.root}/../scripts/build/install-apache.sh",
"${path.root}/../scripts/build/install-aws-tools.sh",
"${path.root}/../scripts/build/install-clang.sh",
"${path.root}/../scripts/build/install-swift.sh",
"${path.root}/../scripts/build/install-cmake.sh",
"${path.root}/../scripts/build/install-codeql-bundle.sh",
"${path.root}/../scripts/build/install-container-tools.sh",
"${path.root}/../scripts/build/install-dotnetcore-sdk.sh",
"${path.root}/../scripts/build/install-erlang.sh",
"${path.root}/../scripts/build/install-firefox.sh",
"${path.root}/../scripts/build/install-microsoft-edge.sh",
"${path.root}/../scripts/build/install-gcc-compilers.sh",
"${path.root}/../scripts/build/install-gfortran.sh",
"${path.root}/../scripts/build/install-git.sh",
"${path.root}/../scripts/build/install-git-lfs.sh",
"${path.root}/../scripts/build/install-github-cli.sh",
"${path.root}/../scripts/build/install-google-chrome.sh",
"${path.root}/../scripts/build/install-google-cloud-cli.sh",
"${path.root}/../scripts/build/install-haskell.sh",
"${path.root}/../scripts/build/install-heroku.sh",
"${path.root}/../scripts/build/install-hhvm.sh",
"${path.root}/../scripts/build/install-java-tools.sh",
"${path.root}/../scripts/build/install-kubernetes-tools.sh",
"${path.root}/../scripts/build/install-oc-cli.sh",
"${path.root}/../scripts/build/install-leiningen.sh",
"${path.root}/../scripts/build/install-miniconda.sh",
"${path.root}/../scripts/build/install-mono.sh",
"${path.root}/../scripts/build/install-kotlin.sh",
"${path.root}/../scripts/build/install-mysql.sh",
"${path.root}/../scripts/build/install-mssql-tools.sh",
"${path.root}/../scripts/build/install-sqlpackage.sh",
"${path.root}/../scripts/build/install-nginx.sh",
"${path.root}/../scripts/build/install-nvm.sh",
"${path.root}/../scripts/build/install-nodejs.sh",
"${path.root}/../scripts/build/install-bazel.sh",
"${path.root}/../scripts/build/install-oras-cli.sh",
"${path.root}/../scripts/build/install-phantomjs.sh",
"${path.root}/../scripts/build/install-php.sh",
"${path.root}/../scripts/build/install-postgresql.sh",
"${path.root}/../scripts/build/install-pulumi.sh",
"${path.root}/../scripts/build/install-ruby.sh",
"${path.root}/../scripts/build/install-rlang.sh",
"${path.root}/../scripts/build/install-rust.sh",
"${path.root}/../scripts/build/install-julia.sh",
"${path.root}/../scripts/build/install-sbt.sh",
"${path.root}/../scripts/build/install-selenium.sh",
"${path.root}/../scripts/build/install-terraform.sh",
"${path.root}/../scripts/build/install-packer.sh",
"${path.root}/../scripts/build/install-vcpkg.sh",
"${path.root}/../scripts/build/configure-dpkg.sh",
"${path.root}/../scripts/build/install-mongodb.sh",
"${path.root}/../scripts/build/install-yq.sh",
"${path.root}/../scripts/build/install-android-sdk.sh",
"${path.root}/../scripts/build/install-pypy.sh",
"${path.root}/../scripts/build/install-python.sh",
"${path.root}/../scripts/build/install-zstd.sh"
]
}
provisioner "shell" {
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}", "DOCKERHUB_LOGIN=${var.dockerhub_login}", "DOCKERHUB_PASSWORD=${var.dockerhub_password}"]
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
scripts = ["${path.root}/../scripts/build/install-docker.sh"]
}
provisioner "shell" {
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"]
execute_command = "sudo sh -c '{{ .Vars }} pwsh -f {{ .Path }}'"
scripts = ["${path.root}/../scripts/build/Install-Toolset.ps1", "${path.root}/../scripts/build/Configure-Toolset.ps1"]
}
provisioner "shell" {
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"]
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
scripts = ["${path.root}/../scripts/build/install-pipx-packages.sh"]
}
provisioner "shell" {
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "DEBIAN_FRONTEND=noninteractive", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"]
execute_command = "/bin/sh -c '{{ .Vars }} {{ .Path }}'"
scripts = ["${path.root}/../scripts/build/install-homebrew.sh"]
}
provisioner "shell" {
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}"]
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
scripts = ["${path.root}/../scripts/build/configure-snap.sh"]
}
provisioner "shell" {
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
expect_disconnect = true
inline = ["echo 'Reboot VM'", "sudo reboot"]
}
provisioner "shell" {
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
pause_before = "1m0s"
scripts = ["${path.root}/../scripts/build/cleanup.sh"]
start_retry_timeout = "10m"
}
provisioner "shell" {
environment_vars = ["IMAGE_VERSION=${var.image_version}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"]
inline = [
"pwsh -Command Write-Host Running Generate-SoftwareReport.ps1 script",
"pwsh -File ${var.image_folder}/SoftwareReport/Generate-SoftwareReport.ps1 -OutputDirectory ${var.image_folder}",
"pwsh -Command Write-Host Running RunAll-Tests.ps1 script",
"pwsh -File ${var.image_folder}/tests/RunAll-Tests.ps1 -OutputDirectory ${var.image_folder}"
]
max_retries = "3"
start_retry_timeout = "2m"
}
provisioner "file" {
destination = "${path.root}/../Ubuntu2004-Readme.md"
direction = "download"
source = "${var.image_folder}/software-report.md"
}
provisioner "file" {
destination = "${path.root}/../software-report.json"
direction = "download"
source = "${var.image_folder}/software-report.json"
}
provisioner "shell" {
environment_vars = ["HELPER_SCRIPT_FOLDER=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}", "IMAGE_FOLDER=${var.image_folder}"]
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
scripts = ["${path.root}/../scripts/build/configure-system.sh"]
}
provisioner "file" {
destination = "/tmp/"
source = "${path.root}/../assets/ubuntu2004.conf"
}
provisioner "shell" {
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
inline = ["mkdir -p /etc/vsts", "cp /tmp/ubuntu2004.conf /etc/vsts/machine_instance.conf"]
}
provisioner "shell" {
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
inline = ["sleep 30", "/usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync"]
}
}

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