Compare commits

..
164 changed files with 5511 additions and 4533 deletions
+1 -2
View File
@@ -36,16 +36,15 @@ body:
attributes:
label: Runner images affected
options:
- label: Ubuntu 20.04
- label: Ubuntu 22.04
- label: Ubuntu 24.04
- label: Ubuntu Slim
- label: macOS 13
- label: macOS 13 Arm64
- label: macOS 14
- label: macOS 14 Arm64
- label: macOS 15
- label: macOS 15 Arm64
- label: macOS 26 Arm64
- label: Windows Server 2019
- label: Windows Server 2022
- label: Windows Server 2025
+1 -2
View File
@@ -19,16 +19,15 @@ body:
attributes:
label: Runner images affected
options:
- label: Ubuntu 20.04
- label: Ubuntu 22.04
- label: Ubuntu 24.04
- label: Ubuntu Slim
- label: macOS 13
- label: macOS 13 Arm64
- label: macOS 14
- label: macOS 14 Arm64
- label: macOS 15
- label: macOS 15 Arm64
- label: macOS 26 Arm64
- label: Windows Server 2019
- label: Windows Server 2022
- label: Windows Server 2025
+1 -2
View File
@@ -57,16 +57,15 @@ body:
attributes:
label: Runner images where you need the tool
options:
- label: Ubuntu 20.04
- label: Ubuntu 22.04
- label: Ubuntu 24.04
- label: Ubuntu Slim
- label: macOS 13
- label: macOS 13 Arm64
- label: macOS 14
- label: macOS 14 Arm64
- label: macOS 15
- label: macOS 15 Arm64
- label: macOS 26 Arm64
- label: Windows Server 2019
- label: Windows Server 2022
- label: Windows Server 2025
+1 -1
View File
@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
uses: actions/checkout@v3
- name: Validate JSON Schema
shell: pwsh
+1 -1
View File
@@ -40,7 +40,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v5
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
+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@b7eabc95ff50cbeeedec83973935c8f306dfcd0b #v1.20.0
uses: ncipollo/release-action@v1.14.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
+8 -22
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -22,36 +22,22 @@ jobs:
- name: Create pull request for ${{ github.event.client_payload.ReleaseBranchName }}
id: create-pr
uses: actions/github-script@v8
uses: actions/github-script@v7
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@v8
uses: actions/github-script@v7
with:
github-token: ${{secrets.PRAPPROVAL_SECRET}}
script: |
+33 -52
View File
@@ -1,112 +1,93 @@
name: Create SBOM for the release
run-name: Collecting SBOM for ${{ github.event.client_payload.agentSpec || 'unknown image' }} - ${{ github.event.client_payload.imageVersion || 'unknown version' }}
# Inherited variables:
# github.event.client_payload.agentSpec - Current YAML Label
# github.event.client_payload.ReleaseID - Current release ID
# github.event.client_payload.imageVersion - AzDO image version "major.minor"
# github.event.client_payload.ReleaseBranchName - Necessary to identify workflow run
#
# Current SYFT tool issues:
# macOS (major): prompt privilegies that blocking process indefinetely (https://github.com/anchore/syft/issues/1367)
run-name: Collecting SBOM for ${{ github.event.client_payload.ReleaseBranchName || 'unknown release' }}
on:
repository_dispatch:
types: [generate-sbom]
defaults:
run:
shell: pwsh
jobs:
#Checking current release for SBOM
sbom-check:
outputs:
check_status: ${{ steps.check.outputs.status }}
runs-on: ubuntu-latest
env:
RELEASE_ID: ${{ github.event.client_payload.ReleaseID }}
steps:
- name: Check SBOM asset for release ${{ env.RELEASE_ID }}
- name: Check release for ${{ github.event.client_payload.ReleaseBranchName }}
id: check
shell: pwsh
run: |
$apiUrl = "https://api.github.com/repos/actions/runner-images/releases/$env:RELEASE_ID"
$apiUrl = "https://api.github.com/repos/actions/runner-images/releases/${{ github.event.client_payload.ReleaseID }}"
$response = Invoke-RestMethod -Uri $apiUrl -Method Get -SkipHttpErrorCheck
if ($response.message -ilike "Not Found") {
echo "status=release_not_found" >> $env:GITHUB_OUTPUT
Write-Error "Release $env:RELEASE_ID wasn't found"
Write-Error "Release ${{ github.event.client_payload.ReleaseID }} wasn't found"
exit 1
}
foreach ($asset in $response.assets) {
if ($asset.name -like '*sbom*') {
echo "status=sbom_exists" >> $env:GITHUB_OUTPUT
return "Release $env:RELEASE_ID already contains a SBOM"
return "Release ${{ github.event.client_payload.ReleaseID }} already contains a SBOM"
}
}
Write-Host "Release has been found, SBOM is not attached, starting generation."
echo "status=okay" >> $env:GITHUB_OUTPUT
#Generating SBOM
building-sbom:
needs: sbom-check
if: ${{ needs.sbom-check.outputs.check_status == 'okay' }}
runs-on: ${{ github.event.client_payload.agentSpec }}
env:
AGENT_SPEC: ${{ github.event.client_payload.agentSpec }}
RELEASE_ID: ${{ github.event.client_payload.ReleaseID }}
IMAGE_VERSION: ${{ github.event.client_payload.imageVersion }}
steps:
- name: Available image version check
- name: Available image version check for ${{ github.event.client_payload.ReleaseBranchName }}
run: |
$expectedVersion = $env:IMAGE_VERSION
$runnerVersion = $env:ImageVersion
# Split versions by dot
$expectedParts = $expectedVersion.Split('.')
$runnerParts = $runnerVersion.Split('.')
# Determine what parts to compare
$minLength = [Math]::Min($expectedParts.Length, $runnerParts.Length)
$expectedComparable = $expectedParts[0..($minLength-1)] -join '.'
$runnerComparable = $runnerParts[0..($minLength-1)] -join '.'
# Perform the comparison
if ($expectedComparable -ne $runnerComparable) {
throw "Version mismatch: Expected version '$expectedVersion' doesn't match runner version '$runnerVersion'"
$imageVersionComponents = $env:ImageVersion.Split('.')
$imageMajorVersion = $imageVersionComponents[0]
$imageMinorVersion = $imageVersionComponents[1]
if ("$imageMajorVersion.$imageMinorVersion" -ne '${{ github.event.client_payload.imageVersion }}') {
throw "Current runner $imageMajorVersion.$imageMinorVersion image version doesn't match ${{ github.event.client_payload.imageVersion }}."
}
- 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
- name: Run SYFT on macOS
if: ${{ runner.os == 'macOS' }}
# Skip protected folders to avoid prompt privileges that block process indefinitely (https://github.com/anchore/syft/issues/1367)
run: sudo syft dir:/ -vv -o spdx-json=sbom.json --exclude ./Users --exclude ./System/Volumes --exclude ./private
shell: bash
#Preparing artifact (raw SBOM.json is too big)
- name: Compress SBOM file
run: Compress-Archive sbom.json sbom.json.zip
#Upload artifact action
- uses: actions/upload-artifact@v4
with:
name: sbom-${{ env.AGENT_SPEC }}-${{ env.IMAGE_VERSION }}
name: sbom-${{ github.event.client_payload.agentSpec }}-${{ github.event.client_payload.imageVersion }}
path: sbom.json.zip
if-no-files-found: warn
#Upload release asset action
#Might be changed to softprops/action-gh-release after additional check
- name: Upload release asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: "https://uploads.github.com/repos/actions/runner-images/releases/${{ env.RELEASE_ID }}/assets{?name,label}"
upload_url: "https://uploads.github.com/repos/actions/runner-images/releases/${{ github.event.client_payload.ReleaseID }}/assets{?name,label}"
asset_path: ./sbom.json.zip
asset_name: sbom.${{ env.AGENT_SPEC }}.json.zip
asset_name: sbom.${{ github.event.client_payload.agentSpec }}.json.zip
asset_content_type: application/zip
+2 -2
View File
@@ -17,12 +17,12 @@ jobs:
steps:
- name: Checkout Code
uses: actions/checkout@v5
uses: actions/checkout@v4
with:
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 }}
+3 -3
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -24,7 +24,7 @@ jobs:
sleep 30
- name: Approve pull request by GitHub-Actions bot
uses: actions/github-script@v8
uses: actions/github-script@v7
with:
github-token: ${{secrets.PRAPPROVAL_SECRET}}
script: |
@@ -36,7 +36,7 @@ jobs:
});
- name: Merge pull request for ${{ github.event.client_payload.ReleaseBranchName }}
uses: actions/github-script@v8
uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
+1 -1
View File
@@ -15,7 +15,7 @@ jobs:
steps:
- name: Checkout Repository
uses: actions/checkout@v5
uses: actions/checkout@v4
- name: Run Software Report module tests
shell: pwsh
+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@v5
- 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@v5
$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@v5
- 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
+3 -1
View File
@@ -10,8 +10,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Update release for ${{ github.event.client_payload.ReleaseBranchName }}
uses: actions/github-script@v8
uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
+1 -1
View File
@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
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:
+1 -1
View File
@@ -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
+17 -18
View File
@@ -18,20 +18,20 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
## Available Images
| Image | YAML Label | Included Software |
| --------------------|---------------------|--------------------|
| Ubuntu 24.04 | `ubuntu-latest` or `ubuntu-24.04` | [ubuntu-24.04] |
| Ubuntu 22.04 | `ubuntu-22.04` | [ubuntu-22.04] |
| macOS 26 Arm64 `beta` | `macos-26` or `macos-26-xlarge` | [macOS-26-arm64] |
| macOS 15 | `macos-latest-large`, `macos-15-large`, or `macos-15-intel` | [macOS-15] |
| macOS 15 Arm64 | `macos-latest`, `macos-15`, or `macos-15-xlarge` | [macOS-15-arm64] |
| macOS 14 | `macos-14-large`| [macOS-14] |
| macOS 14 Arm64 | `macos-14` or `macos-14-xlarge`| [macOS-14-arm64] |
| macOS 13 ![Deprecated](https://img.shields.io/badge/-Deprecated-red) | `macos-13` or `macos-13-large` | [macOS-13] |
| macOS 13 Arm64 ![Deprecated](https://img.shields.io/badge/-Deprecated-red) | `macos-13-xlarge` | [macOS-13-arm64] |
| Windows Server 2025 | `windows-latest` or `windows-2025` | [windows-2025] |
| Windows Server 2022 | `windows-2022` | [windows-2022] |
| Windows Server 2019 ![Deprecated](https://img.shields.io/badge/-Deprecated-red) | `windows-2019` | [windows-2019] |
| Image | YAML Label | Included Software | Rollout Status of Latest Image Release |
| --------------------|---------------------|--------------------|--------------------|
| 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) |
| 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 | `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) |
| 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 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] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fsubir0071%2F385e39188f4280878bada99250e99db7%2Fraw%2Fwin19.json) |
### Label scheme
@@ -40,16 +40,16 @@ 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
[macOS-14-arm64]: https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md
[macOS-15]: https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md
[macOS-15-arm64]: https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md
[macOS-26-arm64]: https://github.com/actions/runner-images/blob/main/images/macos/macos-26-arm64-Readme.md
[self-hosted runners]: https://help.github.com/en/actions/hosting-your-own-runners
## Announcements
@@ -122,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
@@ -132,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](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) |
| | [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) |
+6 -10
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"'
@@ -76,6 +76,7 @@ In any case, you will need these software installed:
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.
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.
@@ -98,7 +99,7 @@ Finally, run the `GenerateResourcesAndImage` function, setting the mandatory arg
- `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;
- `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.
@@ -199,14 +200,11 @@ Then, you can invoke Packer in your CI/CD pipeline using the following commands:
```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 +213,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
+23 -30
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 {
@@ -88,7 +85,7 @@ Function GenerateResourcesAndImage {
.PARAMETER ResourceGroupName
The name of the resource group to store the resulting artifact. Resource group must already exist.
.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
@@ -119,7 +116,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)]
@@ -162,8 +159,8 @@ 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) {
@@ -215,19 +212,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."
@@ -285,19 +280,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
}
+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 `
+95 -99
View File
@@ -1,108 +1,104 @@
| Announcements |
|-|
| [[macOS] Cmake will be updated to version 4.* on September 8th](https://github.com/actions/runner-images/issues/12934) |
| [[macOS] Deprecation of 4 tools on November 3rd.](https://github.com/actions/runner-images/issues/12873) |
| [[macOS] macos-latest YAML-label will use macos-15 in August 2025](https://github.com/actions/runner-images/issues/12520) |
| [[macOS 14] Xcode Command Line Tool version will be downgraded to 15.3.0 on macOS14 images](https://github.com/actions/runner-images/issues/11969) |
***
# macOS 13
- OS Version: macOS 13.7.6 (22H625)
- OS Version: macOS 13.7.5 (22H527)
- Kernel Version: Darwin 22.6.0
- Image Version: 20250908.1476
- Image Version: 20250414.948
## 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.408, 9.0.102, 9.0.203
- 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.5
- Perl 5.40.2
- PHP 8.4.12
- Python3 3.13.7
- Ruby 3.3.9
- Node.js 20.19.0
- Perl 5.40.1
- PHP 8.4.6
- Python3 3.13.3
- Ruby 3.3.8
### Package Management
- Bundler 2.7.1
- Bundler 2.6.8
- Carthage 0.40.0
- CocoaPods 1.16.2
- Composer 2.8.11
- Homebrew 4.6.9
- Composer 2.8.8
- Homebrew 4.4.29
- NPM 10.8.2
- NuGet 6.3.1.1
- Pip3 25.2 (python 3.13)
- Pip3 25.0.1 (python 3.13)
- Pipx 1.7.1
- RubyGems 3.7.1
- Vcpkg 2025 (build from commit 4a7ce81d91)
- RubyGems 3.6.8
- Vcpkg 2025 (build from commit bc994510d2)
- 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.4.0
- bazelisk 1.27.0
- azcopy 10.28.1
- bazel 8.1.1
- bazelisk 1.26.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.78.0
- Curl 8.13.0
- Git 2.49.0
- Git LFS 3.6.1
- GitHub CLI 2.69.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.4.3
- Unxip 3.1
- yq 4.47.1
- yq 4.45.1
- zstd 1.5.7
- Ninja 1.13.1
- Ninja 1.12.1
### Tools
- AWS CLI 2.28.25
- AWS SAM CLI 1.143.0
- AWS CLI 2.26.1
- AWS SAM CLI 1.137.1
- AWS Session Manager CLI 1.2.707.0
- Azure CLI 2.77.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.37.4
- Cmake 4.1.1
- CodeQL Action Bundle 2.23.0
- Fastlane 2.228.0
- SwiftFormat 0.57.2
- Xcbeautify 2.30.1
- Azure CLI 2.71.0
- Azure CLI (azure-devops) 1.0.1
- Bicep CLI 0.34.44
- Cmake 3.31.6
- CodeQL Action Bundle 2.21.0
- Fastlane 2.227.1
- SwiftFormat 0.55.5
- Xcbeautify 2.28.0
- Xcode Command Line Tools 14.3.1.0.1.1683849156
- Xcodes 1.6.2
- Xcodes 1.6.0
### Linters
- SwiftLint 0.61.0
- SwiftLint 0.59.0
### Browsers
- Safari 18.5 (18621.2.5.18.1)
- SafariDriver 18.5 (18621.2.5.18.1)
- Google Chrome 140.0.7339.81
- Google Chrome for Testing 140.0.7339.80
- ChromeDriver 140.0.7339.80
- Microsoft Edge 140.0.3485.54
- Microsoft Edge WebDriver 140.0.3485.54
- Mozilla Firefox 142.0.1
- Safari 18.4 (18621.1.15.111.1)
- SafariDriver 18.4 (18621.1.15.111.1)
- Google Chrome 135.0.7049.85
- Google Chrome for Testing 135.0.7049.84
- ChromeDriver 135.0.7049.84
- Microsoft Edge 135.0.3179.73
- Microsoft Edge WebDriver 135.0.3179.73
- Mozilla Firefox 137.0.1
- geckodriver 0.36.0
- Selenium server 4.35.0
- Selenium server 4.29.0
#### Environment variables
| Name | Value |
@@ -114,15 +110,15 @@
### 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.19]
- 3.7.13 [PyPy 7.3.9]
- 3.8.16 [PyPy 7.3.11]
- 3.9.19 [PyPy 7.3.16]
@@ -130,44 +126,44 @@
#### Ruby
- 3.1.7
- 3.2.9
- 3.3.9
- 3.4.5
- 3.2.8
- 3.3.8
- 3.4.2
#### Python
- 3.8.18
- 3.9.23
- 3.10.18
- 3.9.22
- 3.10.17
- 3.11.9
- 3.12.10
- 3.13.7
- 3.13.3
#### Node.js
- 18.20.8
- 20.19.5
- 22.19.0
- 20.19.0
- 22.14.0
#### Go
- 1.21.13
- 1.22.12
- 1.23.12
- 1.24.7
- 1.25.1
- 1.23.8
- 1.24.2
### Rust Tools
- Cargo 1.89.0
- Rust 1.89.0
- Rustdoc 1.89.0
- Rustup 1.28.2
- Cargo 1.86.0
- Rust 1.86.0
- Rustdoc 1.86.0
- Rustup 1.28.1
#### Packages
- Clippy 0.1.89
- Clippy 0.1.86
- 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
@@ -218,8 +214,8 @@
| visionOS 1.0 | xros1.0 | 15.2 |
| Simulator - visionOS 1.0 | xrsimulator1.0 | 15.2 |
| Asset Runtime SDK for macOS hosts targeting watchOS 9.4 | assetruntime.host.macosx.target.watchos9.4 | 14.3.1 |
| Asset Runtime SDK for macOS hosts targeting iOS 16.4 | assetruntime.host.macosx.target.iphoneos16.4 | 14.3.1 |
| Asset Runtime SDK for macOS hosts targeting tvOS 16.4 | assetruntime.host.macosx.target.appletvos16.4 | 14.3.1 |
| Asset Runtime SDK for macOS hosts targeting iOS 16.4 | assetruntime.host.macosx.target.iphoneos16.4 | 14.3.1 |
| DriverKit 22.1 | driverkit22.1 | 14.1 |
| DriverKit 22.2 | driverkit22.2 | 14.2 |
| DriverKit 22.4 | driverkit22.4 | 14.3.1 |
@@ -244,18 +240,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.4.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 (rev 1)<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 | 35.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264 (default)<br>27.2.12479018<br>28.0.13004108 |
#### Environment variables
| Name | Value |
@@ -263,17 +259,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/28.0.13004108 |
| 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/v26/26.0.1-57243/ParallelsDesktop-26.0.1-57243.dmg |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v20/20.2.2-55879/ParallelsDesktop-20.2.2-55879.dmg |
##### Notes
```
+83 -90
View File
@@ -1,158 +1,151 @@
| Announcements |
|-|
| [[macOS] Cmake will be updated to version 4.* on September 8th](https://github.com/actions/runner-images/issues/12934) |
| [[macOS] Deprecation of 4 tools on November 3rd.](https://github.com/actions/runner-images/issues/12873) |
| [[macOS] macos-latest YAML-label will use macos-15 in August 2025](https://github.com/actions/runner-images/issues/12520) |
| [[macOS] Go version 1.21.* will be removed from all macOS images on May 12, 2025.](https://github.com/actions/runner-images/issues/12032) |
| [[macOS 14] Xcode Command Line Tool version will be downgraded to 15.3.0 on macOS14 images](https://github.com/actions/runner-images/issues/11969) |
***
# macOS 13
- OS Version: macOS 13.7.6 (22H625)
- OS Version: macOS 13.7.5 (22H527)
- Kernel Version: Darwin 22.6.0
- Image Version: 20250908.1545
- Image Version: 20250421.1088
## 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.408, 9.0.102, 9.0.203
- 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.5
- Node.js 20.19.0
- Perl 5.40.2
- Python3 3.13.7
- Ruby 3.3.9
- Python3 3.13.3
- Ruby 3.3.8
### Package Management
- Bundler 2.7.1
- Bundler 2.6.8
- Carthage 0.40.0
- CocoaPods 1.16.2
- Homebrew 4.6.9
- Homebrew 4.4.31
- NPM 10.8.2
- NuGet 6.3.1.1
- Pip3 25.2 (python 3.13)
- Pip3 25.0.1 (python 3.13)
- Pipx 1.7.1
- RubyGems 3.7.1
- RubyGems 3.6.8
- 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.4.0
- bazelisk 1.27.0
- azcopy 10.28.1
- bazel 8.2.1
- bazelisk 1.26.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.78.0
- Git 2.49.0
- Git LFS 3.6.1
- GitHub CLI 2.70.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.4.3
- Unxip 3.1
- yq 4.47.1
- yq 4.45.1
- zstd 1.5.7
- Ninja 1.13.1
- Ninja 1.12.1
### Tools
- AWS CLI 2.28.25
- AWS SAM CLI 1.143.0
- AWS CLI 2.26.5
- AWS SAM CLI 1.137.1
- AWS Session Manager CLI 1.2.707.0
- Azure CLI 2.77.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.37.4
- Cmake 4.1.1
- CodeQL Action Bundle 2.23.0
- Fastlane 2.228.0
- SwiftFormat 0.57.2
- Xcbeautify 2.30.1
- Azure CLI 2.71.0
- Azure CLI (azure-devops) 1.0.1
- Bicep CLI 0.34.44
- Cmake 3.31.6
- CodeQL Action Bundle 2.21.0
- Fastlane 2.227.1
- SwiftFormat 0.55.5
- Xcbeautify 2.28.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 140.0.7339.81
- Google Chrome for Testing 140.0.7339.80
- ChromeDriver 140.0.7339.80
- Microsoft Edge 140.0.3485.54
- Microsoft Edge WebDriver 140.0.3485.54
- Mozilla Firefox 142.0.1
- geckodriver 0.36.0
- Selenium server 4.35.0
- Safari 18.4 (18621.1.15.111.1)
- SafariDriver 18.4 (18621.1.15.111.1)
- Google Chrome 135.0.7049.96
- Google Chrome for Testing 135.0.7049.95
- ChromeDriver 135.0.7049.95
- Selenium server 4.29.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.15+6 (default) | JAVA_HOME_17_arm64 |
| 21.0.7+6.0 | JAVA_HOME_21_arm64 |
### Cached Tools
#### Ruby
- 3.1.7
- 3.2.9
- 3.3.9
- 3.4.5
- 3.2.8
- 3.3.8
- 3.4.3
#### Python
- 3.11.9
- 3.12.10
- 3.13.7
- 3.13.3
#### Node.js
- 18.20.8
- 20.19.5
- 22.19.0
- 20.19.0
- 22.14.0
#### Go
- 1.21.13
- 1.22.12
- 1.23.12
- 1.24.7
- 1.25.1
- 1.23.8
- 1.24.2
### Rust Tools
- Cargo 1.89.0
- Rust 1.89.0
- Rustdoc 1.89.0
- Rustup 1.28.2
- Cargo 1.86.0
- Rust 1.86.0
- Rustdoc 1.86.0
- Rustup 1.28.1
#### Packages
- Clippy 0.1.89
- Clippy 0.1.86
- 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
@@ -230,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.4.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 (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 | 35.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264 (default)<br>27.2.12479018<br>28.1.13356709 |
#### Environment variables
| Name | Value |
@@ -249,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/28.1.13356709 |
| 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
+121 -126
View File
@@ -1,107 +1,103 @@
| Announcements |
|-|
| [[macOS] The macOS 13 Ventura based runner images will begin deprecation on September 22nd and will be fully unsupported by December 4th for GitHub and ADO](https://github.com/actions/runner-images/issues/13046) |
| [[macOS] The additional macOS 15 Sonoma Intel-based image will be available in GitHub Actions](https://github.com/actions/runner-images/issues/13045) |
| [macOS 26 (Tahoe) is now available as a public beta in GitHub Actions](https://github.com/actions/runner-images/issues/13008) |
| [[macOS] Deprecation of 4 tools on November 3rd.](https://github.com/actions/runner-images/issues/12873) |
| [macOS 15 (Sequoia) will be generally available in GitHub Actions and Azure DevOps from April, 08](https://github.com/actions/runner-images/issues/11486) |
***
# macOS 14
- OS Version: macOS 14.8.1 (23J30)
- OS Version: macOS 14.7.4 (23H420)
- Kernel Version: Darwin 23.6.0
- Image Version: 20251104.0148
- Image Version: 20250331.1019
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.415, 9.0.102, 9.0.203, 9.0.306
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.407, 9.0.102, 9.0.202
- 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 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.2.0) - available by `gcc-15` 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.2.0) - available by `gfortran-15` alias
- Kotlin 2.2.21-release-469
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
- Kotlin 2.1.10-release-473
- Mono 6.12.0.188
- Node.js 20.19.5
- Perl 5.40.2
- PHP 8.4.14
- Python3 3.14.0
- Ruby 3.3.10
- Node.js 20.19.0
- Perl 5.40.1
- PHP 8.4.5
- Python3 3.13.2
- Ruby 3.3.7
### Package Management
- Bundler 2.7.2
- Bundler 2.6.6
- Carthage 0.40.0
- CocoaPods 1.16.2
- Composer 2.8.12
- Homebrew 4.6.20
- Composer 2.8.6
- Homebrew 4.4.26
- NPM 10.8.2
- NuGet 6.3.1.1
- Pip3 25.3 (python 3.14)
- Pipx 1.8.0
- RubyGems 3.7.2
- Vcpkg 2025 (build from commit b27f6bfad3)
- Pip3 25.0.1 (python 3.13)
- Pipx 1.7.1
- RubyGems 3.6.6
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.15
- Apache Maven 3.9.11
- Gradle 9.2.0
- Apache Maven 3.9.9
- Gradle 8.13
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.31.0
- bazel 8.4.2
- bazelisk 1.27.0
- azcopy 10.28.1
- bazel 8.1.1
- bazelisk 1.25.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.16.0
- Git 2.50.1
- Git LFS 3.7.1
- GitHub CLI 2.82.1
- Curl 8.12.1
- Git 2.49.0
- Git LFS 3.6.1
- GitHub CLI 2.69.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.2
- pkgconf 2.5.1
- Unxip 3.2
- yq 4.48.1
- Packer 1.12.0
- pkgconf 2.4.3
- Unxip 3.1
- yq 4.45.1
- zstd 1.5.7
- Ninja 1.13.1
- Ninja 1.12.1
### Tools
- AWS CLI 2.31.28
- AWS SAM CLI 1.145.2
- AWS CLI 2.25.6
- AWS SAM CLI 1.136.0
- AWS Session Manager CLI 1.2.707.0
- Azure CLI 2.78.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.38.33
- Cmake 4.1.2
- CodeQL Action Bundle 2.23.3
- Fastlane 2.228.0
- SwiftFormat 0.58.5
- Xcbeautify 3.1.0
- Azure CLI 2.70.0
- Azure CLI (azure-devops) 1.0.1
- Bicep CLI 0.34.44
- Cmake 3.31.6
- CodeQL Action Bundle 2.20.1
- Fastlane 2.227.0
- SwiftFormat 0.55.5
- Xcbeautify 2.28.0
- Xcode Command Line Tools 16.2.0.0.1.1733547573
- Xcodes 1.6.2
- Xcodes 1.6.0
### Linters
- SwiftLint 0.62.2
- SwiftLint 0.58.2
### Browsers
- Safari 26.0.1 (19622.1.22.118.4)
- SafariDriver 26.0.1 (19622.1.22.118.4)
- Google Chrome 142.0.7444.60
- Google Chrome for Testing 142.0.7444.59
- ChromeDriver 142.0.7444.59
- Microsoft Edge 142.0.3595.53
- Microsoft Edge WebDriver 142.0.3595.53
- Mozilla Firefox 144.0.2
- Safari 18.3.1 (19620.2.4.111.9)
- SafariDriver 18.3.1 (19620.2.4.111.9)
- Google Chrome 134.0.6998.166
- Google Chrome for Testing 134.0.6998.165
- ChromeDriver 134.0.6998.165
- Microsoft Edge 134.0.3124.95
- Microsoft Edge WebDriver 134.0.3124.95
- Mozilla Firefox 136.0.4
- geckodriver 0.36.0
- Selenium server 4.38.0
- Selenium server 4.29.0
#### Environment variables
| Name | Value |
@@ -111,55 +107,54 @@
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
### 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.9+10.0 (default) | JAVA_HOME_21_X64 |
| 25.0.1+8.0 | JAVA_HOME_25_X64 |
| Version | Environment Variable |
| -------------------- | -------------------- |
| 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.2.9
- 3.3.10
- 3.4.7
- 3.1.7
- 3.2.8
- 3.3.7
- 3.4.2
#### Python
- 3.9.25
- 3.10.19
- 3.9.21
- 3.10.16
- 3.11.9
- 3.12.10
- 3.13.9
- 3.14.0
- 3.12.9
- 3.13.2
#### Node.js
- 20.19.5
- 22.21.1
- 24.11.0
- 18.20.8
- 20.19.0
- 22.14.0
#### Go
- 1.21.13
- 1.22.12
- 1.23.12
- 1.24.9
- 1.25.3
- 1.23.7
- 1.24.1
### Rust Tools
- Cargo 1.91.0
- Rust 1.91.0
- Rustdoc 1.91.0
- Rustup 1.28.2
- Cargo 1.85.1
- Rust 1.85.1
- Rustdoc 1.85.1
- Rustup 1.28.1
#### Packages
- Clippy 0.1.91
- Clippy 0.1.85
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.13
- PowerShell 7.4.7
#### PowerShell Modules
- Az: 12.5.0
- Az: 12.4.0
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.0
@@ -237,40 +232,40 @@
| DriverKit 24.2 | driverkit24.2 | 16.2 |
#### Installed Simulators
| Name | OS | Simulators |
| ------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| iOS 17.0 | 17.0.1 | 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 | 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 | 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 | 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 | 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 | 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 | 17.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.2 | 17.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.4 | 17.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.5 | 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.1 | 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.2 | 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 10.0 | 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 | 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 | 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 | 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 | 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 | 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 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) |
### Android
| Package Name | Version |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 36.2.12 |
| Android SDK Build-tools | 36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.0.0<br>33.0.2 33.0.3 |
| Android SDK Platforms | android-36.1 (rev 1)<br>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.4.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 (rev 1)<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 | 35.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264 (default)<br>27.2.12479018<br>28.0.13004108 |
#### Environment variables
| Name | Value |
@@ -278,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/28.0.13004108 |
| 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/v26/26.1.1-57288/ParallelsDesktop-26.1.1-57288.dmg |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v20/20.2.2-55879/ParallelsDesktop-20.2.2-55879.dmg |
##### Notes
```
+119 -126
View File
@@ -1,157 +1,150 @@
| Announcements |
|-|
| [[macOS] The macOS 13 Ventura based runner images will begin deprecation on September 22nd and will be fully unsupported by December 4th for GitHub and ADO](https://github.com/actions/runner-images/issues/13046) |
| [[macOS] The additional macOS 15 Sonoma Intel-based image will be available in GitHub Actions](https://github.com/actions/runner-images/issues/13045) |
| [macOS 26 (Tahoe) is now available as a public beta in GitHub Actions](https://github.com/actions/runner-images/issues/13008) |
| [[macOS] Deprecation of 4 tools on November 3rd.](https://github.com/actions/runner-images/issues/12873) |
| [macOS 15 (Sequoia) will be generally available in GitHub Actions and Azure DevOps from April, 08](https://github.com/actions/runner-images/issues/11486) |
***
# macOS 14
- OS Version: macOS 14.8.2 (23J126)
- OS Version: macOS 14.7.4 (23H420)
- Kernel Version: Darwin 23.6.0
- Image Version: 20251111.0092
- Image Version: 20250331.1204
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.415, 9.0.102, 9.0.203, 9.0.306
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.407, 9.0.102, 9.0.202
- 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 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.2.0) - available by `gcc-15` 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.2.0) - available by `gfortran-15` alias
- Kotlin 2.2.21-release-469
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
- Kotlin 2.1.10-release-473
- Mono 6.12.0.188
- Node.js 20.19.5
- Perl 5.40.2
- Python3 3.14.0
- Ruby 3.3.10
- Node.js 20.19.0
- Perl 5.40.1
- Python3 3.13.2
- Ruby 3.3.7
### Package Management
- Bundler 2.7.2
- Bundler 2.6.6
- Carthage 0.40.0
- CocoaPods 1.16.2
- Homebrew 4.6.20
- Homebrew 4.4.26
- NPM 10.8.2
- NuGet 6.3.1.1
- Pip3 25.3 (python 3.14)
- Pipx 1.8.0
- RubyGems 3.7.2
- Vcpkg 2025 (build from commit 8fbf295ab5)
- Pip3 25.0 (python 3.13)
- Pipx 1.7.1
- RubyGems 3.6.6
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.15
- Apache Maven 3.9.11
- Gradle 9.2.0
- Apache Maven 3.9.9
- Gradle 8.13
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.31.0
- bazel 8.4.2
- bazelisk 1.27.0
- azcopy 10.28.1
- bazel 8.1.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.1
- GitHub CLI 2.83.0
- Git 2.49.0
- Git LFS 3.6.1
- GitHub CLI 2.69.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.2
- pkgconf 2.5.1
- Unxip 3.2
- yq 4.48.1
- Packer 1.12.0
- pkgconf 2.4.3
- Unxip 3.1
- yq 4.45.1
- zstd 1.5.7
- Ninja 1.13.1
- Ninja 1.12.1
### Tools
- AWS CLI 2.31.33
- AWS SAM CLI 1.146.0
- AWS CLI 2.25.6
- AWS SAM CLI 1.136.0
- AWS Session Manager CLI 1.2.707.0
- Azure CLI 2.79.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.38.33
- Cmake 4.1.2
- CodeQL Action Bundle 2.23.3
- Fastlane 2.228.0
- SwiftFormat 0.58.5
- Xcbeautify 3.1.0
- Azure CLI 2.70.0
- Azure CLI (azure-devops) 1.0.1
- Bicep CLI 0.34.44
- Cmake 3.31.6
- CodeQL Action Bundle 2.20.1
- Fastlane 2.227.0
- SwiftFormat 0.55.5
- Xcbeautify 2.28.0
- Xcode Command Line Tools 16.2.0.0.1.1733547573
- Xcodes 1.6.2
- Xcodes 1.6.0
### Linters
### Browsers
- Safari 26.1 (19622.2.11.119.1)
- SafariDriver 26.1 (19622.2.11.119.1)
- Google Chrome 142.0.7444.60
- Google Chrome for Testing 142.0.7444.61
- ChromeDriver 142.0.7444.61
- Microsoft Edge 142.0.3595.65
- Microsoft Edge WebDriver 142.0.3595.65
- Mozilla Firefox 144.0.2
- geckodriver 0.36.0
- Selenium server 4.38.0
- Safari 18.3.1 (19620.2.4.111.9)
- SafariDriver 18.3.1 (19620.2.4.111.9)
- Google Chrome 134.0.6998.166
- Google Chrome for Testing 134.0.6998.165
- ChromeDriver 134.0.6998.165
- Selenium server 4.29.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.29+7 | JAVA_HOME_11_arm64 |
| 17.0.17+10 | JAVA_HOME_17_arm64 |
| 21.0.9+10.0 (default) | JAVA_HOME_21_arm64 |
| 25.0.1+8.0 | JAVA_HOME_25_arm64 |
| Version | Environment Variable |
| -------------------- | -------------------- |
| 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.2.9
- 3.3.10
- 3.4.7
- 3.1.7
- 3.2.8
- 3.3.7
- 3.4.2
#### Python
- 3.11.9
- 3.12.10
- 3.13.9
- 3.14.0
- 3.12.9
- 3.13.2
#### Node.js
- 20.19.5
- 22.21.1
- 24.11.0
- 18.20.8
- 20.19.0
- 22.14.0
#### Go
- 1.21.13
- 1.22.12
- 1.23.12
- 1.24.10
- 1.25.4
- 1.23.7
- 1.24.1
### Rust Tools
- Cargo 1.91.1
- Rust 1.91.1
- Rustdoc 1.91.1
- Rustup 1.28.2
- Cargo 1.85.1
- Rust 1.85.1
- Rustdoc 1.85.1
- Rustup 1.28.1
#### Packages
- Clippy 0.1.91
- Clippy 0.1.85
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.13
- PowerShell 7.4.7
#### PowerShell Modules
- Az: 12.5.0
- Az: 12.4.0
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.0
@@ -229,45 +222,45 @@
| DriverKit 24.2 | driverkit24.2 | 16.2 |
#### Installed Simulators
| Name | OS | Simulators |
| ------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| iOS 17.0 | 17.0.1 | 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 | 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 | 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 | 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 | 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 | 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 | 17.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.2 | 17.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.4 | 17.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.5 | 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.1 | 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.2 | 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 10.0 | 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 | 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 | 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 | 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 | 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 | 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 | 1.0 | Apple Vision Pro |
| visionOS 1.1 | 1.1 | Apple Vision Pro |
| visionOS 1.2 | 1.2 | Apple Vision Pro |
| visionOS 2.1 | 2.1 | Apple Vision Pro |
| visionOS 2.2 | 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 (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 |
### Android
| Package Name | Version |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 36.2.12 |
| Android SDK Build-tools | 36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.0.0<br>33.0.2 33.0.3 |
| Android SDK Platforms | android-36.1 (rev 1)<br>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<br>4.1.2 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264 (default)<br>27.3.13750724<br>28.2.13676358<br>29.0.14206865 |
| Package Name | Version |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 35.4.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 (rev 1)<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 | 35.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264 (default)<br>27.2.12479018<br>28.0.13004108 |
#### Environment variables
| Name | Value |
@@ -275,10 +268,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/29.0.14206865 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/28.0.13004108 |
| 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
+180 -203
View File
@@ -1,105 +1,102 @@
| Announcements |
|-|
| [[macOS] The macOS 13 Ventura based runner images will begin deprecation on September 22nd and will be fully unsupported by December 4th for GitHub and ADO](https://github.com/actions/runner-images/issues/13046) |
| [[macOS] The additional macOS 15 Sonoma Intel-based image will be available in GitHub Actions](https://github.com/actions/runner-images/issues/13045) |
| [macOS 26 (Tahoe) is now available as a public beta in GitHub Actions](https://github.com/actions/runner-images/issues/13008) |
| [[macOS] Deprecation of 4 tools on November 3rd.](https://github.com/actions/runner-images/issues/12873) |
| [[macOS 14] Xcode Command Line Tool version will be downgraded to 15.3.0 on macOS14 images](https://github.com/actions/runner-images/issues/11969) |
***
# macOS 15
- OS Version: macOS 15.7.1 (24G231)
- Kernel Version: Darwin 24.6.0
- Image Version: 20251103.0112
- OS Version: macOS 15.4 (24E248)
- Kernel Version: Darwin 24.4.0
- Image Version: 20250415.1161
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.415, 9.0.102, 9.0.203, 9.0.306
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.408, 9.0.102, 9.0.203
- Bash 3.2.57(1)-release
- Clang/LLVM 17.0.0
- Clang/LLVM 15.0.0
- Clang/LLVM (Homebrew) 18.1.8 - available on `$(brew --prefix llvm@18)/bin/clang`
- 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.2.0) - available by `gcc-15` 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.2.0) - available by `gfortran-15` alias
- Kotlin 2.2.21-release-469
- Node.js 22.21.1
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
- Kotlin 2.1.10-release-473
- Node.js 22.14.0
- Perl 5.40.2
- PHP 8.4.14
- Python3 3.14.0
- Ruby 3.3.10
- PHP 8.4.6
- Python3 3.13.3
- Ruby 3.3.8
### Package Management
- Bundler 2.7.2
- Bundler 2.6.8
- Carthage 0.40.0
- CocoaPods 1.16.2
- Composer 2.8.12
- Homebrew 4.6.19
- NPM 10.9.4
- Pip3 25.3 (python 3.14)
- Pipx 1.8.0
- RubyGems 3.7.2
- Vcpkg 2025 (build from commit e3ed41868d)
- Composer 2.8.8
- Homebrew 4.4.30
- NPM 10.9.2
- Pip3 25.0.1 (python 3.13)
- Pipx 1.7.1
- RubyGems 3.6.8
- Vcpkg 2025 (build from commit d5182f703b)
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.15
- Apache Maven 3.9.11
- Gradle 9.2.0
- Apache Maven 3.9.9
- Gradle 8.13
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.31.0
- bazel 8.4.2
- bazelisk 1.27.0
- azcopy 10.28.1
- bazel 8.2.0
- bazelisk 1.26.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.16.0
- Git 2.50.1
- Git LFS 3.7.1
- GitHub CLI 2.82.1
- Curl 8.13.0
- Git 2.49.0
- Git LFS 3.6.1
- GitHub CLI 2.69.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.2
- pkgconf 2.5.1
- Unxip 3.2
- yq 4.48.1
- Packer 1.12.0
- pkgconf 2.4.3
- Unxip 3.1
- yq 4.45.1
- zstd 1.5.7
- Ninja 1.13.1
- Ninja 1.12.1
### Tools
- AWS CLI 2.31.27
- AWS SAM CLI 1.145.2
- AWS CLI 2.26.2
- AWS SAM CLI 1.137.1
- AWS Session Manager CLI 1.2.707.0
- Azure CLI 2.78.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.38.33
- Cmake 4.1.2
- CodeQL Action Bundle 2.23.3
- Fastlane 2.228.0
- SwiftFormat 0.58.5
- Xcbeautify 3.1.0
- Xcode Command Line Tools 16.4.0.0.1.1747106510
- Xcodes 1.6.2
- Azure CLI 2.71.0
- Azure CLI (azure-devops) 1.0.1
- Bicep CLI 0.34.44
- Cmake 3.31.6
- CodeQL Action Bundle 2.21.0
- Fastlane 2.227.1
- SwiftFormat 0.55.5
- Xcbeautify 2.28.0
- Xcode Command Line Tools 16.3.0.0.1.1742442376
- Xcodes 1.6.0
### Linters
- SwiftLint 0.62.2
- SwiftLint 0.59.0
### Browsers
- Safari 26.0.1 (20622.1.22.118.4)
- SafariDriver 26.0.1 (20622.1.22.118.4)
- Google Chrome 142.0.7444.60
- Google Chrome for Testing 142.0.7444.59
- ChromeDriver 142.0.7444.59
- Microsoft Edge 142.0.3595.53
- Microsoft Edge WebDriver 142.0.3595.53
- Mozilla Firefox 144.0.2
- Safari 18.4 (20621.1.15.11.10)
- SafariDriver 18.4 (20621.1.15.11.10)
- Google Chrome 135.0.7049.85
- Google Chrome for Testing 135.0.7049.84
- ChromeDriver 135.0.7049.84
- Microsoft Edge 135.0.3179.73
- Microsoft Edge WebDriver 135.0.3179.73
- Mozilla Firefox 137.0.1
- geckodriver 0.36.0
- Selenium server 4.38.0
- Selenium server 4.29.0
#### Environment variables
| Name | Value |
@@ -111,187 +108,167 @@
### 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 |
| 25.0.1+8.0 | JAVA_HOME_25_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.2.9
- 3.3.10
- 3.4.7
- 3.1.7
- 3.2.8
- 3.3.8
- 3.4.3
#### Python
- 3.9.24
- 3.10.19
- 3.9.22
- 3.10.17
- 3.11.9
- 3.12.10
- 3.13.9
- 3.14.0
- 3.13.3
#### Node.js
- 20.19.5
- 22.21.1
- 24.11.0
- 18.20.8
- 20.19.0
- 22.14.0
#### Go
- 1.21.13
- 1.22.12
- 1.23.12
- 1.24.9
- 1.25.3
- 1.23.8
- 1.24.2
### Rust Tools
- Cargo 1.91.0
- Rust 1.91.0
- Rustdoc 1.91.0
- Rustup 1.28.2
- Cargo 1.86.0
- Rust 1.86.0
- Rustdoc 1.86.0
- Rustup 1.28.1
#### Packages
- Clippy 0.1.91
- Clippy 0.1.86
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.13
- PowerShell 7.4.7
#### PowerShell Modules
- Az: 12.5.0
- Az: 12.4.0
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.0
### Xcode
| Version | Build | Path | Symlinks |
| -------------- | -------- | ---------------------------------------------- | -------------------------------------------------------------- |
| 26.1 | 17B54 | /Applications/Xcode_26.1_Release_Candidate.app | /Applications/Xcode_26.1.0.app<br>/Applications/Xcode_26.1.app |
| 26.0.1 | 17A400 | /Applications/Xcode_26.0.1.app | /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.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 |
| 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.1 |
| macOS 26.1 | macosx26.1 | 26.1 |
| 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.1 |
| iOS 26.1 | iphoneos26.1 | 26.1 |
| 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.1 |
| Simulator - iOS 26.1 | iphonesimulator26.1 | 26.1 |
| 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.1 |
| tvOS 26.1 | appletvos26.1 | 26.1 |
| 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.1 |
| Simulator - tvOS 26.1 | appletvsimulator26.1 | 26.1 |
| 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.1 |
| watchOS 26.1 | watchos26.1 | 26.1 |
| 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.1 |
| Simulator - watchOS 26.1 | watchsimulator26.1 | 26.1 |
| 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.1 |
| visionOS 26.1 | xros26.1 | 26.1 |
| 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.1 |
| Simulator - visionOS 26.1 | xrsimulator26.1 | 26.1 |
| 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.1 |
| DriverKit 25.1 | driverkit25.1 | 26.1 |
| 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 |
| macOS 15.4 | macosx15.4 | 16.3 |
| 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 |
| iOS 18.4 | iphoneos18.4 | 16.3 |
| 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 |
| Simulator - iOS 18.4 | iphonesimulator18.4 | 16.3 |
| 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 |
| tvOS 18.4 | appletvos18.4 | 16.3 |
| 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 |
| Simulator - tvOS 18.4 | appletvsimulator18.4 | 16.3 |
| 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 |
| watchOS 11.4 | watchos11.4 | 16.3 |
| 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 - watchOS 11.4 | watchsimulator11.4 | 16.3 |
| visionOS 1.2 | xros1.2 | 15.4 |
| 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 |
| Simulator - visionOS 1.2 | xrsimulator1.2 | 15.4 |
| 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 |
| 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 |
| DriverKit 24.4 | driverkit24.4 | 16.3 |
#### Installed Simulators
| Name | OS | Simulators |
| ------------ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 18.4 | 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 | 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 | 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 | 26.0.1 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone Air<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 11-inch (M5)<br>iPad Pro 13-inch (M4)<br>iPad Pro 13-inch (M5) |
| tvOS 18.2 | 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.4 | 18.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.5 | 18.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 26.0 | 26.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 11.2 | 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 | 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 | 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 | 26.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 2 (49mm)<br>Apple Watch Ultra 3 (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) |
| iOS 18.3 | 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.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) |
| 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) |
| tvOS 18.4 | 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 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) |
| 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) |
### Android
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 16.0 |
| Android Emulator | 36.2.12 |
| Android SDK Build-tools | 36.0.0 36.1.0<br>35.0.0 35.0.1 |
| Android SDK Platforms | android-36.1 (rev 1)<br>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) |
| 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.4.9 |
| Android SDK Build-tools | 36.0.0<br>35.0.0 35.0.1 |
| Android SDK Platforms | android-36 (rev 1)<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 | 35.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264<br>27.2.12479018 (default)<br>28.0.13004108 |
#### 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/28.0.13004108 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
### Miscellaneous
- Tcl/Tk 8.6.17
#### Environment variables
| Name | Value |
| ----------------- | ----------------------------------------------------------------------------------------- |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v26/26.1.1-57288/ParallelsDesktop-26.1.1-57288.dmg |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v20/20.2.2-55879/ParallelsDesktop-20.2.2-55879.dmg |
##### Notes
```
+182 -207
View File
@@ -1,287 +1,262 @@
| Announcements |
|-|
| [[macOS] The macOS 13 Ventura based runner images will begin deprecation on September 22nd and will be fully unsupported by December 4th for GitHub and ADO](https://github.com/actions/runner-images/issues/13046) |
| [[macOS] The additional macOS 15 Sonoma Intel-based image will be available in GitHub Actions](https://github.com/actions/runner-images/issues/13045) |
| [macOS 26 (Tahoe) is now available as a public beta in GitHub Actions](https://github.com/actions/runner-images/issues/13008) |
| [[macOS] Deprecation of 4 tools on November 3rd.](https://github.com/actions/runner-images/issues/12873) |
| [[macOS 14] Xcode Command Line Tool version will be downgraded to 15.3.0 on macOS14 images](https://github.com/actions/runner-images/issues/11969) |
***
# macOS 15
- OS Version: macOS 15.7.1 (24G231)
- Kernel Version: Darwin 24.6.0
- Image Version: 20251104.0104
- OS Version: macOS 15.4 (24E248)
- Kernel Version: Darwin 24.4.0
- Image Version: 20250416.1273
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.415, 9.0.102, 9.0.203, 9.0.306
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.408, 9.0.102, 9.0.203
- Bash 3.2.57(1)-release
- Clang/LLVM 17.0.0
- Clang/LLVM 15.0.0
- Clang/LLVM (Homebrew) 18.1.8 - available on `$(brew --prefix llvm@18)/bin/clang`
- 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.2.0) - available by `gcc-15` 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.2.0) - available by `gfortran-15` alias
- Kotlin 2.2.21-release-469
- Node.js 22.21.1
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
- GCC 14 (Homebrew GCC 14.2.0_1) - available by `gcc-14` alias
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
- GNU Fortran 14 (Homebrew GCC 14.2.0_1) - available by `gfortran-14` alias
- Kotlin 2.1.10-release-473
- Node.js 22.14.0
- Perl 5.40.2
- Python3 3.14.0
- Ruby 3.3.10
- Python3 3.13.3
- Ruby 3.3.8
### Package Management
- Bundler 2.7.2
- Bundler 2.6.8
- Carthage 0.40.0
- CocoaPods 1.16.2
- Homebrew 4.6.20
- NPM 10.9.4
- Pip3 25.3 (python 3.14)
- Pipx 1.8.0
- RubyGems 3.7.2
- Vcpkg 2025 (build from commit b27f6bfad3)
- Homebrew 4.4.31
- NPM 10.9.2
- Pip3 25.0.1 (python 3.13)
- Pipx 1.7.1
- RubyGems 3.6.8
- Vcpkg 2025 (build from commit 711466ff1c)
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.15
- Apache Maven 3.9.11
- Gradle 9.2.0
- Apache Maven 3.9.9
- Gradle 8.13
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.31.0
- bazel 8.4.2
- bazelisk 1.27.0
- azcopy 10.28.1
- bazel 8.2.0
- bazelisk 1.26.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.7.1
- Git 2.50.1
- Git LFS 3.7.1
- GitHub CLI 2.82.1
- Git 2.49.0
- Git LFS 3.6.1
- GitHub CLI 2.70.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.2
- pkgconf 2.5.1
- Unxip 3.2
- yq 4.48.1
- Packer 1.12.0
- pkgconf 2.4.3
- Unxip 3.1
- yq 4.45.1
- zstd 1.5.7
- Ninja 1.13.1
- Ninja 1.12.1
### Tools
- AWS CLI 2.31.28
- AWS SAM CLI 1.145.2
- AWS CLI 2.26.2
- AWS SAM CLI 1.137.1
- AWS Session Manager CLI 1.2.707.0
- Azure CLI 2.78.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.38.33
- Cmake 4.1.2
- CodeQL Action Bundle 2.23.3
- Fastlane 2.228.0
- SwiftFormat 0.58.5
- Xcbeautify 3.1.0
- Xcode Command Line Tools 16.4.0.0.1.1747106510
- Xcodes 1.6.2
- Azure CLI 2.71.0
- Azure CLI (azure-devops) 1.0.1
- Bicep CLI 0.34.44
- Cmake 3.31.6
- CodeQL Action Bundle 2.21.0
- Fastlane 2.227.1
- SwiftFormat 0.55.5
- Xcbeautify 2.28.0
- Xcode Command Line Tools 16.3.0.0.1.1742442376
- Xcodes 1.6.0
### Linters
### Browsers
- Safari 26.0.1 (20622.1.22.118.4)
- SafariDriver 26.0.1 (20622.1.22.118.4)
- Google Chrome 142.0.7444.60
- Google Chrome for Testing 142.0.7444.59
- ChromeDriver 142.0.7444.59
- Microsoft Edge 142.0.3595.53
- Microsoft Edge WebDriver 142.0.3595.53
- Mozilla Firefox 144.0.2
- geckodriver 0.36.0
- Selenium server 4.38.0
- Safari 18.4 (20621.1.15.11.10)
- SafariDriver 18.4 (20621.1.15.11.10)
- Google Chrome 135.0.7049.96
- Google Chrome for Testing 135.0.7049.95
- ChromeDriver 135.0.7049.95
- Selenium server 4.29.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.29+7 | JAVA_HOME_11_arm64 |
| 17.0.17+10 | JAVA_HOME_17_arm64 |
| 21.0.9+10.0 (default) | JAVA_HOME_21_arm64 |
| 25.0.1+8.0 | JAVA_HOME_25_arm64 |
| Version | Environment Variable |
| -------------------- | -------------------- |
| 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.2.9
- 3.3.10
- 3.4.7
- 3.1.7
- 3.2.8
- 3.3.8
- 3.4.3
#### Python
- 3.11.9
- 3.12.10
- 3.13.9
- 3.14.0
- 3.13.3
#### Node.js
- 20.19.5
- 22.21.1
- 24.11.0
- 18.20.8
- 20.19.0
- 22.14.0
#### Go
- 1.21.13
- 1.22.12
- 1.23.12
- 1.24.9
- 1.25.3
- 1.23.8
- 1.24.2
### Rust Tools
- Cargo 1.91.0
- Rust 1.91.0
- Rustdoc 1.91.0
- Rustup 1.28.2
- Cargo 1.86.0
- Rust 1.86.0
- Rustdoc 1.86.0
- Rustup 1.28.1
#### Packages
- Clippy 0.1.91
- Clippy 0.1.86
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.13
- PowerShell 7.4.7
#### PowerShell Modules
- Az: 12.5.0
- Az: 12.4.0
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.0
### Xcode
| Version | Build | Path | Symlinks |
| -------------- | -------- | ---------------------------------------------- | -------------------------------------------------------------- |
| 26.1 | 17B54 | /Applications/Xcode_26.1_Release_Candidate.app | /Applications/Xcode_26.1.0.app<br>/Applications/Xcode_26.1.app |
| 26.0.1 | 17A400 | /Applications/Xcode_26.0.1.app | /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.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 |
| 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.1 |
| macOS 26.1 | macosx26.1 | 26.1 |
| 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.1 |
| iOS 26.1 | iphoneos26.1 | 26.1 |
| 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.1 |
| Simulator - iOS 26.1 | iphonesimulator26.1 | 26.1 |
| 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.1 |
| tvOS 26.1 | appletvos26.1 | 26.1 |
| 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.1 |
| Simulator - tvOS 26.1 | appletvsimulator26.1 | 26.1 |
| 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.1 |
| watchOS 26.1 | watchos26.1 | 26.1 |
| 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.1 |
| Simulator - watchOS 26.1 | watchsimulator26.1 | 26.1 |
| 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.1 |
| visionOS 26.1 | xros26.1 | 26.1 |
| 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.1 |
| Simulator - visionOS 26.1 | xrsimulator26.1 | 26.1 |
| 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.1 |
| DriverKit 25.1 | driverkit25.1 | 26.1 |
| 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 |
| macOS 15.4 | macosx15.4 | 16.3 |
| 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 |
| iOS 18.4 | iphoneos18.4 | 16.3 |
| 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 |
| Simulator - iOS 18.4 | iphonesimulator18.4 | 16.3 |
| 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 |
| tvOS 18.4 | appletvos18.4 | 16.3 |
| 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 |
| Simulator - tvOS 18.4 | appletvsimulator18.4 | 16.3 |
| 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 |
| watchOS 11.4 | watchos11.4 | 16.3 |
| 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 - watchOS 11.4 | watchsimulator11.4 | 16.3 |
| visionOS 1.2 | xros1.2 | 15.4 |
| 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 |
| Simulator - visionOS 1.2 | xrsimulator1.2 | 15.4 |
| 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 |
| 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 |
| DriverKit 24.4 | driverkit24.4 | 16.3 |
#### Installed Simulators
| Name | OS | Simulators |
| ------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 18.4 | 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 | 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 | 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 | 26.0.1 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone Air<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 11-inch (M5)<br>iPad Pro 13-inch (M4)<br>iPad Pro 13-inch (M5) |
| tvOS 18.2 | 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.4 | 18.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 18.5 | 18.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 26.0 | 26.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 11.2 | 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 | 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 | 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 | 26.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 2 (49mm)<br>Apple Watch Ultra 3 (49mm) |
| visionOS 2.3 | 2.3 | Apple Vision Pro |
| visionOS 2.4 | 2.4 | Apple Vision Pro |
| visionOS 2.5 | 2.5 | Apple Vision Pro |
| visionOS 26.0 | 26.0 | 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) |
| iOS 18.3 | 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.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) |
| 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) |
| tvOS 18.4 | 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) |
| 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) |
| visionOS 1.2 | Apple Vision Pro |
| visionOS 2.0 | Apple Vision Pro |
| visionOS 2.1 | Apple Vision Pro |
| visionOS 2.2 | Apple Vision Pro |
| visionOS 2.3 | Apple Vision Pro |
| visionOS 2.4 | Apple Vision Pro |
### Android
| Package Name | Version |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 16.0 |
| Android Emulator | 36.2.12 |
| Android SDK Build-tools | 36.0.0 36.1.0<br>35.0.0 35.0.1 |
| Android SDK Platforms | android-36.1 (rev 1)<br>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) |
| 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.4.9 |
| Android SDK Build-tools | 36.0.0<br>35.0.0 35.0.1 |
| Android SDK Platforms | android-36 (rev 1)<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 | 35.0.2 |
| Android Support Repository | 47.0.0 |
| CMake | 3.31.5 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 26.3.11579264<br>27.2.12479018 (default)<br>28.0.13004108 |
#### 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/28.0.13004108 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/27.2.12479018 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
### Miscellaneous
- Tcl/Tk 8.6.17
-236
View File
@@ -1,236 +0,0 @@
| Announcements |
|-|
| [[macOS] The macOS 13 Ventura based runner images will begin deprecation on September 22nd and will be fully unsupported by December 4th for GitHub and ADO](https://github.com/actions/runner-images/issues/13046) |
| [[macOS] The additional macOS 15 Sonoma Intel-based image will be available in GitHub Actions](https://github.com/actions/runner-images/issues/13045) |
| [macOS 26 (Tahoe) is now available as a public beta in GitHub Actions](https://github.com/actions/runner-images/issues/13008) |
| [[macOS] Deprecation of 4 tools on November 3rd.](https://github.com/actions/runner-images/issues/12873) |
***
# macOS 26
- OS Version: macOS 26.0.1 (25A362)
- Kernel Version: Darwin 25.0.0
- Image Version: 20251103.0095
## Installed Software
### Language and Runtime
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.415, 9.0.102, 9.0.203, 9.0.306
- Bash 3.2.57(1)-release
- Clang/LLVM 17.0.0
- Clang/LLVM (Homebrew) 20.1.8 - available on `$(brew --prefix llvm@20)/bin/clang`
- 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.2.0) - available by `gcc-15` 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.2.0) - available by `gfortran-15` alias
- Kotlin 2.2.21-release-469
- Node.js 24.11.0
- Perl 5.40.2
- Python3 3.14.0
- Ruby 3.4.7
### Package Management
- Bundler 2.7.2
- Carthage 0.40.0
- CocoaPods 1.16.2
- Homebrew 4.6.19
- NPM 11.6.1
- Pip3 25.3 (python 3.14)
- Pipx 1.8.0
- RubyGems 3.7.2
- Vcpkg 2025 (build from commit e3ed41868d)
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.15
- Apache Maven 3.9.11
- Gradle 9.2.0
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.31.0
- bazel 8.4.2
- bazelisk 1.27.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.7.1
- Git 2.50.1
- Git LFS 3.7.1
- GitHub CLI 2.82.1
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.25.0
- gpg (GnuPG) 2.4.8
- jq 1.8.1
- OpenSSL 3.6.0 1 Oct 2025 (Library: OpenSSL 3.6.0 1 Oct 2025)
- Packer 1.14.2
- pkgconf 2.5.1
- Unxip 3.2
- yq 4.48.1
- zstd 1.5.7
- Ninja 1.13.1
### Tools
- AWS CLI 2.31.27
- AWS SAM CLI 1.145.2
- AWS Session Manager CLI 1.2.707.0
- Azure CLI 2.78.0
- Azure CLI (azure-devops) 1.0.2
- Bicep CLI 0.38.33
- Cmake 4.1.2
- CodeQL Action Bundle 2.23.3
- Fastlane 2.228.0
- SwiftFormat 0.58.5
- Xcbeautify 3.1.0
- Xcode Command Line Tools 26.0.0.0.1.1757719676
- Xcodes 1.6.2
### Browsers
- Safari 26.0.1 (21622.1.22.11.15)
- SafariDriver 26.0.1 (21622.1.22.11.15)
- Google Chrome 142.0.7444.60
- Google Chrome for Testing 142.0.7444.59
- ChromeDriver 142.0.7444.59
- Microsoft Edge 142.0.3595.53
- Microsoft Edge WebDriver 142.0.3595.53
- Mozilla Firefox 144.0.2
- geckodriver 0.36.0
- Selenium server 4.38.0
#### Environment variables
| Name | Value |
| --------------- | --------------------------------------- |
| CHROMEWEBDRIVER | /usr/local/share/chromedriver-mac-arm64 |
| EDGEWEBDRIVER | /usr/local/share/edge_driver |
| GECKOWEBDRIVER | /opt/homebrew/opt/geckodriver/bin |
### Java
| Version | Environment Variable |
| --------------------- | -------------------- |
| 11.0.29+7 | JAVA_HOME_11_arm64 |
| 17.0.17+10 | JAVA_HOME_17_arm64 |
| 21.0.9+10.0 (default) | JAVA_HOME_21_arm64 |
| 25.0.1+8.0 | JAVA_HOME_25_arm64 |
### Cached Tools
#### Ruby
- 3.2.9
- 3.3.10
- 3.4.7
#### Python
- 3.11.9
- 3.12.10
- 3.13.9
- 3.14.0
#### Node.js
- 20.19.5
- 22.21.1
- 24.11.0
#### Go
- 1.23.12
- 1.24.9
- 1.25.3
### Rust Tools
- Cargo 1.91.0
- Rust 1.91.0
- Rustdoc 1.91.0
- Rustup 1.28.2
#### Packages
- Clippy 0.1.91
- Rustfmt 1.8.0-stable
### PowerShell Tools
- PowerShell 7.4.13
#### PowerShell Modules
- Az: 14.3.0
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.0
### Xcode
| Version | Build | Path | Symlinks |
| ---------------- | ------ | ---------------------------------------------- | -------------------------------------------------------------- |
| 26.1 | 17B54 | /Applications/Xcode_26.1_Release_Candidate.app | /Applications/Xcode_26.1.0.app<br>/Applications/Xcode_26.1.app |
| 26.0.1 (default) | 17A400 | /Applications/Xcode_26.0.1.app | /Applications/Xcode_26.0.app<br>/Applications/Xcode.app |
| 16.4 | 16F6 | /Applications/Xcode_16.4.app | /Applications/Xcode_16.4.0.app |
#### Installed SDKs
| SDK | SDK Name | Xcode Version |
| ------------------------- | -------------------- | ------------- |
| macOS 15.5 | macosx15.5 | 16.4 |
| macOS 26.0 | macosx26.0 | 26.0.1 |
| macOS 26.1 | macosx26.1 | 26.1 |
| iOS 18.5 | iphoneos18.5 | 16.4 |
| iOS 26.0 | iphoneos26.0 | 26.0.1 |
| iOS 26.1 | iphoneos26.1 | 26.1 |
| Simulator - iOS 18.5 | iphonesimulator18.5 | 16.4 |
| Simulator - iOS 26.0 | iphonesimulator26.0 | 26.0.1 |
| Simulator - iOS 26.1 | iphonesimulator26.1 | 26.1 |
| tvOS 18.5 | appletvos18.5 | 16.4 |
| tvOS 26.0 | appletvos26.0 | 26.0.1 |
| tvOS 26.1 | appletvos26.1 | 26.1 |
| Simulator - tvOS 18.5 | appletvsimulator18.5 | 16.4 |
| Simulator - tvOS 26.0 | appletvsimulator26.0 | 26.0.1 |
| Simulator - tvOS 26.1 | appletvsimulator26.1 | 26.1 |
| watchOS 11.5 | watchos11.5 | 16.4 |
| watchOS 26.0 | watchos26.0 | 26.0.1 |
| watchOS 26.1 | watchos26.1 | 26.1 |
| Simulator - watchOS 11.5 | watchsimulator11.5 | 16.4 |
| Simulator - watchOS 26.0 | watchsimulator26.0 | 26.0.1 |
| Simulator - watchOS 26.1 | watchsimulator26.1 | 26.1 |
| visionOS 2.5 | xros2.5 | 16.4 |
| visionOS 26.0 | xros26.0 | 26.0.1 |
| visionOS 26.1 | xros26.1 | 26.1 |
| Simulator - visionOS 2.5 | xrsimulator2.5 | 16.4 |
| Simulator - visionOS 26.0 | xrsimulator26.0 | 26.0.1 |
| Simulator - visionOS 26.1 | xrsimulator26.1 | 26.1 |
| DriverKit 24.5 | driverkit24.5 | 16.4 |
| DriverKit 25.0 | driverkit25.0 | 26.0.1 |
| DriverKit 25.1 | driverkit25.1 | 26.1 |
#### Installed Simulators
| Name | OS | Simulators |
| ------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 18.5 | 18.5 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPad (A16)<br>iPad Air 11-inch (M3)<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 | 18.6 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPad (A16)<br>iPad Air 11-inch (M3)<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 | 26.0.1 | iPhone 16e<br>iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone Air<br>iPad (A16)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 11-inch (M5)<br>iPad Pro 13-inch (M4)<br>iPad Pro 13-inch (M5) |
| iOS 26.1 | 26.1 | iPhone 16e<br>iPhone 17<br>iPhone 17 Pro<br>iPhone 17 Pro Max<br>iPhone Air<br>iPad (A16)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M5)<br>iPad Pro 13-inch (M5) |
| tvOS 18.5 | 18.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 26.0 | 26.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 26.1 | 26.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 11.5 | 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 | 26.0 | Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 3 (49mm) |
| watchOS 26.1 | 26.1 | Apple Watch SE 3 (40mm)<br>Apple Watch SE 3 (44mm)<br>Apple Watch Series 11 (42mm)<br>Apple Watch Series 11 (46mm)<br>Apple Watch Ultra 3 (49mm) |
| visionOS 2.5 | 2.5 | Apple Vision Pro |
| visionOS 26.0 | 26.0 | Apple Vision Pro |
| visionOS 26.1 | 26.1 | Apple Vision Pro |
### Android
| Package Name | Version |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 16.0 |
| Android Emulator | 36.2.12 |
| Android SDK Build-tools | 36.0.0 36.1.0<br>35.0.0 35.0.1 |
| Android SDK Platforms | android-36.1 (rev 1)<br>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) |
| 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 | 27.3.13750724 (default)<br>28.2.13676358 |
#### 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_SDK_ROOT | /Users/runner/Library/Android/sdk |
@@ -8,11 +8,10 @@ Import-Module "~/image-generation/helpers/Common.Helpers.psm1"
Import-Module "~/image-generation/helpers/Xcode.Helpers.psm1"
$arch = Get-Architecture
$xcodeVersions = (Get-ToolsetContent).xcode.${arch}.versions
$defaultXcode = (Get-ToolsetContent).xcode.default
# Switch to each Xcode version
foreach ($xcodeVersion in $xcodeVersions.link) {
Write-Host "Switching to Xcode $xcodeVersion"
write-host "Switching to Xcode $xcodeVersion"
Switch-Xcode -Version $XcodeVersion
# Make object of all simulators
@@ -51,8 +50,8 @@ foreach ($xcodeVersion in $xcodeVersions.link) {
Write-Host "$($sameRuntimeDevices[$i+1].DeviceName) - DeviceId $($sameRuntimeDevices[$i+1].DeviceId)"
Write-Host "-------------------------------------------------------------------"
if ($sameRuntimeDevices[$i].DeviceName -eq $sameRuntimeDevices[$i+1].DeviceName) {
Write-Host "*******************************************************************"
Write-Host "** Duplicate found"
write-host "*******************************************************************"
write-host "** Duplicate found"
if ($sameRuntimeDevices[$i].DeviceCreationTime -lt $sameRuntimeDevices[$i+1].DeviceCreationTime) {
Write-Host "** will be removed $($sameRuntimeDevices[$i+1].DeviceName) with id $($sameRuntimeDevices[$i+1].DeviceId)"
xcrun simctl delete $sameRuntimeDevices[$i+1].DeviceId
@@ -62,12 +61,8 @@ foreach ($xcodeVersion in $xcodeVersions.link) {
xcrun simctl delete $sameRuntimeDevices[$i].DeviceId
$sameRuntimeDevices.RemoveAt($i)
}
Write-Host "*******************************************************************"
write-host "*******************************************************************"
}
}
}
}
# Restore default Xcode
Write-Host "Restoring default Xcode to $defaultXcode"
Switch-Xcode -Version $defaultXcode
@@ -54,13 +54,4 @@ foreach ($tool in $tools) {
}
}
# Ensure python3 and pip3 point to the latest installed Python version
# Fix for ./setup.sh script behavior for python3 and pip3 symlinks
# Only Intel images are affected since /usr/local/bin is used for Intel
# ARM images use /opt/homebrew/bin which is managed by Homebrew
Write-Host "Ensuring python3 and pip3 point to the latest installed Python version from Homebrew"
brew unlink python@3.14 && brew link python@3.14 --force --overwrite
Split-Path (readlink (which python3))
Invoke-PesterTests "Toolcache"
+2 -11
View File
@@ -8,10 +8,9 @@ $ErrorActionPreference = "Stop"
Import-Module "$env:HOME/image-generation/helpers/Common.Helpers.psm1"
Import-Module "$env:HOME/image-generation/helpers/Xcode.Installer.psm1" -DisableNameChecking
$os = Get-OSVersion
$arch = Get-Architecture
[Array]$xcodeVersions = (Get-ToolsetContent).xcode.$arch.versions
Write-Host $xcodeVersions
write-host $xcodeVersions
$defaultXcode = (Get-ToolsetContent).xcode.default
[Array]::Reverse($xcodeVersions)
$threadCount = "5"
@@ -34,15 +33,7 @@ Write-Host "Configuring Xcode versions..."
$xcodeVersions | ForEach-Object {
Write-Host "Configuring Xcode $($_.link) ..."
Invoke-XcodeRunFirstLaunch -Version $_.link
Install-XcodeAdditionalSimulatorRuntimes -Version $_.link -Arch $arch -Runtimes $_.install_runtimes
if (($_.link -match '^(\d+)\.(\d+)$') -and ([int]$matches[1] -ge 26)) {
Install-XcodeAdditionalComponents -Version $_.link
}
}
# Update dyld shared cache for the latest stable Xcode version
if ((-not $os.IsSonoma)) {
Update-DyldCache -XcodeVersions $xcodeVersions
Install-AdditionalSimulatorRuntimes -Version $_.link -Arch $arch -Runtimes $_.install_runtimes
}
Invoke-XcodeRunFirstLaunch -Version $defaultXcode
@@ -103,7 +103,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
@@ -40,12 +40,6 @@ if is_SonomaX64 || is_VenturaX64 || is_SequoiaX64; then
brew uninstall parallels
fi
# Simple warmup of the default Xcode
echo "Warm up the default Xcode"
xcodebuild -version > /dev/null
xcrun simctl list > /dev/null
xcrun simctl list devices > /dev/null
echo "Put documentation to $HOME root"
cp $HOME/image-generation/output/software-report/systeminfo.* $HOME/
@@ -8,48 +8,34 @@ source ~/utils/utils.sh
# /Library/Application\ Support/com.apple.TCC/TCC.db
systemValuesArray=(
"'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"
"'kTCCServiceBluetoothAlways','/opt/hca/hosted-compute-agent',1,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1736467200"
"'kTCCServiceBluetoothAlways','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1736467200"
"'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"
"'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"
"'kTCCServiceSystemPolicyNetworkVolumes','com.apple.Terminal',0,2,4,1,X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,0,'UNUSED',NULL,0,1678990068"
)
for values in "${systemValuesArray[@]}"; do
if ! is_Ventura; then
# TCC access table in Sonoma and later has extra 4 columns: pid, pid_version, boot_uuid, last_reminded
if is_Sonoma || is_Sequoia; then
# TCC access table in Sonoma has extra 4 columns: pid, pid_version, boot_uuid, last_reminded
configure_system_tccdb "$values,NULL,NULL,'UNUSED',${values##*,}"
else
configure_system_tccdb "$values"
@@ -58,50 +44,33 @@ 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"
"'kTCCServiceBluetoothAlways','/opt/hca/hosted-compute-agent',1,2,3,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1736467200"
"'kTCCServiceBluetoothAlways','/usr/local/opt/runner/provisioner/provisioner',1,2,3,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1736467200"
"'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_Ventura; then
# TCC access table in Sonoma and later has extra 4 columns: pid, pid_version, boot_uuid, last_reminded
if is_Sonoma || is_Sequoia; then
# TCC access table in Sonoma has extra 4 columns: pid, pid_version, boot_uuid, last_reminded
configure_user_tccdb "$values,NULL,NULL,'UNUSED',${values##*,}"
else
configure_user_tccdb "$values"
@@ -12,9 +12,9 @@ add_filtered_installation_components() {
local tools_array=("$@")
for item in ${tools_array[@]}; do
# Take the last version number that appears after the last '-' or ';'
item_version=$(echo "$item" | grep -oE '[-;][0-9.]+' | grep -oE '[0-9.]+')
if [[ "$(printf "${minimum_version}\n${item_version}\n" | sort -V | head -n1)" == "$minimum_version" ]]; then
# take the last argument after splitting string by ';'' and '-''
version=$(echo "${item##*[-;]}")
if [[ "$(printf "${minimum_version}\n${version}\n" | sort -V | head -n1)" == "$minimum_version" ]]; then
components+=($item)
fi
done
@@ -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/v3/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"
@@ -15,9 +15,27 @@ for package in $common_packages; do
brew install hashicorp/tap/packer
;;
kotlin)
# Pin kotlin bottle to 2.1.10 due to an issue with the latest version
# https://youtrack.jetbrains.com/issue/KT-76169/kotlinc-js-version-and-kapt-version-returning-non-zero-status-code-on-v2.1.20
kotlin_commit="442af88a2925f8c0e079eaf4fa62261133d2d7c4"
kotlin_rb_link="https://raw.githubusercontent.com/Homebrew/homebrew-core/$kotlin_commit/Formula/k/kotlin.rb"
kotlin_rb_path=$(download_with_retry "$kotlin_rb_link")
brew install "$kotlin_rb_path"
;;
cmake)
# Pin cmake bottle to 3.31.6 due to a backward compatibility issue with the latest version
# https://github.com/actions/runner-images/issues/11926
cmake_commit="b4e46db74e74a8c1650b38b1da222284ce1ec5ce"
cmake_rb_link="https://raw.githubusercontent.com/Homebrew/homebrew-core/$cmake_commit/Formula/c/cmake.rb"
cmake_rb_path=$(download_with_retry "$cmake_rb_link")
brew install "$cmake_rb_path"
;;
tcl-tk@8)
brew_smart_install "$package"
if is_VenturaX64 || is_SonomaX64 || is_SequoiaX64; then
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
@@ -61,7 +79,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
+2 -7
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}"
+1 -9
View File
@@ -7,15 +7,7 @@
source ~/utils/utils.sh
echo "Installing Git..."
#brew_smart_install "git"
# pin Git to 2.50.1 due to problems in the latest Git version 2.51.0
COMMIT=6b39030bc0d0a0a8df99afe37e5ae4d61ba07c88
FORMULA_URL="https://raw.githubusercontent.com/Homebrew/homebrew-core/$COMMIT/Formula/g/git.rb"
FORMULA_PATH="$(brew --repository)/Library/Taps/homebrew/homebrew-core/Formula/g/git.rb"
mkdir -p "$(dirname $FORMULA_PATH)"
curl -fsSL $FORMULA_URL -o $FORMULA_PATH
HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_FROM_API=1 brew install git
brew_smart_install "git"
git config --global --add safe.directory "*"
+2 -4
View File
@@ -11,11 +11,9 @@ echo "Installing Python Tooling"
# Close Finder window
close_finder_window
# Installing latest Homebrew Python 3 to handle python3 and pip3 symlinks
echo "Brew Installing default Python 3"
brew_smart_install "python3"
echo "Brew Installing Python 3"
brew_smart_install "[email protected]"
# Pipx has its own Python dependency
echo "Installing pipx"
if is_Arm64; then
+16 -16
View File
@@ -8,49 +8,49 @@ source ~/utils/utils.sh
arch=$(get_arch)
DEFAULT_RUBY_VERSION=$(get_toolset_value '.ruby.default')
RUBY_PATH=$AGENT_TOOLSDIRECTORY/Ruby
TOOLSET_VERSIONS=$(get_toolset_value '.toolcache[] | select(.name | contains("Ruby")) | .arch.'$arch'.versions[]')
echo "Installing Ruby..."
brew_smart_install "ruby@${DEFAULT_RUBY_VERSION}"
echo "Set Ruby ${DEFAULT_RUBY_VERSION} as default"
if [[ $arch == "arm64" ]]; then
export PATH=/opt/homebrew/opt/ruby@${DEFAULT_RUBY_VERSION}/bin:$PATH
ruby_suffix="macos-13-arm64"
else
export PATH=/usr/local/opt/ruby@${DEFAULT_RUBY_VERSION}/bin:$PATH
ruby_suffix="macos-latest"
fi
echo "Setting up gem environment"
GEM_PATH=$(gem env|awk '/EXECUTABLE DIRECTORY/ {print $4}')
echo "GEM_PATH=$GEM_PATH" >> $HOME/.bashrc
if [[ $arch == "arm64" ]]; then
echo 'export PATH="$GEM_PATH:/opt/homebrew/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> $HOME/.bashrc
else
echo 'export PATH="$GEM_PATH:/usr/local/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> $HOME/.bashrc
fi
echo "Check if Ruby hostedtoolcache folder exists"
echo "Install Ruby from toolset..."
[ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}")
PACKAGE_TAR_NAMES=$(curl "${authString[@]}" -fsSL "https://api.github.com/repos/ruby/ruby-builder/releases/latest" | jq -r '.assets[].name')
TOOLSET_VERSIONS=$(get_toolset_value '.toolcache[] | select(.name | contains("Ruby")) | .arch.'$arch'.versions[]')
RUBY_PATH=$AGENT_TOOLSDIRECTORY/Ruby
echo "Check if Ruby hostedtoolcache folder exists..."
if [[ ! -d $RUBY_PATH ]]; then
mkdir -p "$RUBY_PATH"
mkdir -p $RUBY_PATH
fi
echo "ruby path - $RUBY_PATH"
for toolset_version in ${TOOLSET_VERSIONS[@]}; do
echo "Installing Ruby version: $toolset_version..."
download_url=$(resolve_github_release_asset_url "ruby/ruby-builder" "contains(\"darwin-$arch.tar.gz\")" "ruby-$toolset_version" "$API_PAT")
package_tar_name="${download_url##*/}"
package_tar_name=$(echo "$PACKAGE_TAR_NAMES" | grep "^ruby-${toolset_version}-${ruby_suffix}.tar.gz$" | egrep -v "rc|preview" | sort -V | tail -1)
ruby_version=$(echo "$package_tar_name" | cut -d'-' -f 2)
ruby_version_path="$RUBY_PATH/$ruby_version"
echo "Create Ruby $ruby_version directory"
mkdir -p "$ruby_version_path"
echo "Create Ruby $ruby_version directory..."
mkdir -p $ruby_version_path
echo "Downloading tar archive $package_tar_name"
archive_path=$(download_with_retry "$download_url")
archive_path=$(download_with_retry "https://github.com/ruby/ruby-builder/releases/download/toolcache/${package_tar_name}")
echo "Expand $package_tar_name to the $ruby_version_path folder"
tar xf "$archive_path" -C "$ruby_version_path"
tar xf $archive_path -C $ruby_version_path
complete_file_path=$ruby_version_path/$arch.complete
if [[ ! -f $complete_file_path ]]; then
echo "Create complete file"
@@ -10,6 +10,11 @@ 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
@@ -17,4 +22,6 @@ $VCPKG_INSTALLATION_ROOT/vcpkg integrate install
sudo chmod -R 0777 $VCPKG_INSTALLATION_ROOT
ln -sf $VCPKG_INSTALLATION_ROOT/vcpkg /usr/local/bin
rm -rf /Users/runner/.vcpkg
invoke_tests "Common" "vcpkg"
@@ -37,12 +37,12 @@ $languageAndRuntime.AddNodes($(Get-ClangLLVMVersions))
$languageAndRuntime.AddNodes($(Get-GccVersions))
$languageAndRuntime.AddNodes($(Get-FortranVersions))
$languageAndRuntime.AddToolVersion("Kotlin", $(Get-KotlinVersion))
if (($os.IsVentura -or $os.IsSonoma)) {
if ((-not $os.IsSequoia)) {
$languageAndRuntime.AddToolVersion("Mono", $(Get-MonoVersion))
}
$languageAndRuntime.AddToolVersion("Node.js", $(Get-NodeVersion))
$languageAndRuntime.AddToolVersion("Perl", $(Get-PerlVersion))
if ((-not $os.IsArm64)) {
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64) -and (-not $os.IsSequoiaArm64)) {
$languageAndRuntime.AddToolVersion("PHP", $(Get-PHPVersion))
}
$languageAndRuntime.AddToolVersion("Python3", $(Get-Python3Version))
@@ -53,12 +53,12 @@ $packageManagement = $installedSoftware.AddHeader("Package Management")
$packageManagement.AddToolVersion("Bundler", $(Get-BundlerVersion))
$packageManagement.AddToolVersion("Carthage", $(Get-CarthageVersion))
$packageManagement.AddToolVersion("CocoaPods", $(Get-CocoaPodsVersion))
if ((-not $os.IsArm64)) {
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64) -and (-not $os.IsSequoiaArm64)) {
$packageManagement.AddToolVersion("Composer", $(Get-ComposerVersion))
}
$packageManagement.AddToolVersion("Homebrew", $(Get-HomebrewVersion))
$packageManagement.AddToolVersion("NPM", $(Get-NPMVersion))
if (($os.IsVentura -or $os.IsSonoma)) {
if ((-not $os.IsSequoia)) {
$packageManagement.AddToolVersion("NuGet", $(Get-NuGetVersion))
}
$packageManagement.AddToolVersion("Pip3", $(Get-Pip3Version))
@@ -116,8 +116,8 @@ $tools.AddToolVersion("Xcode Command Line Tools", $(Get-XcodeCommandLineToolsVer
$tools.AddToolVersion("Xcodes", $(Get-XcodesVersion))
# Linters
if ((-not $os.IsArm64)) {
$linters = $installedSoftware.AddHeader("Linters")
$linters = $installedSoftware.AddHeader("Linters")
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64) -and (-not $os.IsSequoiaArm64)) {
$linters.AddToolVersion("SwiftLint", $(Get-SwiftLintVersion))
}
@@ -174,12 +174,15 @@ $android.AddTable($androidTable)
$androidEnv = $android.AddHeader("Environment variables")
$androidEnv.AddTable($(Build-AndroidEnvironmentTable))
if ($os.IsSonoma -or $os.IsVentura -or $os.IsSequoia) {
if ($os.IsSonoma -or $os.IsVentura -or $os.IsSequoiaX64) {
$miscellaneous = $installedSoftware.AddHeader("Miscellaneous")
}
if ($os.IsSonoma -or $os.IsVentura) {
$miscellaneous.AddToolVersion("Tcl/Tk", $(Get-TclTkVersion))
}
if ((-not $os.IsArm64)) {
if ($os.IsSonomaX64 -or $os.IsVenturaX64 -or $os.IsSequoiaX64) {
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))
)
@@ -74,7 +79,7 @@ function Get-GeckodriverVersion {
function Get-SeleniumVersion {
$os = Get-OSVersion
if ($os.IsArm64) {
if ($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoiaArm64) {
$cellarPath = "/opt/homebrew/Cellar"
} else {
$cellarPath = "/usr/local/Cellar"
@@ -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 {
@@ -2,7 +2,7 @@ function Get-JavaVersions {
$defaultJavaPath = (Get-Item env:JAVA_HOME).value
$os = Get-OSVersion
if ($os.IsArm64) {
if ($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoiaArm64) {
$javaVersions = Get-Item env:JAVA_HOME_*_arm64
} else {
$javaVersions = Get-Item env:JAVA_HOME_*_X64
@@ -37,7 +37,7 @@ function Build-ToolcacheSection {
$nodes = @()
if ($os.IsVenturaX64) {
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonoma) -and (-not $os.IsSequoia)) {
$nodes += @(
[ToolVersionsListNode]::new("PyPy", $(Get-ToolcachePyPyVersions), '^\d+\.\d+', "List")
)
@@ -225,18 +225,17 @@ function Build-XcodeSimulatorsTable {
}
}
return [PSCustomObject] @{
"Name" = $runtime.name
"OS" = $runtime.version
"OS" = $runtime.name
"Simulators" = [String]::Join("<br>", $sortedRuntimeDevices)
}
} | Sort-Object {
# Sort rule 1
$sdkNameParts = $_."Name".Split(" ")
$sdkNameParts = $_."OS".Split(" ")
$platformName = [String]::Join(" ", $sdkNameParts[0..($sdkNameParts.Length - 2)])
return Get-XcodePlatformOrder $platformName
}, {
# Sort rule 2
$sdkNameParts = $_."Name".Split(" ")
$sdkNameParts = $_."OS".Split(" ")
return [System.Version]::Parse($sdkNameParts[-1])
}
}
@@ -35,10 +35,9 @@ function Get-OSVersion {
IsSonoma = $($osVersion.Version.Major -eq "14")
IsSonomaArm64 = $($osVersion.Version.Major -eq "14" -and $processorArchitecture -eq "arm64")
IsSonomaX64 = $($osVersion.Version.Major -eq "14" -and $processorArchitecture -ne "arm64")
IsSequoia = $($osVersion.Version.Major -eq "15")
IsSequoiaArm64 = $($osVersion.Version.Major -eq "15" -and $processorArchitecture -eq "arm64")
IsSequoiaX64 = $($osVersion.Version.Major -eq "15" -and $processorArchitecture -ne "arm64")
IsTahoe = $($osVersion.Version.Major -eq "26")
IsSequoia = $($osVersion.Version.Major -eq "15")
IsSequoiaArm64 = $($osVersion.Version.Major -eq "15" -and $processorArchitecture -eq "arm64")
IsSequoiaX64 = $($osVersion.Version.Major -eq "15" -and $processorArchitecture -ne "arm64")
}
}
@@ -42,6 +42,46 @@ function Invoke-DownloadXcodeArchive {
return $tempXipDirectory
}
function Resolve-ExactXcodeVersion {
param (
[Parameter(Mandatory)]
[string] $Version
)
# if toolset string contains spaces, consider it as a full name of Xcode
if ($Version -match "\s") {
return $Version
}
$semverVersion = [SemVer]::Parse($Version)
$availableVersions = Get-AvailableXcodeVersions
$satisfiedVersions = $availableVersions | Where-Object { $semverVersion -eq $_.stableSemver }
return $satisfiedVersions | Select-Object -Last 1 -ExpandProperty rawVersion
}
function Get-AvailableXcodeVersions {
$rawVersionsList = Invoke-XCVersion -Arguments "list" | ForEach-Object { $_.Trim() } | Where-Object { $_ -match "^\d" }
$availableVersions = $rawVersionsList | ForEach-Object {
$partStable,$partMajor = $_.Split(" ", 2)
$semver = $stableSemver = [SemVer]::Parse($partStable)
if ($partMajor) {
# Convert 'beta 3' -> 'beta.3', 'Release Candidate' -> 'releasecandidate', 'GM Seed 2' -> 'gmseed.2'
$normalizedLabel = $partMajor.toLower() -replace " (\d)", '.$1' -replace " ([a-z])", '$1'
$semver = [SemVer]::new($stableSemver.Major, $stableSemver.Minor, $stableSemver.Patch, $normalizedLabel)
}
return [PSCustomObject]@{
semver = $semver
rawVersion = $_
stableSemver = $stableSemver
}
}
return $availableVersions | Sort-Object -Property semver
}
function Expand-XcodeXipArchive {
param (
[Parameter(Mandatory)]
@@ -105,16 +145,18 @@ function Approve-XcodeLicense {
}
}
function Install-XcodeAdditionalComponents {
function Install-XcodeAdditionalPackages {
param (
[Parameter(Mandatory)]
[string] $Version
)
Write-Host "Installing additional MetalToolchain component for Xcode $Version..."
Write-Host "Installing additional packages for Xcode $Version..."
$xcodeRootPath = Get-XcodeRootPath -Version $Version
$xcodeBuildPath = Get-XcodeToolPath -XcodeRootPath $xcodeRootPath -ToolName "xcodebuild"
Invoke-ValidateCommand "$xcodeBuildPath -downloadComponent MetalToolchain" | Out-Null
$packages = Get-ChildItem -Path "$xcodeRootPath/Contents/Resources/Packages" -Filter "*.pkg" -File
$packages | ForEach-Object {
Invoke-ValidateCommand "sudo installer -pkg $($_.FullName) -target / -allowUntrusted"
}
}
function Invoke-XcodeRunFirstLaunch {
@@ -128,7 +170,7 @@ function Invoke-XcodeRunFirstLaunch {
Invoke-ValidateCommand "sudo $xcodeRootPath -runFirstLaunch"
}
function Install-XcodeAdditionalSimulatorRuntimes {
function Install-AdditionalSimulatorRuntimes {
param (
[Parameter(Mandatory)]
[string] $Version,
@@ -316,23 +358,3 @@ function Invoke-ValidateCommand {
Receive-Job -Job $job
}
}
function Update-DyldCache {
param (
[Parameter(Mandatory)]
[array] $XcodeVersions
)
# Find the latest stable Xcode version (excluding beta and RC versions)
$latestStableXcode = $XcodeVersions | Where-Object {
-not ($_.link.Contains("beta") -or $_.link.Contains("Release_Candidate") -or $_.link.Contains("_RC"))
} | Sort-Object { [version]($_.version -split '\+')[0] } -Descending | Select-Object -First 1
if ($latestStableXcode) {
Write-Host "Updating dyld shared cache for Xcode $($latestStableXcode.link)..."
Switch-Xcode -Version $latestStableXcode.link
Invoke-ValidateCommand "xcrun simctl runtime dyld_shared_cache update --all"
} else {
Write-Host "No stable Xcode version found for dyld cache update."
}
}
-4
View File
@@ -45,10 +45,6 @@ is_Arm64() {
[ "$(arch)" = "arm64" ]
}
is_Tahoe() {
[ "$OSTYPE" = "darwin25" ]
}
is_Sequoia() {
[ "$OSTYPE" = "darwin24" ]
}
@@ -56,7 +56,7 @@ Describe "Perl" {
}
}
Describe "Tcl/Tk" -Skip:(-not ($os.IsVenturaX64 -or $os.IsSonomaX64)) {
Describe "Tcl/Tk" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoia) {
It "libtcl" {
Test-Path "/usr/local/lib/libtcl8.6.dylib" | Should -BeTrue
Test-Path "/usr/local/lib/libtk8.6.dylib" | Should -BeTrue
@@ -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
}
}
@@ -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
@@ -0,0 +1,23 @@
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
$os = Get-OSVersion
Describe "MongoDB" -Skip:($os.IsVentura -or $os.IsSonoma -or $os.IsSequoia) {
It "<ToolName>" -TestCases @(
@{ ToolName = "mongo" }
@{ ToolName = "mongod" }
) {
$toolsetVersion = (Get-ToolsetContent).mongodb.version
(&$ToolName --version)[2].Split('"')[-2] | Should -BeLike "$toolsetVersion*"
}
}
Describe "PostgreSQL" -Skip:($os.IsVentura -or $os.IsSonoma -or $os.IsSequoia) {
It "PostgreSQL version should correspond to the version in the toolset" {
$toolsetVersion = (Get-ToolsetContent).postgresql.version
# Client version
(psql --version).split()[-2] | Should -BeLike "$toolsetVersion*"
# Server version
(pg_config --version).split()[-2] | Should -BeLike "$toolsetVersion*"
}
}
+1 -1
View File
@@ -2,7 +2,7 @@ Import-Module "$PSScriptRoot/Helpers.psm1" -DisableNameChecking
$os = Get-OSVersion
Describe "SwiftLint" -Skip:($os.IsArm64) {
Describe "SwiftLint" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoiaArm64) {
It "SwiftLint" {
"swiftlint version" | Should -ReturnZeroExitCode
}
+2 -18
View File
@@ -1,7 +1,5 @@
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
$os = Get-OSVersion
Describe "OpenSSL" {
Context "OpenSSL Version" {
It "OpenSSL is available" {
@@ -9,31 +7,17 @@ Describe "OpenSSL" {
}
}
Context "OpenSSL 1.1 Path Check" -Skip:($os.IsTahoe) {
Context "OpenSSL 1.1 Path Check" {
It "OpenSSL 1.1 path exists" {
$openSSLpath = brew --prefix openssl@1.1
$openSSLpath | Should -Exist
}
}
Context "OpenSSL 1.1 is default" -Skip:($os.IsTahoe) {
Context "OpenSSL 1.1 is default" {
It "Default OpenSSL version is 1.1" {
$commandResult = Get-CommandResult "openssl version"
$commandResult.Output | Should -Match "OpenSSL 1.1"
}
}
Context "OpenSSL 3 Path Check" -Skip:(-not $os.IsTahoe) {
It "OpenSSL 3 path exists" {
$openSSLpath = brew --prefix openssl@3
$openSSLpath | Should -Exist
}
}
Context "OpenSSL 3 is default" -Skip:(-not $os.IsTahoe) {
It "Default OpenSSL version is 3" {
$commandResult = Get-CommandResult "openssl version"
$commandResult.Output | Should -Match "OpenSSL 3"
}
}
}
+2 -2
View File
@@ -3,7 +3,7 @@ Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
$os = Get-OSVersion
Describe "PHP" {
Context "PHP" -Skip:($os.IsArm64) {
Context "PHP" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoiaArm64) {
It "PHP Path" {
Get-ToolPath "php" | Should -Not -BeLike "/usr/bin/php*"
}
@@ -14,7 +14,7 @@ Describe "PHP" {
}
}
Context "Composer" -Skip:($os.IsArm64) {
Context "Composer" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoiaArm64) {
It "Composer" {
"composer --version" | Should -ReturnZeroExitCode
}
+16 -6
View File
@@ -8,13 +8,13 @@ Describe "Python3" {
"python3 --version" | Should -ReturnZeroExitCode
}
if ($os.IsArm64) {
if ($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoiaArm64) {
It "Python 3 is installed under /opt/homebrew/bin/" {
Get-ToolPath "python3" | Should -BeLike "/opt/homebrew/bin/*"
}
} else {
It "Python 3 is installed under /usr/local/bin" {
Get-ToolPath "python3" | Should -BeLike "/usr/local/bin/*"
Get-ToolPath "python3" | Should -BeLike "/usr/local/bin*"
}
}
@@ -26,15 +26,25 @@ Describe "Python3" {
"pipx --version" | Should -ReturnZeroExitCode
}
It "Pip 3 and Python 3 came from the same path prefix" {
It "Pip 3 and Python 3 came from the same brew formula" {
$pip3Path = Split-Path (readlink (which pip3))
$python3Path = Split-Path (readlink (which python3))
$pip3Path | Should -BeExactly $python3Path
}
It "Pip 3 and Python 3 came from brew formula" {
Split-Path (readlink (which pip3)) | Should -BeLike "*/Cellar/*"
Split-Path (readlink (which python3)) | Should -BeLike "*/Cellar/*"
}
Describe "Python2" -Skip:($os.IsVentura -or $os.IsSonoma -or $os.IsSequoia) {
It "Python 2 is available" {
"/Library/Frameworks/Python.framework/Versions/2.7/bin/python --version" | Should -ReturnZeroExitCode
}
It "Pip 2 is available" {
"/Library/Frameworks/Python.framework/Versions/2.7/bin/pip --version" | Should -ReturnZeroExitCode
}
It "2to3 symlink does not point to Python 2" {
$2to3path = (Get-ChildItem (Get-Command 2to3).Path).Target
$2to3path | Should -Not -BeLike '/Frameworks/Python.framework/Versions/2.*'
}
}
@@ -25,3 +25,15 @@ Describe "Fastlane" {
"fastlane --version" | Should -ReturnZeroExitCode
}
}
Describe "xcpretty" -Skip:($os.IsVentura -or $os.IsSonoma -or $os.IsSequoia) {
It "xcpretty" {
"xcpretty --version" | Should -ReturnZeroExitCode
}
}
Describe "jazzy" -Skip:($os.IsVentura -or $os.IsSonoma -or $os.IsSequoia) {
It "jazzy" {
"jazzy --version" | Should -ReturnZeroExitCode
}
}
+17
View File
@@ -18,4 +18,21 @@ Describe "Rust" {
"cargo --version" | Should -ReturnZeroExitCode
}
}
Context "Cargo dependencies" -Skip:($os.IsVentura -or $os.IsSonoma -or $os.IsSequoia) {
It "bindgen" {
"bindgen --version" | Should -ReturnZeroExitCode
}
It "cbindgen" {
"cbindgen --version" | Should -ReturnZeroExitCode
}
It "Cargo audit" {
"cargo audit --version" | Should -ReturnZeroExitCode
}
It "Cargo outdated" {
"cargo outdated --version" | Should -ReturnZeroExitCode
}
}
}
@@ -30,6 +30,16 @@ Describe "Certificate" {
}
}
Describe "Audio device" -Skip:($os.IsVentura -or $os.IsSonoma -or $os.IsSequoia) {
It "Sox is installed" {
"sox --version" | Should -ReturnZeroExitCode
}
It "SwitchAudioSource is installed" {
"SwitchAudioSource -c" | Should -ReturnZeroExitCode
}
}
Describe "AutomationModeTool" {
It "Does not require user authentication" {
automationmodetool | Out-String | Should -Match "DOES NOT REQUIRE"
@@ -57,7 +57,7 @@ Describe "Toolcache" {
}
}
Context "Ruby" {
Context "Ruby" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSequoiaArm64) {
$rubyDirectory = Join-Path $toolcacheDirectory "Ruby"
$rubyPackage = $packages | Where-Object { $_.ToolName -eq "Ruby" } | Select-Object -First 1
$testCase = @{ RubyDirectory = $rubyDirectory }
@@ -99,7 +99,7 @@ Describe "Toolcache" {
}
}
}
Context "PyPy" -Skip:(-not $os.IsVenturaX64) {
Context "PyPy" -Skip:($os.IsVenturaArm64 -or $os.IsSonoma -or $os.IsSequoia) {
$pypyDirectory = Join-Path $toolcacheDirectory "PyPy"
$pypyPackage = $packages | Where-Object { $_.ToolName -eq "pypy" } | Select-Object -First 1
$testCase = @{ PypyDirectory = $pypyDirectory }
@@ -247,10 +247,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"
]
}
@@ -247,10 +247,8 @@ build {
"${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"
]
}
@@ -246,10 +246,8 @@ build {
"${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"
]
}
@@ -1,292 +0,0 @@
packer {
required_plugins {
veertu-anka = {
version = ">= v3.2.0"
source = "github.com/veertuinc/veertu-anka"
}
}
}
locals {
image_folder = "/Users/${var.vm_username}/image-generation"
}
variable "builder_type" {
type = string
default = "veertu-anka-vm-clone"
validation {
condition = contains(["veertu-anka-vm-clone", "null"], var.builder_type)
error_message = "The builder_type value must be one of [veertu-anka-vm-clone, null]."
}
}
variable "source_vm_name" {
type = string
}
variable "source_vm_port" {
type = number
default = 22
}
variable "source_vm_tag" {
type = string
default = ""
}
variable "socks_proxy" {
type = string
default = ""
}
variable "build_id" {
type = string
}
variable "vm_username" {
type = string
sensitive = true
}
variable "vm_password" {
type = string
sensitive = true
}
variable "github_api_pat" {
type = string
sensitive = true
default = ""
}
variable "xcode_install_storage_url" {
type = string
sensitive = true
}
variable "xcode_install_sas" {
type = string
sensitive = true
}
variable "vcpu_count" {
type = string
default = "6"
}
variable "ram_size" {
type = string
default = "8G"
}
variable "image_os" {
type = string
default = "macos26"
}
source "veertu-anka-vm-clone" "template" {
vm_name = "${var.build_id}"
source_vm_name = "${var.source_vm_name}"
source_vm_tag = "${var.source_vm_tag}"
vcpu_count = "${var.vcpu_count}"
ram_size = "${var.ram_size}"
stop_vm = "true"
log_level = "debug"
}
source "null" "template" {
ssh_host = "${var.source_vm_name}"
ssh_port = "${var.source_vm_port}"
ssh_username = "${var.vm_username}"
ssh_password = "${var.vm_password}"
ssh_proxy_host = "${var.socks_proxy}"
}
build {
sources = ["source.${var.builder_type}.template"]
provisioner "shell" {
inline = ["mkdir ${local.image_folder}"]
}
provisioner "file" {
destination = "${local.image_folder}/"
sources = [
"${path.root}/../scripts/tests",
"${path.root}/../scripts/docs-gen",
"${path.root}/../scripts/helpers"
]
}
provisioner "file" {
destination = "${local.image_folder}/docs-gen/"
source = "${path.root}/../../../helpers/software-report-base"
}
provisioner "file" {
destination = "${local.image_folder}/add-certificate.swift"
source = "${path.root}/../assets/add-certificate.swift"
}
provisioner "file" {
destination = ".bashrc"
source = "${path.root}/../assets/bashrc"
}
provisioner "file" {
destination = ".bash_profile"
source = "${path.root}/../assets/bashprofile"
}
provisioner "shell" {
inline = ["mkdir ~/bootstrap"]
}
provisioner "file" {
destination = "bootstrap"
source = "${path.root}/../assets/bootstrap-provisioner/"
}
provisioner "file" {
destination = "${local.image_folder}/toolset.json"
source = "${path.root}/../toolsets/toolset-26.json"
}
provisioner "shell" {
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
inline = [
"mv ${local.image_folder}/docs-gen ${local.image_folder}/software-report",
"mkdir ~/utils",
"mv ${local.image_folder}/helpers/invoke-tests.sh ~/utils",
"mv ${local.image_folder}/helpers/utils.sh ~/utils"
]
}
provisioner "shell" {
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/install-xcode-clt.sh",
"${path.root}/../scripts/build/install-homebrew.sh",
"${path.root}/../scripts/build/install-rosetta.sh"
]
}
provisioner "shell" {
environment_vars = ["PASSWORD=${var.vm_password}", "USERNAME=${var.vm_username}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/configure-tccdb-macos.sh",
"${path.root}/../scripts/build/configure-autologin.sh",
"${path.root}/../scripts/build/configure-auto-updates.sh",
"${path.root}/../scripts/build/configure-ntpconf.sh",
"${path.root}/../scripts/build/configure-shell.sh"
]
}
provisioner "shell" {
environment_vars = ["IMAGE_VERSION=${var.build_id}", "IMAGE_OS=${var.image_os}", "PASSWORD=${var.vm_password}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/configure-preimagedata.sh",
"${path.root}/../scripts/build/configure-ssh.sh",
"${path.root}/../scripts/build/configure-machine.sh"
]
}
provisioner "shell" {
execute_command = "source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
expect_disconnect = true
inline = ["echo 'Reboot VM'", "shutdown -r now"]
}
provisioner "shell" {
environment_vars = ["API_PAT=${var.github_api_pat}", "USER_PASSWORD=${var.vm_password}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
pause_before = "30s"
scripts = [
"${path.root}/../scripts/build/configure-windows.sh",
"${path.root}/../scripts/build/install-powershell.sh",
"${path.root}/../scripts/build/install-dotnet.sh",
"${path.root}/../scripts/build/install-python.sh",
"${path.root}/../scripts/build/install-azcopy.sh",
"${path.root}/../scripts/build/install-ruby.sh",
"${path.root}/../scripts/build/install-rubygems.sh",
"${path.root}/../scripts/build/install-git.sh",
"${path.root}/../scripts/build/install-node.sh",
"${path.root}/../scripts/build/install-common-utils.sh"
]
}
provisioner "shell" {
environment_vars = ["XCODE_INSTALL_STORAGE_URL=${var.xcode_install_storage_url}", "XCODE_INSTALL_SAS=${var.xcode_install_sas}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
script = "${path.root}/../scripts/build/Install-Xcode.ps1"
}
provisioner "shell" {
execute_command = "source $HOME/.bash_profile; sudo {{ .Vars }} {{ .Path }}"
expect_disconnect = true
inline = ["echo 'Reboot VM'", "shutdown -r now"]
}
provisioner "shell" {
environment_vars = ["API_PAT=${var.github_api_pat}", "IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/install-actions-cache.sh",
"${path.root}/../scripts/build/install-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",
"${path.root}/../scripts/build/install-rust.sh",
"${path.root}/../scripts/build/install-gcc.sh",
"${path.root}/../scripts/build/install-cocoapods.sh",
"${path.root}/../scripts/build/install-android-sdk.sh",
"${path.root}/../scripts/build/install-vcpkg.sh",
"${path.root}/../scripts/build/install-safari.sh",
"${path.root}/../scripts/build/install-chrome.sh",
"${path.root}/../scripts/build/install-firefox.sh",
"${path.root}/../scripts/build/install-bicep.sh",
"${path.root}/../scripts/build/install-codeql-bundle.sh",
"${path.root}/../scripts/build/install-edge.sh"
]
}
provisioner "shell" {
environment_vars = ["IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
scripts = [
"${path.root}/../scripts/build/Install-Toolset.ps1",
"${path.root}/../scripts/build/Configure-Toolset.ps1"
]
}
provisioner "shell" {
environment_vars = ["IMAGE_FOLDER=${local.image_folder}"]
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} pwsh -f {{ .Path }}"
script = "${path.root}/../scripts/build/Configure-Xcode-Simulators.ps1"
}
provisioner "shell" {
environment_vars = ["IMAGE_FOLDER=${local.image_folder}"]
execute_command = "source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
inline = [
"pwsh -File \"${local.image_folder}/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"${local.image_folder}/output/software-report\" -ImageName ${var.build_id}",
"pwsh -File \"${local.image_folder}/tests/RunAll-Tests.ps1\""
]
}
provisioner "file" {
destination = "${path.root}/../../image-output/"
direction = "download"
source = "${local.image_folder}/output/"
}
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"
]
}
}
+20 -23
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": "default", "sha256": "04E93680C6DDBEC84666531BE412DE778AFC8EAC6AB2037F4C2BE7290818B59B"},
{ "link": "15.1", "version": "15.1.0+15C65", "install_runtimes": "default", "sha256": "857D8DB537BAC82BF99DE0E1D3895D214D4D02101C1340CEF3DAF6E821BA1D05"},
{ "link": "15.0.1", "version": "15.0.1+15A507", "symlinks": ["15.0"], "install_runtimes": "default", "sha256": "5AC17AE6060CAFC3C7112C6DA0B153450BE21F1DE6632777FBA9FBC9D999C9E8"},
{ "link": "14.3.1", "version": "14.3.1+14E300c","symlinks": ["14.3"], "install_runtimes": "default", "sha256": "B5CC7BF37447C32A971B37D71C7DA1AF7ABB45CEE4B96FE126A1D3B0D2C260AF"},
{ "link": "14.2", "version": "14.2.0+14C18", "install_runtimes": "default", "sha256": "686B9D53CA49E50D563BC0104B1E8B4F7CCFE80064A6D689965FB819BF8EFE72"},
{ "link": "14.1", "version": "14.1.0+14B47b", "install_runtimes": "default", "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": "default", "sha256": "04E93680C6DDBEC84666531BE412DE778AFC8EAC6AB2037F4C2BE7290818B59B"},
{ "link": "15.1", "version": "15.1.0+15C65", "install_runtimes": "default", "sha256": "857D8DB537BAC82BF99DE0E1D3895D214D4D02101C1340CEF3DAF6E821BA1D05"},
{ "link": "15.0.1", "version": "15.0.1+15A507", "symlinks": ["15.0"], "install_runtimes": "default", "sha256": "5AC17AE6060CAFC3C7112C6DA0B153450BE21F1DE6632777FBA9FBC9D999C9E8"},
{ "link": "14.3.1", "version": "14.3.1+14E300c","symlinks": ["14.3"], "install_runtimes": "default", "sha256": "B5CC7BF37447C32A971B37D71C7DA1AF7ABB45CEE4B96FE126A1D3B0D2C260AF"},
{ "link": "14.2", "version": "14.2.0+14C18", "install_runtimes": "default", "sha256": "686B9D53CA49E50D563BC0104B1E8B4F7CCFE80064A6D689965FB819BF8EFE72"},
{ "link": "14.1", "version": "14.1.0+14B47b", "install_runtimes": "default", "sha256": "12F8A3AEF78BF354470AD8B351ADDD925C8EDAD888137D138CA50A8130EB9F2F"}
]
}
},
@@ -55,7 +55,7 @@
{
"name": "Az",
"versions": [
"12.5.0"
"12.4.0"
]
},
{ "name": "Pester" },
@@ -95,8 +95,7 @@
"versions": [
"12",
"13",
"14",
"15"
"14"
]
},
"dotnet": {
@@ -136,16 +135,14 @@
"3.10.*",
"3.11.*",
"3.12.*",
"3.13.*",
"3.14.*"
"3.13.*"
]
},
"arm64": {
"versions": [
"3.11.*",
"3.12.*",
"3.13.*",
"3.14.*"
"3.13.*"
]
}
}
@@ -194,19 +191,19 @@
"x64": {
"variable_template" : "GOROOT_{0}_{1}_X64",
"versions": [
"1.21.*",
"1.22.*",
"1.23.*",
"1.24.*",
"1.25.*"
"1.24.*"
]
},
"arm64": {
"variable_template" : "GOROOT_{0}_{1}_ARM64",
"versions": [
"1.21.*",
"1.22.*",
"1.23.*",
"1.24.*",
"1.25.*"
"1.24.*"
]
}
}
+19 -34
View File
@@ -5,7 +5,6 @@
"versions": [
{
"link": "16.2",
"filename": "16.2",
"version": "16.2+16C5032a",
"sha256": "0e367d06eb7c334ea143bada5e4422f56688aabff571bedf0d2ad9434b7290de",
"install_runtimes": [
@@ -16,42 +15,36 @@
},
{
"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"],
@@ -63,7 +56,6 @@
"versions": [
{
"link": "16.2",
"filename": "16.2",
"version": "16.2+16C5032a",
"sha256": "0e367d06eb7c334ea143bada5e4422f56688aabff571bedf0d2ad9434b7290de",
"install_runtimes": [
@@ -75,42 +67,36 @@
},
{
"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"],
@@ -122,11 +108,11 @@
"java": {
"x64": {
"default": "21",
"versions": [ "8", "11", "17", "21", "25" ]
"versions": [ "8", "11", "17", "21"]
},
"arm64": {
"default": "21",
"versions": [ "11", "17", "21", "25" ]
"versions": [ "11", "17", "21"]
}
},
"android": {
@@ -139,13 +125,12 @@
],
"addons": [],
"additional_tools": [
"cmake;3.31.5",
"cmake;4.1.2"
"cmake;3.31.5"
],
"ndk": {
"default": "26",
"versions": [
"26", "27", "28", "29"
"26", "27", "28"
]
}
},
@@ -153,7 +138,7 @@
{
"name": "Az",
"versions": [
"12.5.0"
"12.4.0"
]
},
{ "name": "Pester" },
@@ -193,9 +178,9 @@
},
"gcc": {
"versions": [
"12",
"13",
"14",
"15"
"14"
]
},
"dotnet": {
@@ -234,16 +219,14 @@
"3.10.*",
"3.11.*",
"3.12.*",
"3.13.*",
"3.14.*"
"3.13.*"
]
},
"arm64": {
"versions": [
"3.11.*",
"3.12.*",
"3.13.*",
"3.14.*"
"3.13.*"
]
}
}
@@ -255,16 +238,16 @@
"arch": {
"x64": {
"versions": [
"18.*",
"20.*",
"22.*",
"24.*"
"22.*"
]
},
"arm64": {
"versions": [
"18.*",
"20.*",
"22.*",
"24.*"
"22.*"
]
}
}
@@ -277,19 +260,19 @@
"x64": {
"variable_template" : "GOROOT_{0}_{1}_X64",
"versions": [
"1.21.*",
"1.22.*",
"1.23.*",
"1.24.*",
"1.25.*"
"1.24.*"
]
},
"arm64": {
"variable_template" : "GOROOT_{0}_{1}_ARM64",
"versions": [
"1.21.*",
"1.22.*",
"1.23.*",
"1.24.*",
"1.25.*"
"1.24.*"
]
}
}
@@ -299,6 +282,7 @@
"arch": {
"x64": {
"versions": [
"3.1.*",
"3.2.*",
"3.3.*",
"3.4.*"
@@ -306,6 +290,7 @@
},
"arm64": {
"versions": [
"3.1.*",
"3.2.*",
"3.3.*",
"3.4.*"
+45 -89
View File
@@ -1,124 +1,82 @@
{
"xcode": {
"default": "16.4",
"default": "16",
"x64": {
"versions": [
{
"link": "26.1_Release_Candidate",
"filename": "26.1_Release_Candidate_Universal",
"version": "26.1_Release_Candidate_Universal+17B54",
"symlinks": ["26.1"],
"sha256": "6504F2527444D295585515C7E41A862FFD701E3255D6634A40A714C4895E6CCD",
"install_runtimes": "none"
},
{
"link": "26.0.1",
"filename": "26.0.1_Universal",
"version": "26.0.1+17A400",
"symlinks": ["26.0"],
"sha256": "9881c457068c86ac91e94cca2d7116dfd01cb7179c22b0863b63c7f3bb7e7695",
"install_runtimes": "default"
},
{
"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",
"link": "16.3",
"version": "16.3+16E140",
"sha256": "c593177b73e45f31e1cf7ced131760d8aa8e1532f5bbf8ba11a4ded01da14fbb",
"install_runtimes": "none"
"install_runtimes": [
{ "iOS": ["18.0", "18.1", "18.2", "18.3.1", "18.4"] },
{ "watchOS": ["11.0", "11.1", "11.2", "11.4"] },
{ "tvOS": ["18.0", "18.1", "18.2", "18.4"] }
]
},
{
"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": "15.4",
"version": "15.4.0+15F31d",
"sha256": "82d3d61804ff3f4c7c82085e91dc701037ddaa770e542848b2477e22f4e8aa7a",
"install_runtimes": "default"
}
]
},
"arm64":{
"versions": [
{
"link": "26.1_Release_Candidate",
"filename": "26.1_Release_Candidate_Universal",
"version": "26.1_Release_Candidate_Universal+17B54",
"symlinks": ["26.1"],
"sha256": "6504F2527444D295585515C7E41A862FFD701E3255D6634A40A714C4895E6CCD",
"install_runtimes": "none"
},
{
"link": "26.0.1",
"filename": "26.0.1_Universal",
"version": "26.0.1+17A400",
"symlinks": ["26.0"],
"sha256": "9881c457068c86ac91e94cca2d7116dfd01cb7179c22b0863b63c7f3bb7e7695",
"install_runtimes": "default"
},
{
"link": "16.4",
"filename": "16.4",
"version": "16.4.0+16F6",
"sha256": "2dbf65ba28fb85b34e72c14c529a42d5c3189ab0f11fb29fdebd5f4ee6c87900",
"link": "16.3",
"version": "16.3+16E140",
"sha256": "c593177b73e45f31e1cf7ced131760d8aa8e1532f5bbf8ba11a4ded01da14fbb",
"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"] }
{ "iOS": ["18.0", "18.1", "18.2", "18.3.1", "18.4"] },
{ "watchOS": ["11.0", "11.1", "11.2", "11.4"] },
{ "tvOS": ["18.0", "18.1", "18.2", "18.4"] },
{ "visionOS": ["2.0", "2.1", "2.2", "2.3", "2.4"] }
]
},
{
"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": "15.4",
"version": "15.4.0+15F31d",
"sha256": "82d3d61804ff3f4c7c82085e91dc701037ddaa770e542848b2477e22f4e8aa7a",
"install_runtimes": "default"
}
]
}
@@ -126,11 +84,11 @@
"java": {
"x64": {
"default": "21",
"versions": [ "11", "17", "21", "25" ]
"versions": [ "11", "17", "21"]
},
"arm64": {
"default": "21",
"versions": [ "11", "17", "21", "25" ]
"versions": [ "11", "17", "21"]
}
},
"android": {
@@ -143,13 +101,12 @@
],
"addons": [],
"additional_tools": [
"cmake;3.31.5",
"cmake;4.1.2"
"cmake;3.31.5"
],
"ndk": {
"default": "27",
"versions": [
"26", "27","28", "29"
"26", "27","28"
]
}
},
@@ -157,7 +114,7 @@
{
"name": "Az",
"versions": [
"12.5.0"
"12.4.0"
]
},
{ "name": "Pester" },
@@ -182,7 +139,6 @@
"perl",
"pkgconf",
"swiftformat",
"tcl-tk@8",
"zstd",
"ninja",
"gmp",
@@ -197,9 +153,9 @@
},
"gcc": {
"versions": [
"12",
"13",
"14",
"15"
"14"
]
},
"dotnet": {
@@ -238,16 +194,14 @@
"3.10.*",
"3.11.*",
"3.12.*",
"3.13.*",
"3.14.*"
"3.13.*"
]
},
"arm64": {
"versions": [
"3.11.*",
"3.12.*",
"3.13.*",
"3.14.*"
"3.13.*"
]
}
}
@@ -259,16 +213,16 @@
"arch": {
"x64": {
"versions": [
"18.*",
"20.*",
"22.*",
"24.*"
"22.*"
]
},
"arm64": {
"versions": [
"18.*",
"20.*",
"22.*",
"24.*"
"22.*"
]
}
}
@@ -281,19 +235,19 @@
"x64": {
"variable_template" : "GOROOT_{0}_{1}_X64",
"versions": [
"1.21.*",
"1.22.*",
"1.23.*",
"1.24.*",
"1.25.*"
"1.24.*"
]
},
"arm64": {
"variable_template" : "GOROOT_{0}_{1}_ARM64",
"versions": [
"1.21.*",
"1.22.*",
"1.23.*",
"1.24.*",
"1.25.*"
"1.24.*"
]
}
}
@@ -303,6 +257,7 @@
"arch": {
"x64": {
"versions": [
"3.1.*",
"3.2.*",
"3.3.*",
"3.4.*"
@@ -310,6 +265,7 @@
},
"arm64": {
"versions": [
"3.1.*",
"3.2.*",
"3.3.*",
"3.4.*"
-201
View File
@@ -1,201 +0,0 @@
{
"xcode": {
"default": "26.0.1",
"arm64":{
"versions": [
{
"link": "26.1_Release_Candidate",
"filename": "26.1_Release_Candidate_Universal",
"version": "26.1_Release_Candidate_Universal+17B54",
"symlinks": ["26.1"],
"sha256": "6504F2527444D295585515C7E41A862FFD701E3255D6634A40A714C4895E6CCD",
"install_runtimes": "default"
},
{
"link": "26.0.1",
"filename": "26.0.1_Universal",
"version": "26.0.1+17A400",
"symlinks": ["26.0"],
"sha256": "9881c457068c86ac91e94cca2d7116dfd01cb7179c22b0863b63c7f3bb7e7695",
"install_runtimes": "default"
},
{
"link": "16.4",
"filename": "16.4",
"version": "16.4.0+16F6",
"sha256": "2dbf65ba28fb85b34e72c14c529a42d5c3189ab0f11fb29fdebd5f4ee6c87900",
"install_runtimes": [
{ "iOS": ["18.5", "18.6"] },
{ "watchOS": ["11.5"] },
{ "tvOS": ["18.5"] },
{ "visionOS": ["2.5"] }
]
}
]
}
},
"java": {
"x64": {
"default": "21",
"versions": [ "11", "17", "21", "25" ]
},
"arm64": {
"default": "21",
"versions": [ "11", "17", "21", "25" ]
}
},
"android": {
"cmdline-tools": "commandlinetools-mac-12266719_latest.zip",
"sdk-tools": "sdk-tools-darwin-4333796.zip",
"platform_min_version": "35",
"build_tools_min_version": "35.0.0",
"extras": [
"android;m2repository", "google;m2repository", "google;google_play_services"
],
"addons": [],
"additional_tools": [
"cmake;3.31.5",
"cmake;4.1.2"
],
"ndk": {
"default": "27",
"versions": [
"27","28", "29"
]
}
},
"powershellModules": [
{
"name": "Az",
"versions": [
"14.3.0"
]
},
{ "name": "Pester" },
{ "name": "PSScriptAnalyzer" }
],
"brew": {
"common_packages": [
"ant",
"aria2",
"azure-cli",
"bazelisk",
"carthage",
"cmake",
"gh",
"gnupg",
"gnu-tar",
"kotlin",
"libpq",
"libsodium",
"openssl",
"p7zip",
"packer",
"perl",
"pkgconf",
"swiftformat",
"zstd",
"ninja",
"gmp",
"yq",
"unxip",
"xcbeautify",
"xcodes"
],
"cask_packages": [
"parallels"
]
},
"gcc": {
"versions": [
"13",
"14",
"15"
]
},
"dotnet": {
"arch":{
"arm64": {
"versions": [
"8.0",
"9.0"
]
}
}
},
"ruby": {
"default": "3.4",
"rubygems": [
"cocoapods",
"bundler",
"fastlane"
]
},
"toolcache": [
{
"name": "Python",
"url" : "https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json",
"platform" : "darwin",
"arch": {
"arm64": {
"versions": [
"3.11.*",
"3.12.*",
"3.13.*",
"3.14.*"
]
}
}
},
{
"name": "Node",
"url" : "https://raw.githubusercontent.com/actions/node-versions/main/versions-manifest.json",
"platform" : "darwin",
"arch": {
"arm64": {
"versions": [
"20.*",
"22.*",
"24.*"
]
}
}
},
{
"name": "Go",
"url" : "https://raw.githubusercontent.com/actions/go-versions/main/versions-manifest.json",
"platform" : "darwin",
"arch": {
"arm64": {
"variable_template" : "GOROOT_{0}_{1}_ARM64",
"versions": [
"1.23.*",
"1.24.*",
"1.25.*"
]
}
}
},
{
"name": "Ruby",
"arch": {
"arm64": {
"versions": [
"3.2.*",
"3.3.*",
"3.4.*"
]
}
}
}
],
"node": {
"default": "24"
},
"llvm": {
"version": "20"
},
"pwsh": {
"version": "7.4"
}
}
+400
View File
@@ -0,0 +1,400 @@
| Announcements |
|-|
| [[Ubuntu-24] Clang version 19 will be added, and the default Clang will be set to 19 from 2025-05-09.](https://github.com/actions/runner-images/issues/11895) |
| [[Ubuntu] Breaking change : Docker Engine Version 26.* will be updated to Docker Engine Version 28* from 2025-05-09](https://github.com/actions/runner-images/issues/11766) |
***
# Ubuntu 20.04
- OS Version: 20.04.6 LTS
- Kernel Version: 5.15.0-1086-azure
- Image Version: 20250406.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.4
- 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.8
- Perl 5.30.0
- Python 3.8.10
- Ruby 2.7.0p0
- Swift 6.1
### Package Management
- cpan 1.64
- Helm 3.17.2
- Homebrew 4.4.27
- 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 856505bb76)
- 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.13
- Lerna 8.2.1
- Maven 3.9.9
- Sbt 1.10.11
### Tools
- Ansible 2.13.13
- apt-fast 1.10.0
- AzCopy 10.28.1 - available by `azcopy` and `azcopy10` aliases
- Bazel 8.1.1
- Bazelisk 1.25.0
- Bicep 0.34.44
- Buildah 1.22.3
- CMake 3.31.6
- CodeQL Action Bundle 2.20.7
- Docker Amazon ECR Credential Helper 0.9.1
- Docker Compose v2 2.27.1
- Docker-Buildx 0.22.0
- Docker Client 26.1.3
- Docker Server 26.1.3
- Fastlane 2.227.0
- Git 2.49.0
- Git LFS 3.6.1
- Git-ftp 1.6.0
- Haveged 1.9.1
- Heroku 10.4.1
- HHVM (HipHop VM) 4.172.1
- jq 1.6
- Kind 0.27.0
- Kubectl 1.32.3
- 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.2
- OpenSSL 1.1.1f-1ubuntu2.24
- Packer 1.12.0
- Parcel 2.14.4
- PhantomJS 2.1.1 2.1.1
- Podman 3.4.2
- Pulumi 3.160.0
- R 4.4.3
- Skopeo 1.5.0
- Sphinx Open Source Search Server 2.2.11
- SVN 1.13.0
- Terraform 1.11.3
- yamllint 1.35.1
- yq 4.45.1
- zstd 1.5.7
- Ninja 1.12.1
### CLI Tools
- Alibaba Cloud CLI 3.0.174
- AWS CLI 2.25.11
- AWS CLI Session Manager Plugin 1.2.707.0
- AWS SAM CLI 1.136.0
- Azure CLI 2.71.0
- Azure CLI (azure-devops) 1.0.1
- GitHub CLI 2.69.0
- Google Cloud CLI 517.0.0
- Netlify CLI 19.1.5
- OpenShift CLI 4.15.19
- ORAS CLI 1.2.2
- Vercel CLI 41.4.1
### 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.32, 8.2.28, 8.3.19
- Composer 2.8.8
- 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.2
- GHCup 0.1.50.1
- Stack 3.5.1
### Rust Tools
- Cargo 1.86.0
- Rust 1.86.0
- Rustdoc 1.86.0
- Rustup 1.28.1
#### Packages
- Bindgen 0.71.1
- Cargo audit 0.21.2
- Cargo clippy 0.1.86
- Cargo outdated 0.17.0
- Cbindgen 0.28.0
- Rustfmt 1.8.0
### Browsers and Drivers
- Google Chrome 135.0.7049.52
- ChromeDriver 135.0.7049.42
- Chromium 135.0.7049.0
- Microsoft Edge 135.0.3179.54
- Microsoft Edge WebDriver 135.0.3179.54
- Selenium server 4.31.0
- Mozilla Firefox 136.0.4
- Geckodriver 0.36.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.407, 9.0.202
- nbgv 3.7.115+d31f50f4d1
### Databases
- MongoDB 5.0.31
- sqlite3 3.31.1
#### PostgreSQL
- PostgreSQL 14.17
```
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.8
#### Node.js
- 18.20.8
- 20.19.0
- 22.14.0
#### 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.19]
- 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.19]
#### Ruby
- 3.0.7
- 3.1.7
- 3.2.8
- 3.3.7
### PowerShell Tools
- PowerShell 7.4.7
#### PowerShell Modules
- Az: 12.1.0
- MarkdownPS: 1.10
- Microsoft.Graph: 2.26.1
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.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 | 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 | 35.0.2 |
| Android SDK Platforms | android-36 (rev 1)<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.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:de0eb0b3f2a47ba1eb89389859a9bd88b28e82f5826b6969ad604979713c2d4f | 2025-02-14 |
| alpine:3.19 | sha256:e5d0aea7f7d2954678a9a6269ca2d06e06591881161961ea59e974dff3f12377 | 2025-02-14 |
| debian:10 | sha256:58ce6f1271ae1c8a2006ff7d3e54e9874d839f573d8009c20154ad0f2fb0a225 | 2024-06-13 |
| debian:11 | sha256:5c028c19adaab78491711830600749729a8276b9839416716d5d7339ec3d7216 | 2025-03-17 |
| debian:9 | sha256:c5c5200ff1e9c73ffbf188b4a67eb1c91531b644856b4aefe86a58d2f0cb05be | 2022-06-23 |
| moby/buildkit:latest | sha256:c457984bd29f04d6acc90c8d9e717afe3922ae14665f3187e0096976fe37b1c8 | 2025-03-24 |
| node:18 | sha256:3c56248510700ddb4861bd478ea2ced828793fd5388a21adc5270cdbbf7b7919 | 2025-03-27 |
| node:18-alpine | sha256:8d6421d663b4c28fd3ebc498332f249011d118945588d0a35cb9bc4b8ca09d9e | 2025-03-27 |
| node:20 | sha256:735b1ba7e4550c415f98568efbf527e3f75828ac4f10692e490ca78e11d89f6e | 2025-03-13 |
| node:20-alpine | sha256:8bda036ddd59ea51a23bc1a1035d3b5c614e72c01366d989f4120e8adca196d4 | 2025-03-13 |
| node:22 | sha256:c7fd844945a76eeaa83cb372e4d289b4a30b478a1c80e16c685b62c54156285b | 2025-02-13 |
| node:22-alpine | sha256:9bef0ef1e268f60627da9ba7d7605e8831d5b56ad07487d24d1aa386336d1944 | 2025-02-13 |
| 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.10 |
| 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.4 |
| 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.12 |
| 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.2 |
| 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.12 |
| 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 | 2025b-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.20 |
| xz-utils | 5.2.4-1ubuntu1.1 |
| zip | 3.0-11build1 |
| zsync | 0.6.2-3ubuntu1 |
+148 -153
View File
@@ -1,13 +1,12 @@
| Announcements |
|-|
| [[Ubuntu] `man-db` automatic updates will be disabled on November 10th](https://github.com/actions/runner-images/issues/13213) |
| [[Ubuntu & Windows] Four tools scheduled for deprecation on November 3, 2025](https://github.com/actions/runner-images/issues/12898) |
| [[Ubuntu] Breaking change : Docker Engine Version 26.* will be updated to Docker Engine Version 28* from 2025-05-09](https://github.com/actions/runner-images/issues/11766) |
***
# Ubuntu 22.04
- OS Version: 22.04.5 LTS
- Kernel Version: 6.8.0-1041-azure
- Image Version: 20251102.127.1
- Systemd version: 249.11-0ubuntu3.17
- Kernel Version: 6.8.0-1026-azure
- Image Version: 20250415.1.0
- Systemd version: 249.11-0ubuntu3.15
## Installed Software
@@ -19,28 +18,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.12.1
- Kotlin 2.2.21-release-469
- Julia 1.11.5
- 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.5
- Node.js 18.20.8
- Perl 5.34.0
- Python 3.10.12
- Ruby 3.0.2p107
- Swift 6.2
- Swift 6.1
### Package Management
- cpan 1.64
- Helm 3.19.0
- Homebrew 4.6.19
- Miniconda 25.9.1
- Helm 3.17.3
- Homebrew 4.4.31
- Miniconda 25.1.1
- Npm 10.8.2
- NuGet 6.6.1.2
- Pip 22.0.2
- Pip3 22.0.2
- Pipx 1.8.0
- Pipx 1.7.1
- RubyGems 3.3.5
- Vcpkg (build from commit e3ed41868d)
- Vcpkg (build from commit d5182f703b)
- Yarn 1.22.22
#### Environment variables
@@ -59,117 +58,116 @@ to accomplish this.
### Project Management
- Ant 1.10.12
- Gradle 9.2.0
- Lerna 9.0.0
- Maven 3.9.11
- Sbt 1.11.7
- Gradle 8.13
- Lerna 8.2.2
- Maven 3.9.9
- Sbt 1.10.11
### Tools
- Ansible 2.17.14
- Ansible 2.17.10
- apt-fast 1.10.0
- AzCopy 10.31.0 - available by `azcopy` and `azcopy10` aliases
- Bazel 8.4.2
- AzCopy 10.28.1 - available by `azcopy` and `azcopy10` aliases
- Bazel 8.2.0
- Bazelisk 1.26.0
- Bicep 0.38.33
- Bicep 0.34.44
- Buildah 1.23.1
- CMake 3.31.6
- CodeQL Action Bundle 2.23.3
- Docker Amazon ECR Credential Helper 0.10.1
- Docker Compose v2 2.38.2
- Docker-Buildx 0.29.1
- Docker Client 28.0.4
- Docker Server 28.0.4
- Fastlane 2.228.0
- Git 2.51.2
- Git LFS 3.7.1
- CodeQL Action Bundle 2.21.0
- Docker Amazon ECR Credential Helper 0.9.1
- Docker Compose v2 2.27.1
- Docker-Buildx 0.22.0
- Docker Client 26.1.3
- Docker Server 26.1.3
- Fastlane 2.227.1
- Git 2.49.0
- Git LFS 3.6.1
- Git-ftp 1.6.0
- Haveged 1.9.14
- Heroku 10.15.0
- Heroku 10.6.0
- jq 1.6
- Kind 0.30.0
- Kubectl 1.34.1
- Kustomize 5.7.1
- Leiningen 2.12.0
- Kind 0.27.0
- Kubectl 1.32.3
- Kustomize 5.6.0
- Leiningen 2.11.2
- MediaInfo 21.09
- Mercurial 6.1.1
- Minikube 1.37.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.20
- Packer 1.14.2
- Parcel 2.16.0
- nvm 0.40.2
- OpenSSL 3.0.2-0ubuntu1.19
- Packer 1.12.0
- Parcel 2.14.4
- Podman 3.4.4
- Pulumi 3.205.0
- R 4.5.2
- Pulumi 3.162.0
- R 4.5.0
- Skopeo 1.4.1
- Sphinx Open Source Search Server 2.2.11
- SVN 1.14.1
- Terraform 1.13.4
- yamllint 1.37.1
- yq 4.48.1
- Terraform 1.11.4
- yamllint 1.37.0
- yq 4.45.1
- zstd 1.5.7
- Ninja 1.13.1
- Ninja 1.12.1
### CLI Tools
- Alibaba Cloud CLI 3.1.0
- AWS CLI 2.31.27
- Alibaba Cloud CLI 3.0.270
- AWS CLI 2.26.2
- AWS CLI Session Manager Plugin 1.2.707.0
- AWS SAM CLI 1.145.2
- Azure CLI 2.78.0
- Azure CLI (azure-devops) 1.0.2
- GitHub CLI 2.82.1
- Google Cloud CLI 545.0.0
- Netlify CLI 23.9.5
- OpenShift CLI 4.20.1
- ORAS CLI 1.3.0
- Vercel CLI 48.8.0
- AWS SAM CLI 1.137.1
- Azure CLI 2.71.0
- Azure CLI (azure-devops) 1.0.1
- GitHub CLI 2.70.0
- Google Cloud CLI 517.0.0
- Netlify CLI 20.0.0
- OpenShift CLI 4.18.8
- ORAS CLI 1.2.2
- Vercel CLI 41.6.0
### Java
| Version | Environment Variable |
| ------------------- | -------------------- |
| 8.0.472+8 | JAVA_HOME_8_X64 |
| 11.0.29+7 (default) | JAVA_HOME_11_X64 |
| 17.0.17+10 | JAVA_HOME_17_X64 |
| 21.0.9+10 | JAVA_HOME_21_X64 |
| 25.0.1+8 | JAVA_HOME_25_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.12
- PHPUnit 8.5.48
- Composer 2.8.8
- PHPUnit 8.5.41
```
Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled.
```
### Haskell Tools
- Cabal 3.16.0.0
- Cabal 3.14.2.0
- GHC 9.12.2
- GHCup 0.1.50.2
- Stack 3.7.1
- GHCup 0.1.50.1
- Stack 3.5.1
### Rust Tools
- Cargo 1.91.0
- Rust 1.91.0
- Rustdoc 1.91.0
- Rustup 1.28.2
- Cargo 1.86.0
- Rust 1.86.0
- Rustdoc 1.86.0
- Rustup 1.28.1
#### Packages
- Bindgen 0.72.1
- Bindgen 0.71.1
- Cargo audit 0.21.2
- Cargo clippy 0.1.91
- Cargo clippy 0.1.86
- Cargo outdated 0.17.0
- Cbindgen 0.29.2
- Cbindgen 0.28.0
- Rustfmt 1.8.0
### Browsers and Drivers
- Google Chrome 142.0.7444.59
- ChromeDriver 142.0.7444.59
- Chromium 142.0.7444.0
- Microsoft Edge 142.0.3595.53
- Microsoft Edge WebDriver 142.0.3595.53
- Selenium server 4.38.0
- Mozilla Firefox 144.0.2
- Google Chrome 135.0.7049.84
- ChromeDriver 135.0.7049.84
- Chromium 135.0.7049.0
- Microsoft Edge 135.0.3179.73
- Microsoft Edge WebDriver 135.0.3179.73
- Selenium server 4.31.0
- Mozilla Firefox 136.0.4
- Geckodriver 0.36.0
#### Environment variables
@@ -181,14 +179,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.121, 8.0.206, 8.0.318, 8.0.415, 9.0.111, 9.0.205, 9.0.306
- nbgv 3.8.118+69b3e0b5a0
- .NET Core SDK: 6.0.428, 8.0.408, 9.0.203
- nbgv 3.7.115+d31f50f4d1
### Databases
- sqlite3 3.37.2
#### PostgreSQL
- PostgreSQL 14.19
- PostgreSQL 14.17
```
User: postgres
PostgreSQL service is disabled by default.
@@ -196,7 +194,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.2
- MySQL 8.0.41-0ubuntu0.22.04.1
```
User: root
Password: root
@@ -206,48 +204,46 @@ 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.2.70.1
- SqlPackage 162.5.57.1
### Cached Tools
#### Go
- 1.21.13
- 1.22.12
- 1.23.12
- 1.24.9
- 1.25.3
- 1.23.8
#### Node.js
- 20.19.5
- 22.21.1
- 24.11.0
- 18.20.8
- 20.19.0
- 22.14.0
#### Python
- 3.9.24
- 3.10.19
- 3.11.14
- 3.12.12
- 3.13.9
- 3.14.0
- 3.8.18
- 3.9.22
- 3.10.17
- 3.11.12
- 3.12.10
- 3.13.3
#### 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]
#### Ruby
- 3.2.9
- 3.3.10
- 3.4.7
- 3.1.7
- 3.2.8
- 3.3.8
### PowerShell Tools
- PowerShell 7.4.13
- PowerShell 7.4.7
#### PowerShell Modules
- Az: 12.5.0
- Az: 12.1.0
- MarkdownPS: 1.10
- Microsoft.Graph: 2.32.0
- Microsoft.Graph: 2.26.1
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.0
@@ -258,26 +254,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 36.1.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.1 (rev 1)<br>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 | 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 | 35.0.2 |
| Android SDK Platforms | android-36 (rev 1)<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.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
@@ -286,18 +282,18 @@ 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:6baf43584bcb78f2e5847d1de515f23499913ac9f12bdf834811a3145eb11ca1 | 2025-10-08 |
| alpine:3.19 | sha256:e5d0aea7f7d2954678a9a6269ca2d06e06591881161961ea59e974dff3f12377 | 2025-02-14 |
| debian:10 | sha256:58ce6f1271ae1c8a2006ff7d3e54e9874d839f573d8009c20154ad0f2fb0a225 | 2024-06-13 |
| debian:11 | sha256:5e2b4654ea0dc0bc22434199dace15adf9799f292857679fa79f9395e6d4dafd | 2025-10-20 |
| moby/buildkit:latest | sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6 | 2025-10-07 |
| node:18 | sha256:c6ae79e38498325db67193d391e6ec1d224d96c693a8a4d943498556716d3783 | 2025-03-27 |
| debian:11 | sha256:aa5332dbbec7ff8cdf7dfb8b467c6ac2d55419104af1e49b6f1c22b996da391b | 2025-04-07 |
| moby/buildkit:latest | sha256:c457984bd29f04d6acc90c8d9e717afe3922ae14665f3187e0096976fe37b1c8 | 2025-03-24 |
| node:18 | sha256:df9fa4e0e39c9b97e30240b5bb1d99bdb861573a82002b2c52ac7d6b8d6d773e | 2025-03-27 |
| node:18-alpine | sha256:8d6421d663b4c28fd3ebc498332f249011d118945588d0a35cb9bc4b8ca09d9e | 2025-03-27 |
| node:20 | sha256:c11ae157cdd9f8b522d5a65e7f3f5f5c34cf45a8bd883c15e8f2028a2673dec7 | 2025-10-16 |
| node:20-alpine | sha256:6178e78b972f79c335df281f4b7674a2d85071aae2af020ffa39f0a770265435 | 2025-10-16 |
| node:22 | sha256:22ab967fdf8d9ce32387d0c06ab2e32c6793d860bb93ccce6e27927ccdfeee6d | 2025-10-29 |
| node:22-alpine | sha256:b2358485e3e33bc3a33114d2b1bdb18cdbe4df01bd2b257198eb51beb1f026c5 | 2025-10-29 |
| node:20 | sha256:a5fb035ac1dff34a4ecaea85f90f7321185695d3fd22c12ba12f4535a4647cc5 | 2025-03-13 |
| node:20-alpine | sha256:8bda036ddd59ea51a23bc1a1035d3b5c614e72c01366d989f4120e8adca196d4 | 2025-03-13 |
| node:22 | sha256:e5ddf893cc6aeab0e5126e4edae35aa43893e2836d1d246140167ccc2616f5d7 | 2025-02-13 |
| node:22-alpine | sha256:9bef0ef1e268f60627da9ba7d7605e8831d5b56ad07487d24d1aa386336d1944 | 2025-02-13 |
| ubuntu:20.04 | sha256:8feb4d8ca5354def3d8fce243717141ce31e2c428701f6682bd2fafe15388214 | 2025-04-08 |
| ubuntu:22.04 | sha256:09506232a8004baa32c47d68f1e5c307d648fdd59f5e7eaa42aaf87914100db3 | 2025-10-01 |
| ubuntu:22.04 | sha256:d80997daaa3811b175119350d84305e1ec9129e1799bba0bd1e3120da3ff52c3 | 2025-04-07 |
### Installed apt packages
| Name | Version |
@@ -306,16 +302,16 @@ 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.10 |
| binutils | 2.38-4ubuntu2.8 |
| bison | 2:3.8.2+dfsg-1build1 |
| brotli | 1.0.9-2build6 |
| bzip2 | 1.0.8-5build1 |
| coreutils | 8.32-4.1ubuntu1.2 |
| curl | 7.81.0-1ubuntu1.21 |
| curl | 7.81.0-1ubuntu1.20 |
| dbus | 1.12.20-2ubuntu4.1 |
| dnsutils | 1:9.18.39-0ubuntu0.22.04.2 |
| dpkg | 1.21.1ubuntu2.6 |
| dpkg-dev | 1.21.1ubuntu2.6 |
| dnsutils | 1:9.18.30-0ubuntu0.22.04.2 |
| dpkg | 1.21.1ubuntu2.3 |
| dpkg-dev | 1.21.1ubuntu2.3 |
| fakeroot | 1.28-1ubuntu1 |
| file | 1:5.41-3ubuntu0.1 |
| findutils | 4.8.0-1ubuntu3 |
@@ -324,17 +320,17 @@ Use the following command as a part of your job to start the service: 'sudo syst
| 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.3 |
| 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.11 |
| libcurl4 | 7.81.0-1ubuntu1.21 |
| 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 |
| libgsl-dev | 2.7.1+dfsg-3 |
@@ -342,24 +338,23 @@ Use the following command as a part of your job to start the service: 'sudo syst
| libmagic-dev | 1:5.41-3ubuntu0.1 |
| 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 |
| libnss3-tools | 2:3.98-0ubuntu0.22.04.2 |
| libsecret-1-dev | 0.20.5-2 |
| libsqlite3-dev | 3.37.2-2ubuntu0.5 |
| libssl-dev | 3.0.2-0ubuntu1.20 |
| libsqlite3-dev | 3.37.2-2ubuntu0.3 |
| libssl-dev | 3.0.2-0ubuntu1.19 |
| 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.11 |
| 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.11 |
| p7zip-full | 16.02+dfsg-8 |
| p7zip-rar | 16.02-3build1 |
| parallel | 20210822+ds-2 |
@@ -373,24 +368,24 @@ Use the following command as a part of your job to start the service: 'sudo syst
| 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.11 |
| 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.17 |
| systemd-coredump | 249.11-0ubuntu3.15 |
| 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 | 2025b-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.16 |
| xvfb | 2:21.1.4-2ubuntu1.7\~22.04.14 |
| xz-utils | 5.2.5-2ubuntu1 |
| zip | 3.0-12build2 |
| zsync | 0.6.2-3ubuntu1 |
+127 -134
View File
@@ -1,13 +1,12 @@
| Announcements |
|-|
| [[Ubuntu] `man-db` automatic updates will be disabled on November 10th](https://github.com/actions/runner-images/issues/13213) |
| [[Ubuntu & Windows] Four tools scheduled for deprecation on November 3, 2025](https://github.com/actions/runner-images/issues/12898) |
| [[Ubuntu] Breaking change : Docker Engine Version 26.* will be updated to Docker Engine Version 28* from 2025-05-09](https://github.com/actions/runner-images/issues/11766) |
***
# Ubuntu 24.04
- OS Version: 24.04.3 LTS
- Kernel Version: 6.11.0-1018-azure
- Image Version: 20251102.99.1
- Systemd version: 255.4-1ubuntu8.11
- OS Version: 24.04.2 LTS
- Kernel Version: 6.8.0-1021-azure
- Image Version: 20250413.1.0
- Systemd version: 255.4-1ubuntu8.6
## Installed Software
@@ -17,27 +16,27 @@
- Clang-format: 16.0.6, 17.0.6, 18.1.3
- Clang-tidy: 16.0.6, 17.0.6, 18.1.3
- Dash 0.5.12-6ubuntu5
- GNU C++: 12.4.0, 13.3.0, 14.2.0
- GNU Fortran: 12.4.0, 13.3.0, 14.2.0
- Julia 1.12.1
- Kotlin 2.2.21-release-469
- Node.js 20.19.5
- 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.4
- Kotlin 2.1.10-release-473
- Node.js 20.19.0
- Perl 5.38.2
- Python 3.12.3
- Ruby 3.2.3
- Swift 6.2
- Swift 6.1
### Package Management
- cpan 1.64
- Helm 3.19.0
- Homebrew 4.6.19
- Miniconda 25.9.1
- Helm 3.17.3
- Homebrew 4.4.29
- Miniconda 25.1.1
- Npm 10.8.2
- Pip 24.0
- Pip3 24.0
- Pipx 1.8.0
- Pipx 1.7.1
- RubyGems 3.4.20
- Vcpkg (build from commit e3ed41868d)
- Vcpkg (build from commit bc994510d2)
- Yarn 1.22.22
#### Environment variables
@@ -56,100 +55,99 @@ to accomplish this.
### Project Management
- Ant 1.10.14
- Gradle 9.2.0
- Lerna 9.0.0
- Maven 3.9.11
- Gradle 8.13
- Lerna 8.2.2
- Maven 3.9.9
### Tools
- Ansible 2.19.3
- AzCopy 10.31.0 - available by `azcopy` and `azcopy10` aliases
- Bazel 8.4.2
- Ansible 2.18.4
- AzCopy 10.28.1 - available by `azcopy` and `azcopy10` aliases
- Bazel 8.1.1
- Bazelisk 1.26.0
- Bicep 0.38.33
- Bicep 0.34.44
- Buildah 1.33.7
- CMake 3.31.6
- CodeQL Action Bundle 2.23.3
- Docker Amazon ECR Credential Helper 0.10.1
- Docker Compose v2 2.38.2
- Docker-Buildx 0.29.1
- Docker Client 28.0.4
- Docker Server 28.0.4
- Fastlane 2.228.0
- Git 2.51.2
- Git LFS 3.7.1
- CodeQL Action Bundle 2.21.0
- Docker Amazon ECR Credential Helper 0.9.1
- Docker Compose v2 2.27.1
- Docker-Buildx 0.22.0
- Docker Client 26.1.3
- Docker Server 26.1.3
- Fastlane 2.227.1
- Git 2.49.0
- Git LFS 3.6.1
- Git-ftp 1.6.0
- Haveged 1.9.14
- jq 1.7
- Kind 0.30.0
- Kubectl 1.34.1
- Kustomize 5.7.1
- Kind 0.27.0
- Kubectl 1.32.3
- Kustomize 5.6.0
- MediaInfo 24.01
- Mercurial 6.7.2
- Minikube 1.37.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.6
- Packer 1.14.2
- Parcel 2.16.0
- nvm 0.40.2
- OpenSSL 3.0.13-0ubuntu3.5
- Packer 1.12.0
- Parcel 2.14.4
- Podman 4.9.3
- Pulumi 3.205.0
- Pulumi 3.162.0
- Skopeo 1.13.3
- Sphinx Open Source Search Server 2.2.11
- yamllint 1.37.1
- yq 4.48.1
- yamllint 1.37.0
- yq 4.45.1
- zstd 1.5.7
- Ninja 1.13.1
- Ninja 1.12.1
### CLI Tools
- AWS CLI 2.31.27
- AWS CLI 2.26.1
- AWS CLI Session Manager Plugin 1.2.707.0
- AWS SAM CLI 1.145.2
- Azure CLI 2.78.0
- Azure CLI (azure-devops) 1.0.2
- GitHub CLI 2.82.1
- Google Cloud CLI 545.0.0
- AWS SAM CLI 1.137.1
- Azure CLI 2.71.0
- Azure CLI (azure-devops) 1.0.1
- GitHub CLI 2.69.0
- Google Cloud CLI 517.0.0
### Java
| Version | Environment Variable |
| -------------------- | -------------------- |
| 8.0.472+8 | JAVA_HOME_8_X64 |
| 11.0.29+7 | JAVA_HOME_11_X64 |
| 17.0.17+10 (default) | JAVA_HOME_17_X64 |
| 21.0.9+10 | JAVA_HOME_21_X64 |
| 25.0.1+8 | JAVA_HOME_25_X64 |
| Version | Environment Variable |
| ------------------- | -------------------- |
| 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.12
- PHPUnit 8.5.48
- Composer 2.8.8
- PHPUnit 8.5.41
```
Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled.
```
### Haskell Tools
- Cabal 3.16.0.0
- Cabal 3.14.2.0
- GHC 9.12.2
- GHCup 0.1.50.2
- Stack 3.7.1
- GHCup 0.1.50.1
- Stack 3.5.1
### Rust Tools
- Cargo 1.91.0
- Rust 1.91.0
- Rustdoc 1.91.0
- Rustup 1.28.2
- Cargo 1.86.0
- Rust 1.86.0
- Rustdoc 1.86.0
- Rustup 1.28.1
#### Packages
- Rustfmt 1.8.0
### Browsers and Drivers
- Google Chrome 142.0.7444.59
- ChromeDriver 142.0.7444.59
- Chromium 142.0.7444.0
- Microsoft Edge 142.0.3595.53
- Microsoft Edge WebDriver 142.0.3595.53
- Selenium server 4.38.0
- Mozilla Firefox 144.0.2
- Google Chrome 135.0.7049.84
- ChromeDriver 135.0.7049.84
- Chromium 135.0.7049.0
- Microsoft Edge 135.0.3179.73
- Microsoft Edge WebDriver 135.0.3179.73
- Selenium server 4.31.0
- Mozilla Firefox 136.0.4
- Geckodriver 0.36.0
#### Environment variables
@@ -161,14 +159,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.121, 8.0.206, 8.0.318, 8.0.415, 9.0.111, 9.0.205, 9.0.306
- nbgv 3.8.118+69b3e0b5a0
- .NET Core SDK: 8.0.115
- nbgv 3.7.115+d31f50f4d1
### Databases
- sqlite3 3.45.1
#### PostgreSQL
- PostgreSQL 16.10
- PostgreSQL 16.8
```
User: postgres
PostgreSQL service is disabled by default.
@@ -176,7 +174,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.2
- MySQL 8.0.41-0ubuntu0.24.04.1
```
User: root
Password: root
@@ -187,40 +185,36 @@ 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.9
- 1.25.3
- 1.23.8
#### Node.js
- 20.19.5
- 22.21.1
- 24.11.0
- 18.20.8
- 20.19.0
- 22.14.0
#### Python
- 3.9.24
- 3.10.19
- 3.11.14
- 3.12.12
- 3.13.9
- 3.14.0
- 3.9.22
- 3.10.17
- 3.11.12
- 3.12.10
- 3.13.3
#### PyPy
- 3.9.19 [PyPy 7.3.16]
- 3.10.16 [PyPy 7.3.19]
- 3.11.13 [PyPy 7.3.20]
#### Ruby
- 3.2.9
- 3.3.10
- 3.4.7
- 3.2.8
- 3.3.8
### PowerShell Tools
- PowerShell 7.4.13
- PowerShell 7.4.7
#### PowerShell Modules
- Az: 12.5.0
- Microsoft.Graph: 2.32.0
- Az: 12.1.0
- Microsoft.Graph: 2.26.1
- Pester: 5.7.1
- PSScriptAnalyzer: 1.24.0
@@ -231,26 +225,26 @@ 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 36.1.0<br>35.0.0 35.0.1<br>34.0.0 |
| Android SDK Platform-Tools | 36.0.0 |
| Android SDK Platforms | android-36.1 (rev 1)<br>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) |
| 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 | 36.0.0<br>35.0.0 35.0.1<br>34.0.0 |
| Android SDK Platform-Tools | 35.0.2 |
| Android SDK Platforms | android-36 (rev 1)<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.2.12479018 (default)<br>28.0.13004108 |
#### 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/28.0.13004108 |
| ANDROID_NDK_ROOT | /usr/local/lib/android/sdk/ndk/27.2.12479018 |
| ANDROID_SDK_ROOT | /usr/local/lib/android/sdk |
### Installed apt packages
@@ -260,16 +254,16 @@ Use the following command as a part of your job to start the service: 'sudo syst
| aria2 | 1.37.0+debian-1build3 |
| autoconf | 2.71-3 |
| automake | 1:1.16.5-1.3ubuntu1 |
| binutils | 2.42-4ubuntu2.6 |
| 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.1 |
| coreutils | 9.4-3ubuntu6 |
| curl | 8.5.0-2ubuntu10.6 |
| dbus | 1.14.10-4ubuntu4.1 |
| dnsutils | 1:9.18.39-0ubuntu0.24.04.2 |
| dpkg | 1.22.6ubuntu6.5 |
| dpkg-dev | 1.22.6ubuntu6.5 |
| 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 |
@@ -278,25 +272,24 @@ Use the following command as a part of your job to start the service: 'sudo syst
| ftp | 20230507-2build3 |
| g++ | 4:13.2.0-7ubuntu1 |
| gcc | 4:13.2.0-7ubuntu1 |
| gnupg2 | 2.4.4-2ubuntu17.3 |
| gnupg2 | 2.4.4-2ubuntu17.2 |
| 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 |
| libnss3-tools | 2:3.98-1build1 |
| libsqlite3-dev | 3.45.1-1ubuntu2.5 |
| libssl-dev | 3.0.13-0ubuntu3.6 |
| 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.5 |
| libtool | 2.4.7-7build1 |
| libyaml-dev | 0.2.5-1build1 |
| locales | 2.39-0ubuntu8.6 |
| 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.4 |
| net-tools | 2.10-0.1ubuntu4 |
| netcat | 1.226-1ubuntu2 |
| openssh-client | 1:9.6p1-3ubuntu13.14 |
| openssh-client | 1:9.6p1-3ubuntu13.9 |
| p7zip-full | 16.02+transitional.1 |
| p7zip-rar | 16.02+transitional.1 |
| parallel | 20231122+ds-1 |
@@ -309,23 +302,23 @@ Use the following command as a part of your job to start the service: 'sudo syst
| rsync | 3.2.7-1ubuntu1.2 |
| shellcheck | 0.9.0-1 |
| sphinxsearch | 2.2.11-8build1 |
| sqlite3 | 3.45.1-1ubuntu2.5 |
| ssh | 1:9.6p1-3ubuntu13.14 |
| sqlite3 | 3.45.1-1ubuntu2.1 |
| ssh | 1:9.6p1-3ubuntu13.9 |
| sshpass | 1.09-1 |
| sudo | 1.9.15p5-3ubuntu5.24.04.1 |
| sudo | 1.9.15p5-3ubuntu5 |
| swig | 4.2.0-2ubuntu1 |
| systemd-coredump | 255.4-1ubuntu8.11 |
| systemd-coredump | 255.4-1ubuntu8.6 |
| 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 |
| tzdata | 2025b-0ubuntu0.24.04 |
| unzip | 6.0-28ubuntu4.1 |
| upx | 4.2.2-3 |
| wget | 1.21.4-1ubuntu4.1 |
| xvfb | 2:21.1.12-1ubuntu1.5 |
| xvfb | 2:21.1.12-1ubuntu1.3 |
| xz-utils | 5.6.1+really5.4.5-1ubuntu0.2 |
| 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"
@@ -13,12 +13,12 @@ printf "https://archive.ubuntu.com/ubuntu/\tpriority:2\n" | tee -a /etc/apt/apt-
printf "https://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/https:\/\/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/https:\/\/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
@@ -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
@@ -78,7 +69,3 @@ fi
if is_ubuntu22; then
sed -i 's/openssl_conf = openssl_init/#openssl_conf = openssl_init/g' /etc/ssl/openssl.cnf
fi
# Disable man-db auto update
echo "set man-db/auto-update false" | debconf-communicate
dpkg-reconfigure man-db
@@ -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"
@@ -15,8 +15,8 @@ add_filtered_installation_components() {
local tools_array=("$@")
for item in ${tools_array[@]}; do
# Take the last version number that appears after the last '-' or ';'
item_version=$(echo "$item" | grep -oE '[-;][0-9.]+' | grep -oE '[0-9.]+')
# Take the last argument after splitting string by ';'' and '-''
item_version=$(echo "${item##*[-;]}")
# Semver 'comparison'. Add item to components array, if item's version is greater than or equal to minimum version
if [[ "$(printf "${minimum_version}\n${item_version}\n" | sort -V | head -n1)" == "$minimum_version" ]]; then
@@ -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/v3/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"
@@ -9,59 +9,83 @@ source $HELPER_SCRIPTS/etc-environment.sh
source $HELPER_SCRIPTS/install.sh
source $HELPER_SCRIPTS/os.sh
extract_dotnet_sdk() {
local archive_name=$1
set -e
destination="./tmp-$(basename -s .tar.gz $archive_name)"
echo "Extracting $archive_name to $destination"
mkdir "$destination" && tar -C "$destination" -xzf "$archive_name"
rsync -qav --remove-source-files "$destination/shared/" /usr/share/dotnet/shared/
rsync -qav --remove-source-files "$destination/host/" /usr/share/dotnet/host/
rsync -qav --remove-source-files "$destination/sdk/" /usr/share/dotnet/sdk/
rm -rf "$destination" "$archive_name"
}
# Ubuntu 20 doesn't support EOL versions
latest_dotnet_packages=$(get_toolset_value '.dotnet.aptPackages[]')
dotnet_versions=$(get_toolset_value '.dotnet.versions[]')
dotnet_tools=$(get_toolset_value '.dotnet.tools[].name')
# Disable telemetry
export DOTNET_CLI_TELEMETRY_OPTOUT=1
# Install dotnet dependencies
# https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu-decision#dependencies
# Install .NET SDK from apt
# There is a versions conflict, that leads to
# Microsoft <-> Canonical repos dependencies mix up.
# Give Microsoft's repo higher priority to avoid collisions.
# See: https://github.com/dotnet/core/issues/7699
cat << EOF > /etc/apt/preferences.d/dotnet
Package: *net*
Pin: origin packages.microsoft.com
Pin-Priority: 1001
EOF
apt-get update
apt-get install --no-install-recommends \
ca-certificates \
libc6 \
libgcc-s1 \
libgssapi-krb5-2 \
liblttng-ust1 \
libssl3 \
libstdc++6 \
zlib1g
if is_ubuntu22; then
apt-get install --no-install-recommends libicu70
fi
for latest_package in ${latest_dotnet_packages[@]}; do
echo "Determining if .NET Core ($latest_package) is installed"
if ! dpkg -S $latest_package &> /dev/null; then
echo "Could not find .NET Core ($latest_package), installing..."
apt-get install $latest_package
else
echo ".NET Core ($latest_package) is already installed"
fi
done
if is_ubuntu24; then
apt-get install --no-install-recommends libicu74
fi
rm /etc/apt/preferences.d/dotnet
# Install .NET SDKs and Runtimes
mkdir -p /usr/share/dotnet
apt-get update
# Install .NET SDK from home repository
# Get list of all released SDKs from channels which are not end-of-life or preview
sdks=()
for version in ${dotnet_versions[@]}; do
release_url="https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/${version}/releases.json"
releases=$(cat "$(download_with_retry "$release_url")")
sdks=("${sdks[@]}" $(echo "${releases}" | jq -r '.releases[].sdk.version | select(contains("preview") or contains("rc") | not)'))
sdks=("${sdks[@]}" $(echo "${releases}" | jq -r '.releases[].sdks[]?.version | select(contains("preview") or contains("rc") | not)'))
if [[ $version == "6.0" ]]; then
sdks=("${sdks[@]}" $(echo "${releases}" | jq -r 'first(.releases[].sdks[]?.version | select(contains("preview") or contains("rc") | not))'))
else
sdks=("${sdks[@]}" $(echo "${releases}" | jq -r '.releases[].sdk.version | select(contains("preview") or contains("rc") | not)'))
sdks=("${sdks[@]}" $(echo "${releases}" | jq -r '.releases[].sdks[]?.version | select(contains("preview") or contains("rc") | not)'))
fi
done
sorted_sdks=$(echo ${sdks[@]} | tr ' ' '\n' | sort -r | uniq -w 5)
## Download installer from dot.net
DOTNET_INSTALL_SCRIPT="https://dot.net/v1/dotnet-install.sh"
install_script_path=$(download_with_retry $DOTNET_INSTALL_SCRIPT)
chmod +x $install_script_path
# Download/install additional SDKs in parallel
export -f download_with_retry
export -f extract_dotnet_sdk
for sdk in ${sorted_sdks[@]}; do
echo "Installing .NET SDK $sdk"
$install_script_path --version $sdk --install-dir /usr/share/dotnet --no-path
done
parallel --jobs 0 --halt soon,fail=1 \
'url="https://dotnetcli.blob.core.windows.net/dotnet/Sdk/{}/dotnet-sdk-{}-linux-x64.tar.gz"; \
download_with_retry $url' ::: "${sorted_sdks[@]}"
## Dotnet installer doesn't create symlinks to executable or modify PATH
ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
find . -name "*.tar.gz" | parallel --halt soon,fail=1 'extract_dotnet_sdk {}'
# NuGetFallbackFolder at /usr/share/dotnet/sdk/NuGetFallbackFolder is warmed up by smoke test
# Additional FTE will just copy to ~/.dotnet/NuGet which provides no benefit on a fungible machine
set_etc_environment_variable DOTNET_SKIP_FIRST_TIME_EXPERIENCE 1
set_etc_environment_variable DOTNET_NOLOGO 1
set_etc_environment_variable DOTNET_MULTILEVEL_LOOKUP 0
@@ -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] https://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"
@@ -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"
@@ -9,7 +9,7 @@
source $HELPER_SCRIPTS/install.sh
KOTLIN_ROOT="/usr/share"
download_url=$(resolve_github_release_asset_url "JetBrains/kotlin" "contains(\"kotlin-compiler\") and endswith(\".zip\")" "latest")
download_url=$(resolve_github_release_asset_url "JetBrains/kotlin" "contains(\"kotlin-compiler\") and endswith(\".zip\")" "2.1.10")
archive_path=$(download_with_retry "$download_url")
# Supply chain security - Kotlin
@@ -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"
@@ -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"
+24 -3
View File
@@ -10,6 +10,27 @@ 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
# Install google-cloud-errors gem pinned to version 1.4.0
gem install google-cloud-errors -v 1.4.0
# Install faraday-net_http gem pinned to version 3.0.2
gem install faraday-net_http -v 3.0.2
# Install faraday gem pinned to version 2.8.1
gem install faraday -v 2.8.1
# Install google-cloud-env gem pinned to version 2.1.1
gem install google-cloud-env -v 2.1.1
# Install google-cloud-core gem pinned to version 1.7.1
gem install google-cloud-core -v 1.7.1
fi
# Install ruby gems from toolset
gems_to_install=$(get_toolset_value ".rubygems[] .name")
if [[ -n "$gems_to_install" ]]; then
@@ -23,9 +44,9 @@ fi
apt-get install libz-dev openssl libssl-dev
echo "Install Ruby from toolset..."
package_tar_names=$(curl -fsSL "https://api.github.com/repos/ruby/ruby-builder/releases/latest" | jq -r '.assets[].name')
toolset_versions=$(get_toolset_value '.toolcache[] | select(.name | contains("Ruby")) | .versions[]')
platform_version=$(get_toolset_value '.toolcache[] | select(.name | contains("Ruby")) | .platform_version')
arch=$(get_toolset_value '.toolcache[] | select(.name | contains("Ruby")) | .arch')
ruby_path="$AGENT_TOOLSDIRECTORY/Ruby"
echo "Check if Ruby hostedtoolcache folder exist..."
@@ -34,8 +55,7 @@ if [[ ! -d $ruby_path ]]; then
fi
for toolset_version in ${toolset_versions[@]}; do
download_url=$(resolve_github_release_asset_url "ruby/ruby-builder" "test(\"ruby-${toolset_version}-ubuntu-${platform_version}-${arch}.tar.gz\")" "${toolset_version}" "false" "true")
package_tar_name="${download_url##*/}"
package_tar_name=$(echo "$package_tar_names" | grep "^ruby-${toolset_version}-ubuntu-${platform_version}.tar.gz$" | sort -V | tail -1)
ruby_version=$(echo "$package_tar_name" | cut -d'-' -f 2)
ruby_version_path="$ruby_path/$ruby_version"
@@ -43,6 +63,7 @@ for toolset_version in ${toolset_versions[@]}; do
mkdir -p $ruby_version_path
echo "Downloading tar archive $package_tar_name"
download_url="https://github.com/ruby/ruby-builder/releases/download/toolcache/${package_tar_name}"
package_archive_path=$(download_with_retry "$download_url")
echo "Expand '$package_tar_name' to the '$ruby_version_path' folder"
@@ -23,6 +23,10 @@ if is_ubuntu22; then
cargo install --locked bindgen-cli cbindgen cargo-audit cargo-outdated
fi
if is_ubuntu20; then
cargo install --locked bindgen-cli cbindgen cargo-audit cargo-outdated
fi
# Cleanup Cargo cache
rm -rf ${CARGO_HOME}/registry/*
@@ -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,14 +139,17 @@ $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))
}
@@ -150,7 +160,7 @@ $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 +170,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 +204,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 +236,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))
@@ -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'
}
@@ -8,7 +8,6 @@ Describe "Apt" {
switch ($toolName) {
"acl" { $toolName = "getfacl"; break }
"aria2" { $toolName = "aria2c"; break }
"libnss3-tools" { $toolName = "certutil"; break }
"p7zip-full" { $toolName = "p7zip"; break }
"subversion" { $toolName = "svn"; break }
"sphinxsearch" { $toolName = "searchd"; break }

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