Compare commits
93
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ffed1742b0 | ||
|
|
a3ef6b2b8f | ||
|
|
84b177af16 | ||
|
|
7d634bd45a | ||
|
|
4e4e6cdb36 | ||
|
|
ee9ec37ac5 | ||
|
|
f2d2f38c0f | ||
|
|
7764984bf9 | ||
|
|
1fe6d0156d | ||
|
|
802455cbe6 | ||
|
|
bb6893f898 | ||
|
|
3ddf8d150b | ||
|
|
e14b36d131 | ||
|
|
514e429c4a | ||
|
|
0830eeb8fa | ||
|
|
e664a5c3f3 | ||
|
|
93af8363f9 | ||
|
|
1b73462b49 | ||
|
|
3cae8d73d3 | ||
|
|
7afeca2a81 | ||
|
|
2e271cf1d9 | ||
|
|
982b41742e | ||
|
|
3ad48e7597 | ||
|
|
eed8f18495 | ||
|
|
5119944d4c | ||
|
|
99c80a0773 | ||
|
|
676e808081 | ||
|
|
e039a9492f | ||
|
|
eee0743413 | ||
|
|
0e731c96a0 | ||
|
|
8b3114a482 | ||
|
|
29659cb4ed | ||
|
|
d795344f43 | ||
|
|
b3681d0108 | ||
|
|
0e1bcaf604 | ||
|
|
f1cb2c81e1 | ||
|
|
fd9887d6fe | ||
|
|
a0ba8eab14 | ||
|
|
09b8be3b79 | ||
|
|
45c39b922d | ||
|
|
cfcfdb7d62 | ||
|
|
c62eec6083 | ||
|
|
4b19e14210 | ||
|
|
fe9fe1c3f9 | ||
|
|
ed72980fd0 | ||
|
|
eba51f8f87 | ||
|
|
74a06c36b6 | ||
|
|
12dedd31ca | ||
|
|
a4fdd31766 | ||
|
|
fe23e4ab00 | ||
|
|
5f58af0964 | ||
|
|
a183847c57 | ||
|
|
79625a3639 | ||
|
|
d3fa237a67 | ||
|
|
d0d1862c4a | ||
|
|
df2584718f | ||
|
|
868bc6b53c | ||
|
|
9b1fa5a76c | ||
|
|
45c63aafc4 | ||
|
|
db8d413376 | ||
|
|
0d358721af | ||
|
|
20d9e86d33 | ||
|
|
0f04992252 | ||
|
|
9dd0b1a8d4 | ||
|
|
c5a12a401a | ||
|
|
f5d8f202e7 | ||
|
|
51e536326f | ||
|
|
dad935f2fe | ||
|
|
fe2c39a3ea | ||
|
|
f4280c339b | ||
|
|
e48d82f863 | ||
|
|
e90295a029 | ||
|
|
adfab0747f | ||
|
|
51665f3347 | ||
|
|
0b19ddce5a | ||
|
|
940f8ffaff | ||
|
|
6fdc2b30e3 | ||
|
|
b5d155ed87 | ||
|
|
62fa8463e4 | ||
|
|
abf5454735 | ||
|
|
c27d7d184a | ||
|
|
31875222a4 | ||
|
|
9b8c970943 | ||
|
|
a15f42d197 | ||
|
|
038f49e85c | ||
|
|
c88ab81ef3 | ||
|
|
b4e92c5650 | ||
|
|
1f107542ae | ||
|
|
10901db80b | ||
|
|
7901df4cde | ||
|
|
eecb8a7ff2 | ||
|
|
783b4575c4 | ||
|
|
aab6e27787 |
@@ -38,8 +38,7 @@ body:
|
||||
options:
|
||||
- label: Ubuntu 22.04
|
||||
- label: Ubuntu 24.04
|
||||
- label: macOS 13
|
||||
- label: macOS 13 Arm64
|
||||
- label: Ubuntu Slim
|
||||
- label: macOS 14
|
||||
- label: macOS 14 Arm64
|
||||
- label: macOS 15
|
||||
|
||||
@@ -21,8 +21,7 @@ body:
|
||||
options:
|
||||
- label: Ubuntu 22.04
|
||||
- label: Ubuntu 24.04
|
||||
- label: macOS 13
|
||||
- label: macOS 13 Arm64
|
||||
- label: Ubuntu Slim
|
||||
- label: macOS 14
|
||||
- label: macOS 14 Arm64
|
||||
- label: macOS 15
|
||||
|
||||
@@ -59,8 +59,7 @@ body:
|
||||
options:
|
||||
- label: Ubuntu 22.04
|
||||
- label: Ubuntu 24.04
|
||||
- label: macOS 13
|
||||
- label: macOS 13 Arm64
|
||||
- label: Ubuntu Slim
|
||||
- label: macOS 14
|
||||
- label: macOS 14 Arm64
|
||||
- label: macOS 15
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
# GitHub Copilot Instructions for Actions Runner Images Repository
|
||||
|
||||
## Scope and goals
|
||||
|
||||
- This repository serves as the source for building GitHub Actions runner and Azure DevOps agent images for Windows, Ubuntu, and macOS. You can find exact versions in the [Available Images](../README.md#available-images) section of README.md. Windows and Ubuntu images build on Azure infrastructure using Packer; macOS images use Anka virtualization.
|
||||
- Emphasize best practices for contributing to open-source projects, including code style, commit messages, and pull request etiquette.
|
||||
- Prefer clarity and correctness over creativity. If information is missing, ask clarifying questions or insert TODOs instead of guessing.
|
||||
|
||||
## Code and command instructions
|
||||
|
||||
- Follow the code style guide in [CONTRIBUTING.md](../CONTRIBUTING.md#code-style-guide) for Bash and PowerShell scripts, including naming conventions, file structure, and indentation rules.
|
||||
- Focus on re-using helpers when writing scripts. Windows, Linux and Ubuntu scripts have helper functions available to simplify installation and validation.
|
||||
- Always confirm versions and installation paths against existing toolset files and installation scripts.
|
||||
|
||||
## Output format
|
||||
|
||||
- Use GitHub Flavored Markdown only. Avoid raw HTML unless necessary.
|
||||
- One H1 (`#`) per page, followed by logical, sequential headings (`##`, `###`, …).
|
||||
- Use fenced code blocks with language identifiers (` ```bash `, ` ```json `, ` ```yaml `, etc.).
|
||||
- Use blockquote callouts for notes:
|
||||
> [!NOTE] Context or nuance
|
||||
> [!TIP] Helpful hint
|
||||
> [!WARNING] Risks or breaking changes
|
||||
> [!IMPORTANT] Critical requirement for functionality
|
||||
|
||||
## Style and tone
|
||||
|
||||
- Audience: Open-source contributors, GitHub Actions maintainers, and developers building custom runner images. Assume familiarity with CI/CD concepts, Packer, and basic infrastructure provisioning, but explain platform-specific details (Azure for Windows/Ubuntu, Anka for macOS) when relevant.
|
||||
- Voice: Second person ("you"), active voice, imperative for operational steps.
|
||||
- Be concise: short paragraphs and sentences. Prefer lists and step-by-steps, especially for operational procedures and troubleshooting.
|
||||
- Use inclusive, accessible language. Avoid idioms, sarcasm, and culturally specific references.
|
||||
- English: en-US (spelling, punctuation, and units).
|
||||
|
||||
## Safety and integrity
|
||||
|
||||
- Do not expose sensitive credentials (API tokens, Azure subscription IDs, etc.) in code examples.
|
||||
- Do not fabricate tool versions, installation paths, or software availability without verifying against toolset files or actual installation scripts.
|
||||
- Always call out assumptions and limitations explicitly, especially for changes affecting runner image behavior or software availability.
|
||||
- If ambiguous requests are made about image modifications, ask clarifying questions about target OS, tool versions, and compatibility requirements before proceeding.
|
||||
@@ -10,7 +10,7 @@ permissions:
|
||||
|
||||
jobs:
|
||||
check-pinning-dates:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-slim
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
|
||||
@@ -7,7 +7,7 @@ on:
|
||||
|
||||
jobs:
|
||||
Create_pull_request:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-slim
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
@@ -1,96 +1,112 @@
|
||||
name: Create SBOM for the release
|
||||
# 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"
|
||||
#
|
||||
# Current SYFT tool issues:
|
||||
# macOS (major): prompt privileges that blocking process indefinitely (https://github.com/anchore/syft/issues/1367)
|
||||
|
||||
run-name: Collecting SBOM for ${{ github.event.client_payload.agentSpec || 'unknown image' }} - ${{ github.event.client_payload.imageVersion || 'unknown version' }}
|
||||
|
||||
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 release for ${{ github.event.client_payload.agentSpec }}
|
||||
- name: Check SBOM asset for release ${{ env.RELEASE_ID }}
|
||||
id: check
|
||||
shell: pwsh
|
||||
run: |
|
||||
$apiUrl = "https://api.github.com/repos/actions/runner-images/releases/${{ github.event.client_payload.ReleaseID }}"
|
||||
$apiUrl = "https://api.github.com/repos/actions/runner-images/releases/$env:RELEASE_ID"
|
||||
$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 ${{ github.event.client_payload.ReleaseID }} wasn't found"
|
||||
Write-Error "Release $env:RELEASE_ID wasn't found"
|
||||
exit 1
|
||||
}
|
||||
foreach ($asset in $response.assets) {
|
||||
if ($asset.name -like '*sbom*') {
|
||||
echo "status=sbom_exists" >> $env:GITHUB_OUTPUT
|
||||
return "Release ${{ github.event.client_payload.ReleaseID }} already contains a SBOM"
|
||||
return "Release $env:RELEASE_ID 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 for ${{ github.event.client_payload.agentSpec }} - ${{ github.event.client_payload.imageVersion }}
|
||||
- name: Available image version check
|
||||
run: |
|
||||
$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 }}."
|
||||
$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'"
|
||||
}
|
||||
|
||||
- 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 /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
|
||||
|
||||
- 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-${{ github.event.client_payload.agentSpec }}-${{ github.event.client_payload.imageVersion }}
|
||||
name: sbom-${{ env.AGENT_SPEC }}-${{ env.IMAGE_VERSION }}
|
||||
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/${{ github.event.client_payload.ReleaseID }}/assets{?name,label}"
|
||||
upload_url: "https://uploads.github.com/repos/actions/runner-images/releases/${{ env.RELEASE_ID }}/assets{?name,label}"
|
||||
asset_path: ./sbom.json.zip
|
||||
asset_name: sbom.${{ github.event.client_payload.agentSpec }}.json.zip
|
||||
asset_name: sbom.${{ env.AGENT_SPEC }}.json.zip
|
||||
asset_content_type: application/zip
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
name: Test Docker Images
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'images/ubuntu-slim/**'
|
||||
- '.github/workflows/docker-images.yml'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'images/ubuntu-slim/**'
|
||||
- '.github/workflows/docker-images.yml'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
test-images:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
directory:
|
||||
- images/ubuntu-slim
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- name: Run test.sh
|
||||
working-directory: ${{ matrix.directory }}
|
||||
run: ./test.sh
|
||||
@@ -7,7 +7,7 @@ on:
|
||||
|
||||
jobs:
|
||||
Merge_pull_request:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-slim
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
@@ -7,7 +7,7 @@ on:
|
||||
|
||||
jobs:
|
||||
Update_GitHub_release:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-slim
|
||||
|
||||
steps:
|
||||
- name: Update release for ${{ github.event.client_payload.ReleaseBranchName }}
|
||||
|
||||
+188
-2
@@ -10,11 +10,18 @@ Contributions to this project are [released](https://help.github.com/articles/gi
|
||||
|
||||
Please note that this project is released with a [Contributor Code of Conduct][code-of-conduct]. By participating in this project, you agree to abide by its terms.
|
||||
|
||||
## Contents
|
||||
|
||||
- [Submitting a pull request](#submitting-a-pull-request)
|
||||
- [Adding a new tool to an image](#adding-a-new-tool-to-an-image)
|
||||
- [Code style guide](#code-style-guide)
|
||||
|
||||
|
||||
## Submitting a pull request
|
||||
|
||||
1. [Fork][fork] and clone the repository.
|
||||
1. Create a new branch: `git checkout -b my-branch-name`.
|
||||
1. Make your changes, ensuring that they include steps to install, validate post-install, and update the software report (please see [How to add a new tool](CONTRIBUTING.md#how-to-add-a-new-tool) for details).
|
||||
1. Make your changes, ensuring that they include steps to install, validate post-install, and update the software report (please see [Adding a new tool to an image](#adding-a-new-tool-to-an-image) for details).
|
||||
1. Test your changes by [creating an image and deploying a VM](docs/create-image-and-azure-resources.md).
|
||||
1. Push to your fork and [submit a pull request][pr].
|
||||
|
||||
@@ -28,7 +35,7 @@ Here are a few things you can do that will increase the likelihood of your pull
|
||||
- Make sure that the tool satisfies the [Software Guidelines](README.md#software-guidelines).
|
||||
- Create an issue and get approval from us to add this tool to the image before creating the pull request.
|
||||
|
||||
## How to add a new tool
|
||||
## Adding a new tool to an image
|
||||
|
||||
### General rules
|
||||
|
||||
@@ -60,6 +67,185 @@ Use existing scripts such as [github-cli.sh](images/ubuntu/scripts/build/github-
|
||||
The macOS source lives in this repository and is available for everyone. However, the macOS image-generation CI doesn't support external contributions yet, so we are not able to accept pull requests for now.
|
||||
We are in the process of preparing the macOS CI to accept contributions. Until then, we appreciate your patience and ask that you continue to make tool requests by filing issues.
|
||||
|
||||
## Code style guide
|
||||
|
||||
The principles of clean code apply to all languages. The main points are:
|
||||
|
||||
- Use meaningful names for variables, functions, files, etc.
|
||||
- Keep functions short and simple.
|
||||
- Use comments to explain what the code does.
|
||||
- Use a consistent code style, naming convention, and file structure.
|
||||
|
||||
### File structure
|
||||
|
||||
- Each file should have a header with a title and a short description of the file.
|
||||
- Each file should have a newline at the end.
|
||||
- Use blank lines to separate logical blocks of code, but don't abuse blank lines:
|
||||
- Don't add a blank line in the beginning and end of a block or function.
|
||||
- Don't add blank lines between logically connected statements.
|
||||
- Avoid trailing whitespace.
|
||||
|
||||
### Bash scripts
|
||||
|
||||
#### Naming convention for bash scripts
|
||||
|
||||
- Use lowercase letters for variable names.
|
||||
- Use uppercase letters for constants.
|
||||
- Use underscores to separate words in variable names.
|
||||
|
||||
#### Bash script structure
|
||||
|
||||
Each script should start with the following shebang:
|
||||
|
||||
```bash
|
||||
#!/bin/bash -e
|
||||
```
|
||||
|
||||
> TODO: do we need to set pipefail?
|
||||
|
||||
This will make the script exit if any command fails.
|
||||
|
||||
After the shebang, add a header with the following format:
|
||||
|
||||
```bash
|
||||
################################################################################
|
||||
## File: <filename>
|
||||
## Desc: <short description of what the script does>
|
||||
################################################################################
|
||||
```
|
||||
|
||||
Then import helpers that are used in the script.
|
||||
|
||||
For Linux:
|
||||
|
||||
```bash
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
source $HELPER_SCRIPTS/etc-environment.sh
|
||||
```
|
||||
|
||||
For macOS:
|
||||
|
||||
```bash
|
||||
source ~/utils/utils.sh
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> You don't need to import all helpers, only the ones that are used in the script.
|
||||
|
||||
After that, add the script code.
|
||||
|
||||
### Indentations and line breaks in bash scripts
|
||||
|
||||
- Use 4 spaces for indentation.
|
||||
- Use 1 space between `if`/`for`/`while` and `[[` and between `[[` and the condition.
|
||||
- Place `then`/`do` on the new line.
|
||||
- For short `if`/`for`/`while` statements, use the one-line format.
|
||||
- Break long pipelines using `\`.
|
||||
|
||||
### Other recommendations for bash scripts
|
||||
|
||||
- For command substitution, use `$()` instead of backticks.
|
||||
- Use `[[` instead of `[` for conditional expressions.
|
||||
- Prefer using long options instead of short keys, but there are exceptions, e.g.:
|
||||
- `tar -xzf`
|
||||
- `apt-get -yqq`
|
||||
- `curl -sSLf`
|
||||
- `wget -qO-`
|
||||
|
||||
### PowerShell scripts
|
||||
|
||||
#### Naming convention for PowerShell scripts
|
||||
|
||||
- Use camelCase for variable names.
|
||||
- Use uppercase letters for constants.
|
||||
- Use `Verb-Noun` and PascalCase for function names.
|
||||
|
||||
### PowerShell script structure
|
||||
|
||||
Each script should start with the following header:
|
||||
|
||||
```powershell
|
||||
################################################################################
|
||||
## File: <filename>
|
||||
## Desc: <short description of what the script does>
|
||||
################################################################################
|
||||
```
|
||||
|
||||
Then declare functions that are used in the script.
|
||||
|
||||
> TODO: do we need to set the error action preference and progress preference?
|
||||
>
|
||||
> ```powershell
|
||||
> $ErrorActionPreference = "Stop"
|
||||
> $ProgressPreference = "SilentlyContinue"
|
||||
> ```
|
||||
|
||||
For Linux and macOS, import helpers that are used in the script:
|
||||
|
||||
For Linux:
|
||||
|
||||
```powershell
|
||||
Import-Module "$env:HELPER_SCRIPTS/Tests.Helpers.psm1" -DisableNameChecking
|
||||
```
|
||||
|
||||
For macOS:
|
||||
|
||||
```powershell
|
||||
Import-Module "$env:HOME/image-generation/helpers/Common.Helpers.psm1"
|
||||
Import-Module "$env:HOME/image-generation/helpers/Xcode.Helpers.psm1" -DisableNameChecking
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> You don't need to import all helpers, only the ones that are used in the script.
|
||||
|
||||
After that, add the script code.
|
||||
|
||||
### Indentations and line breaks in PowerShell scripts
|
||||
|
||||
- Use 4 spaces for indentation.
|
||||
- Use 1 space between `if`/`elseif`/`foreach` and `(` but not between `(` and the condition.
|
||||
- Add a space before and after pipe `|` and redirection `>` operators.
|
||||
- Align properties in hash tables.
|
||||
- Use [1TBS](https://en.wikipedia.org/wiki/Indentation_style#Variant:_1TBS_(OTBS)) style for curly braces:
|
||||
- If block of statement is long, then place it on the new line, indent it, and add a closing curly brace on the new line.
|
||||
- If block of statement is short, then place it on the same line as the statement.
|
||||
|
||||
```powershell
|
||||
function Show-Example1 {
|
||||
$exampleVariable = Get-ChildItem $env:TEMP
|
||||
$exampleVariable | ForEach-Object {
|
||||
$itemName = $_.Name
|
||||
$itemPath = $_.FullName
|
||||
}
|
||||
}
|
||||
|
||||
$Example2 | Some-Function -Arguments @{Parameter1 = "Disabled"}
|
||||
```
|
||||
|
||||
- Avoid using aliases.
|
||||
- Break long pipelines using backticks or use [splatting](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_splatting?view=powershell-7.3):
|
||||
|
||||
```powershell
|
||||
# Instead of this
|
||||
Copy-Item -Path "test.txt" -Destination "test2.txt" -WhatIf
|
||||
|
||||
# you can use this
|
||||
$HashArguments = @{
|
||||
Path = "test.txt"
|
||||
Destination = "test2.txt"
|
||||
WhatIf = $true
|
||||
}
|
||||
Copy-Item @HashArguments
|
||||
```
|
||||
|
||||
When using backticks be extra careful with trailing whitespace as they can cause errors.
|
||||
|
||||
### Other recommendations for PowerShell scripts
|
||||
|
||||
- Verify exit codes of commands.
|
||||
- When writing a function, provide a docstring that describes what the function does.
|
||||
|
||||
## Resources
|
||||
|
||||
- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)
|
||||
|
||||
@@ -22,16 +22,15 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
|
||||
| --------------------|---------------------|--------------------|
|
||||
| Ubuntu 24.04 | `ubuntu-latest` or `ubuntu-24.04` | [ubuntu-24.04] |
|
||||
| Ubuntu 22.04 | `ubuntu-22.04` | [ubuntu-22.04] |
|
||||
| Ubuntu Slim | `ubuntu-slim` | [ubuntu-slim] |
|
||||
| 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  | `macos-13` or `macos-13-large` | [macOS-13] |
|
||||
| macOS 13 Arm64  | `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  | `windows-2019` | [windows-2019] |
|
||||
| Windows Server 2019 [](https://github.com/actions/runner-images/issues/12045) | `windows-2019` | [windows-2019] |
|
||||
|
||||
### Label scheme
|
||||
|
||||
@@ -40,11 +39,10 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
|
||||
|
||||
[ubuntu-24.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md
|
||||
[ubuntu-22.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md
|
||||
[ubuntu-slim]: https://github.com/actions/runner-images/blob/main/images/ubuntu-slim/ubuntu-slim-Readme.md
|
||||
[windows-2019]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2019-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
|
||||
[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
|
||||
|
||||
@@ -1,109 +1,107 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[macOS] Deprecation of Xcode 16.3 and older runtimes on macOS 15 on January 12th, 2026.](https://github.com/actions/runner-images/issues/13392) |
|
||||
| [[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
|
||||
- OS Version: macOS 14.7.6 (23H626)
|
||||
- OS Version: macOS 14.8.3 (23J220)
|
||||
- Kernel Version: Darwin 23.6.0
|
||||
- Image Version: 20250928.1654
|
||||
- Image Version: 20251215.0069.1
|
||||
|
||||
## Installed Software
|
||||
|
||||
### Language and Runtime
|
||||
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.414, 9.0.102, 9.0.203, 9.0.305
|
||||
- .NET Core SDK: 8.0.101, 8.0.204, 8.0.303, 8.0.416, 9.0.102, 9.0.203, 9.0.308, 10.0.101
|
||||
- Bash 3.2.57(1)-release
|
||||
- Clang/LLVM 15.0.0
|
||||
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
|
||||
- GCC 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
|
||||
- GNU Fortran 12 (Homebrew GCC 12.4.0) - available by `gfortran-12` 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.1.0) - available by `gfortran-15` alias
|
||||
- Kotlin 2.2.20-release-333
|
||||
- GNU Fortran 15 (Homebrew GCC 15.2.0) - available by `gfortran-15` alias
|
||||
- Kotlin 2.2.21-release-469
|
||||
- Mono 6.12.0.188
|
||||
- Node.js 20.19.5
|
||||
- Node.js 20.19.6
|
||||
- Perl 5.40.2
|
||||
- PHP 8.4.13
|
||||
- Python3 3.13.7
|
||||
- Ruby 3.3.9
|
||||
- PHP 8.5.0
|
||||
- Python3 3.14.2
|
||||
- Ruby 3.3.10
|
||||
|
||||
### Package Management
|
||||
- Bundler 2.7.2
|
||||
- Bundler 4.0.1
|
||||
- Carthage 0.40.0
|
||||
- CocoaPods 1.16.2
|
||||
- Composer 2.8.12
|
||||
- Homebrew 4.6.14
|
||||
- Composer 2.9.2
|
||||
- Homebrew 5.0.5
|
||||
- NPM 10.8.2
|
||||
- NuGet 6.3.1.1
|
||||
- Pip3 25.2 (python 3.13)
|
||||
- Pipx 1.7.1
|
||||
- RubyGems 3.7.2
|
||||
- Vcpkg 2025 (build from commit 2e6fcc4457)
|
||||
- Pip3 25.3 (python 3.14)
|
||||
- Pipx 1.8.0
|
||||
- RubyGems 4.0.1
|
||||
- Vcpkg 2025 (build from commit 594ad8871e)
|
||||
- Yarn 1.22.22
|
||||
|
||||
### Project Management
|
||||
- Apache Ant 1.10.15
|
||||
- Apache Maven 3.9.11
|
||||
- Gradle 9.1.0
|
||||
- Gradle 9.2.1
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.05
|
||||
- aria2 1.37.0
|
||||
- azcopy 10.30.1
|
||||
- bazel 8.4.1
|
||||
- azcopy 10.31.0
|
||||
- bazel 8.5.0
|
||||
- bazelisk 1.27.0
|
||||
- bsdtar 3.5.3 - available by 'tar' alias
|
||||
- Curl 8.16.0
|
||||
- Curl 8.17.0
|
||||
- Git 2.50.1
|
||||
- Git LFS 3.7.0
|
||||
- GitHub CLI 2.80.0
|
||||
- Git LFS 3.7.1
|
||||
- GitHub CLI 2.83.2
|
||||
- GNU Tar 1.35 - available by 'gtar' alias
|
||||
- GNU Wget 1.25.0
|
||||
- gpg (GnuPG) 2.4.8
|
||||
- jq 1.8.1
|
||||
- OpenSSL 1.1.1w 11 Sep 2023
|
||||
- Packer 1.14.2
|
||||
- Packer 1.14.3
|
||||
- pkgconf 2.5.1
|
||||
- Unxip 3.2
|
||||
- yq 4.47.2
|
||||
- yq 4.50.1
|
||||
- zstd 1.5.7
|
||||
- Ninja 1.13.1
|
||||
- Ninja 1.13.2
|
||||
|
||||
### Tools
|
||||
- AWS CLI 2.31.3
|
||||
- AWS SAM CLI 1.144.0
|
||||
- AWS Session Manager CLI 1.2.707.0
|
||||
- Azure CLI 2.77.0
|
||||
- AWS CLI 2.32.16
|
||||
- AWS SAM CLI 1.149.0
|
||||
- AWS Session Manager CLI 1.2.764.0
|
||||
- Azure CLI 2.81.0
|
||||
- Azure CLI (azure-devops) 1.0.2
|
||||
- Bicep CLI 0.37.4
|
||||
- Cmake 4.1.1
|
||||
- CodeQL Action Bundle 2.23.1
|
||||
- Fastlane 2.228.0
|
||||
- SwiftFormat 0.58.1
|
||||
- Xcbeautify 2.30.1
|
||||
- Bicep CLI 0.39.26
|
||||
- Cmake 4.2.1
|
||||
- CodeQL Action Bundle 2.23.8
|
||||
- Fastlane 2.229.1
|
||||
- SwiftFormat 0.58.7
|
||||
- Xcbeautify 3.1.2
|
||||
- Xcode Command Line Tools 16.2.0.0.1.1733547573
|
||||
- Xcodes 1.6.2
|
||||
|
||||
### Linters
|
||||
- SwiftLint 0.61.0
|
||||
- SwiftLint 0.62.2
|
||||
|
||||
### Browsers
|
||||
- Safari 18.5 (19621.2.5.18.1)
|
||||
- SafariDriver 18.5 (19621.2.5.18.1)
|
||||
- Google Chrome 140.0.7339.214
|
||||
- Google Chrome for Testing 140.0.7339.207
|
||||
- ChromeDriver 140.0.7339.207
|
||||
- Microsoft Edge 140.0.3485.94
|
||||
- Microsoft Edge WebDriver 140.0.3485.94
|
||||
- Mozilla Firefox 143.0.1
|
||||
- Safari 26.2 (19623.1.14.18.4)
|
||||
- SafariDriver 26.2 (19623.1.14.18.4)
|
||||
- Google Chrome 143.0.7499.110
|
||||
- Google Chrome for Testing 143.0.7499.42
|
||||
- ChromeDriver 143.0.7499.42
|
||||
- Microsoft Edge 143.0.3650.80
|
||||
- Microsoft Edge WebDriver 143.0.3650.80
|
||||
- Mozilla Firefox 146.0
|
||||
- geckodriver 0.36.0
|
||||
- Selenium server 4.35.0
|
||||
- Selenium server 4.38.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -113,52 +111,52 @@
|
||||
| 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.8+9.0 (default) | JAVA_HOME_21_X64 |
|
||||
| 25.0.0+36.0 | JAVA_HOME_25_X64 |
|
||||
| Version | Environment Variable |
|
||||
| --------------------- | -------------------- |
|
||||
| 8.0.472+8 | JAVA_HOME_8_X64 |
|
||||
| 11.0.29+7 | JAVA_HOME_11_X64 |
|
||||
| 17.0.17+10 | JAVA_HOME_17_X64 |
|
||||
| 21.0.9+10.0 (default) | JAVA_HOME_21_X64 |
|
||||
| 25.0.1+8.0 | JAVA_HOME_25_X64 |
|
||||
|
||||
### Cached Tools
|
||||
|
||||
#### Ruby
|
||||
- 3.1.7
|
||||
- 3.2.9
|
||||
- 3.3.9
|
||||
- 3.4.6
|
||||
- 3.3.10
|
||||
- 3.4.7
|
||||
|
||||
#### Python
|
||||
- 3.9.23
|
||||
- 3.10.18
|
||||
- 3.9.25
|
||||
- 3.10.19
|
||||
- 3.11.9
|
||||
- 3.12.10
|
||||
- 3.13.7
|
||||
- 3.13.11
|
||||
- 3.14.2
|
||||
|
||||
#### Node.js
|
||||
- 18.20.8
|
||||
- 20.19.5
|
||||
- 22.20.0
|
||||
- 20.19.6
|
||||
- 22.21.1
|
||||
- 24.12.0
|
||||
|
||||
#### Go
|
||||
- 1.22.12
|
||||
- 1.23.12
|
||||
- 1.24.7
|
||||
- 1.25.1
|
||||
- 1.24.11
|
||||
- 1.25.5
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.90.0
|
||||
- Rust 1.90.0
|
||||
- Rustdoc 1.90.0
|
||||
- Cargo 1.92.0
|
||||
- Rust 1.92.0
|
||||
- Rustdoc 1.92.0
|
||||
- Rustup 1.28.2
|
||||
|
||||
#### Packages
|
||||
- Clippy 0.1.90
|
||||
- Clippy 0.1.92
|
||||
- Rustfmt 1.8.0-stable
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.4.12
|
||||
- PowerShell 7.4.13
|
||||
|
||||
#### PowerShell Modules
|
||||
- Az: 12.5.0
|
||||
@@ -239,40 +237,40 @@
|
||||
| DriverKit 24.2 | driverkit24.2 | 16.2 |
|
||||
|
||||
#### Installed Simulators
|
||||
| OS | Simulators |
|
||||
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| iOS 17.0 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.2 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.4 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 17.5 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.1 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.2 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| tvOS 17.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| watchOS 10.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| 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) |
|
||||
|
||||
### Android
|
||||
| Package Name | Version |
|
||||
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 11.0 |
|
||||
| Android Emulator | 36.1.9 |
|
||||
| Android Emulator | 36.3.10 |
|
||||
| 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 |
|
||||
| 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 |
|
||||
| NDK | 26.3.11579264 (default)<br>27.3.13750724<br>28.2.13676358<br>29.0.14206865 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -280,7 +278,7 @@
|
||||
| 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/29.0.14206865 |
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
@@ -290,7 +288,7 @@
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| ----------------- | ----------------------------------------------------------------------------------------- |
|
||||
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v26/26.1.0-57287/ParallelsDesktop-26.1.0-57287.dmg |
|
||||
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v26/26.1.2-57293/ParallelsDesktop-26.1.2-57293.dmg |
|
||||
|
||||
##### Notes
|
||||
```
|
||||
|
||||
@@ -1,104 +1,102 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[macOS] Deprecation of Xcode 16.3 and older runtimes on macOS 15 on January 12th, 2026.](https://github.com/actions/runner-images/issues/13392) |
|
||||
| [[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
|
||||
- OS Version: macOS 14.8.1 (23J30)
|
||||
- OS Version: macOS 14.8.3 (23J220)
|
||||
- Kernel Version: Darwin 23.6.0
|
||||
- Image Version: 20251020.0056
|
||||
- Image Version: 20251216.0055.1
|
||||
|
||||
## 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.416, 9.0.102, 9.0.203, 9.0.308, 10.0.101
|
||||
- Bash 3.2.57(1)-release
|
||||
- Clang/LLVM 15.0.0
|
||||
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
|
||||
- GCC 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.2.0) - available by `gcc-15` 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.2.0) - available by `gfortran-15` alias
|
||||
- Kotlin 2.2.20-release-333
|
||||
- Kotlin 2.2.21-release-469
|
||||
- Mono 6.12.0.188
|
||||
- Node.js 20.19.5
|
||||
- Node.js 20.19.6
|
||||
- Perl 5.40.2
|
||||
- Python3 3.14.0
|
||||
- Ruby 3.3.9
|
||||
- Python3 3.14.2
|
||||
- Ruby 3.3.10
|
||||
|
||||
### Package Management
|
||||
- Bundler 2.7.2
|
||||
- Bundler 4.0.1
|
||||
- Carthage 0.40.0
|
||||
- CocoaPods 1.16.2
|
||||
- Homebrew 4.6.17
|
||||
- Homebrew 5.0.5
|
||||
- NPM 10.8.2
|
||||
- NuGet 6.3.1.1
|
||||
- Pip3 25.2 (python 3.14)
|
||||
- Pip3 25.3 (python 3.14)
|
||||
- Pipx 1.8.0
|
||||
- RubyGems 3.7.2
|
||||
- Vcpkg 2025 (build from commit 74e6536215)
|
||||
- RubyGems 4.0.1
|
||||
- Vcpkg 2025 (build from commit 9984495d19)
|
||||
- Yarn 1.22.22
|
||||
|
||||
### Project Management
|
||||
- Apache Ant 1.10.15
|
||||
- Apache Maven 3.9.11
|
||||
- Gradle 9.1.0
|
||||
- Gradle 9.2.1
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.05
|
||||
- aria2 1.37.0
|
||||
- azcopy 10.30.1
|
||||
- bazel 8.4.2
|
||||
- azcopy 10.31.0
|
||||
- bazel 8.5.0
|
||||
- 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.0
|
||||
- GitHub CLI 2.83.2
|
||||
- GNU Tar 1.35 - available by 'gtar' alias
|
||||
- GNU Wget 1.25.0
|
||||
- gpg (GnuPG) 2.4.8
|
||||
- jq 1.8.1
|
||||
- OpenSSL 1.1.1w 11 Sep 2023
|
||||
- Packer 1.14.2
|
||||
- Packer 1.14.3
|
||||
- pkgconf 2.5.1
|
||||
- Unxip 3.2
|
||||
- yq 4.48.1
|
||||
- yq 4.50.1
|
||||
- zstd 1.5.7
|
||||
- Ninja 1.13.1
|
||||
- Ninja 1.13.2
|
||||
|
||||
### Tools
|
||||
- AWS CLI 2.31.18
|
||||
- AWS SAM CLI 1.145.1
|
||||
- AWS Session Manager CLI 1.2.707.0
|
||||
- Azure CLI 2.78.0
|
||||
- AWS CLI 2.32.17
|
||||
- AWS SAM CLI 1.149.0
|
||||
- AWS Session Manager CLI 1.2.764.0
|
||||
- Azure CLI 2.81.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 2.30.1
|
||||
- Bicep CLI 0.39.26
|
||||
- Cmake 4.2.1
|
||||
- CodeQL Action Bundle 2.23.8
|
||||
- Fastlane 2.229.1
|
||||
- SwiftFormat 0.58.7
|
||||
- Xcbeautify 3.1.2
|
||||
- Xcode Command Line Tools 16.2.0.0.1.1733547573
|
||||
- Xcodes 1.6.2
|
||||
|
||||
### Browsers
|
||||
- Safari 26.0.1 (19622.1.22.118.4)
|
||||
- SafariDriver 26.0.1 (19622.1.22.118.4)
|
||||
- Google Chrome 141.0.7390.108
|
||||
- Google Chrome for Testing 141.0.7390.78
|
||||
- ChromeDriver 141.0.7390.78
|
||||
- Microsoft Edge 141.0.3537.85
|
||||
- Microsoft Edge WebDriver 141.0.3537.85
|
||||
- Mozilla Firefox 144.0
|
||||
- Safari 26.2 (19623.1.14.18.4)
|
||||
- SafariDriver 26.2 (19623.1.14.18.4)
|
||||
- Google Chrome 143.0.7499.110
|
||||
- Google Chrome for Testing 143.0.7499.42
|
||||
- ChromeDriver 143.0.7499.42
|
||||
- Microsoft Edge 143.0.3650.80
|
||||
- Microsoft Edge WebDriver 143.0.3650.80
|
||||
- Mozilla Firefox 146.0
|
||||
- geckodriver 0.36.0
|
||||
- Selenium server 4.36.0
|
||||
- Selenium server 4.38.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -108,51 +106,49 @@
|
||||
| GECKOWEBDRIVER | /opt/homebrew/opt/geckodriver/bin |
|
||||
|
||||
### Java
|
||||
| Version | Environment Variable |
|
||||
| -------------------- | -------------------- |
|
||||
| 11.0.28+6 | JAVA_HOME_11_arm64 |
|
||||
| 17.0.16+8 | JAVA_HOME_17_arm64 |
|
||||
| 21.0.8+9.0 (default) | JAVA_HOME_21_arm64 |
|
||||
| 25.0.0+36.0 | JAVA_HOME_25_arm64 |
|
||||
| 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.1.7
|
||||
- 3.2.9
|
||||
- 3.3.9
|
||||
- 3.3.10
|
||||
- 3.4.7
|
||||
|
||||
#### Python
|
||||
- 3.11.9
|
||||
- 3.12.10
|
||||
- 3.13.9
|
||||
- 3.14.0
|
||||
- 3.13.11
|
||||
- 3.14.2
|
||||
|
||||
#### Node.js
|
||||
- 18.20.8
|
||||
- 20.19.5
|
||||
- 22.20.0
|
||||
- 24.10.0
|
||||
- 20.19.6
|
||||
- 22.21.1
|
||||
- 24.12.0
|
||||
|
||||
#### Go
|
||||
- 1.22.12
|
||||
- 1.23.12
|
||||
- 1.24.9
|
||||
- 1.25.3
|
||||
- 1.24.11
|
||||
- 1.25.5
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.90.0
|
||||
- Rust 1.90.0
|
||||
- Rustdoc 1.90.0
|
||||
- Cargo 1.92.0
|
||||
- Rust 1.92.0
|
||||
- Rustdoc 1.92.0
|
||||
- Rustup 1.28.2
|
||||
|
||||
#### Packages
|
||||
- Clippy 0.1.90
|
||||
- Clippy 0.1.92
|
||||
- Rustfmt 1.8.0-stable
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.4.12
|
||||
- PowerShell 7.4.13
|
||||
|
||||
#### PowerShell Modules
|
||||
- Az: 12.5.0
|
||||
@@ -233,45 +229,45 @@
|
||||
| DriverKit 24.2 | driverkit24.2 | 16.2 |
|
||||
|
||||
#### Installed Simulators
|
||||
| OS | Simulators |
|
||||
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| iOS 17.0 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.2 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation) |
|
||||
| iOS 17.4 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air (5th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (4th generation)<br>iPad Pro (12.9-inch) (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 17.5 | iPhone 15<br>iPhone 15 Plus<br>iPhone 15 Pro<br>iPhone 15 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (6th generation)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.1 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.2 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad Air 11-inch (M2)<br>iPad Air 13-inch (M2)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| tvOS 17.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 17.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| watchOS 10.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 10.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| visionOS 1.0 | Apple Vision Pro |
|
||||
| visionOS 1.1 | Apple Vision Pro |
|
||||
| visionOS 1.2 | Apple Vision Pro |
|
||||
| visionOS 2.1 | Apple Vision Pro |
|
||||
| visionOS 2.2 | Apple Vision Pro |
|
||||
| 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 |
|
||||
|
||||
### Android
|
||||
| Package Name | Version |
|
||||
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 11.0 |
|
||||
| Android Emulator | 36.2.12 |
|
||||
| Android Emulator | 36.3.10 |
|
||||
| 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 |
|
||||
| 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 |
|
||||
| NDK | 26.3.11579264 (default)<br>27.3.13750724<br>28.2.13676358<br>29.0.14206865 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -279,7 +275,7 @@
|
||||
| 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/29.0.14206865 |
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
|
||||
+116
-116
@@ -1,107 +1,105 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[macOS] Deprecation of Xcode 16.3 and older runtimes on macOS 15 on January 12th, 2026.](https://github.com/actions/runner-images/issues/13392) |
|
||||
| [[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
|
||||
- OS Version: macOS 15.6.1 (24G90)
|
||||
- OS Version: macOS 15.7.3 (24G419)
|
||||
- Kernel Version: Darwin 24.6.0
|
||||
- Image Version: 20251015.0046
|
||||
- Image Version: 20251216.0081.1
|
||||
|
||||
## 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.416, 9.0.102, 9.0.203, 9.0.308, 10.0.101
|
||||
- Bash 3.2.57(1)-release
|
||||
- Clang/LLVM 16.0.0
|
||||
- Clang/LLVM 17.0.0
|
||||
- Clang/LLVM (Homebrew) 18.1.8 - available on `$(brew --prefix llvm@18)/bin/clang`
|
||||
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
|
||||
- GCC 13 (Homebrew GCC 13.4.0) - available by `gcc-13` alias
|
||||
- GCC 14 (Homebrew GCC 14.3.0) - available by `gcc-14` alias
|
||||
- GCC 15 (Homebrew GCC 15.2.0) - available by `gcc-15` 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.2.0) - available by `gfortran-15` alias
|
||||
- Kotlin 2.2.20-release-333
|
||||
- Node.js 22.20.0
|
||||
- Kotlin 2.2.21-release-469
|
||||
- Node.js 22.21.1
|
||||
- Perl 5.40.2
|
||||
- PHP 8.4.13
|
||||
- Python3 3.13.9
|
||||
- Ruby 3.3.9
|
||||
- PHP 8.5.0
|
||||
- Python3 3.14.2
|
||||
- Ruby 3.3.10
|
||||
|
||||
### Package Management
|
||||
- Bundler 2.7.2
|
||||
- Bundler 4.0.1
|
||||
- Carthage 0.40.0
|
||||
- CocoaPods 1.16.2
|
||||
- Composer 2.8.12
|
||||
- Homebrew 4.6.17
|
||||
- NPM 10.9.3
|
||||
- Pip3 25.2 (python 3.13)
|
||||
- Composer 2.9.2
|
||||
- Homebrew 5.0.5
|
||||
- NPM 10.9.4
|
||||
- Pip3 25.3 (python 3.14)
|
||||
- Pipx 1.8.0
|
||||
- RubyGems 3.7.2
|
||||
- Vcpkg 2025 (build from commit dc025b51f5)
|
||||
- RubyGems 4.0.1
|
||||
- Vcpkg 2025 (build from commit 2b6a882f61)
|
||||
- Yarn 1.22.22
|
||||
|
||||
### Project Management
|
||||
- Apache Ant 1.10.15
|
||||
- Apache Maven 3.9.11
|
||||
- Gradle 9.1.0
|
||||
- Gradle 9.2.1
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.05
|
||||
- aria2 1.37.0
|
||||
- azcopy 10.30.1
|
||||
- bazel 8.4.2
|
||||
- azcopy 10.31.0
|
||||
- bazel 8.5.0
|
||||
- bazelisk 1.27.0
|
||||
- bsdtar 3.5.3 - available by 'tar' alias
|
||||
- Curl 8.16.0
|
||||
- Curl 8.17.0
|
||||
- Git 2.50.1
|
||||
- Git LFS 3.7.0
|
||||
- GitHub CLI 2.81.0
|
||||
- Git LFS 3.7.1
|
||||
- GitHub CLI 2.83.2
|
||||
- GNU Tar 1.35 - available by 'gtar' alias
|
||||
- GNU Wget 1.25.0
|
||||
- gpg (GnuPG) 2.4.8
|
||||
- jq 1.8.1
|
||||
- OpenSSL 1.1.1w 11 Sep 2023
|
||||
- Packer 1.14.2
|
||||
- Packer 1.14.3
|
||||
- pkgconf 2.5.1
|
||||
- Unxip 3.2
|
||||
- yq 4.48.1
|
||||
- yq 4.50.1
|
||||
- zstd 1.5.7
|
||||
- Ninja 1.13.1
|
||||
- Ninja 1.13.2
|
||||
|
||||
### Tools
|
||||
- AWS CLI 2.31.16
|
||||
- AWS SAM CLI 1.145.0
|
||||
- AWS Session Manager CLI 1.2.707.0
|
||||
- Azure CLI 2.78.0
|
||||
- AWS CLI 2.32.17
|
||||
- AWS SAM CLI 1.149.0
|
||||
- AWS Session Manager CLI 1.2.764.0
|
||||
- Azure CLI 2.81.0
|
||||
- Azure CLI (azure-devops) 1.0.2
|
||||
- Bicep CLI 0.38.33
|
||||
- Cmake 4.1.2
|
||||
- CodeQL Action Bundle 2.23.2
|
||||
- Fastlane 2.228.0
|
||||
- SwiftFormat 0.58.3
|
||||
- Xcbeautify 2.30.1
|
||||
- Bicep CLI 0.39.26
|
||||
- Cmake 4.2.1
|
||||
- CodeQL Action Bundle 2.23.8
|
||||
- Fastlane 2.229.1
|
||||
- SwiftFormat 0.58.7
|
||||
- Xcbeautify 3.1.2
|
||||
- Xcode Command Line Tools 16.4.0.0.1.1747106510
|
||||
- Xcodes 1.6.2
|
||||
|
||||
### Linters
|
||||
- SwiftLint 0.61.0
|
||||
- SwiftLint 0.62.2
|
||||
|
||||
### Browsers
|
||||
- Safari 26.0.1 (20622.1.22.118.4)
|
||||
- SafariDriver 26.0.1 (20622.1.22.118.4)
|
||||
- Google Chrome 141.0.7390.108
|
||||
- Google Chrome for Testing 141.0.7390.78
|
||||
- ChromeDriver 141.0.7390.78
|
||||
- Microsoft Edge 141.0.3537.71
|
||||
- Microsoft Edge WebDriver 141.0.3537.71
|
||||
- Mozilla Firefox 144.0
|
||||
- Safari 26.2 (20623.1.14.18.4)
|
||||
- SafariDriver 26.2 (20623.1.14.18.4)
|
||||
- Google Chrome 143.0.7499.110
|
||||
- Google Chrome for Testing 143.0.7499.42
|
||||
- ChromeDriver 143.0.7499.42
|
||||
- Microsoft Edge 143.0.3650.80
|
||||
- Microsoft Edge WebDriver 143.0.3650.80
|
||||
- Mozilla Firefox 146.0
|
||||
- geckodriver 0.36.0
|
||||
- Selenium server 4.36.0
|
||||
- Selenium server 4.38.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -111,52 +109,51 @@
|
||||
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
|
||||
|
||||
### Java
|
||||
| Version | Environment Variable |
|
||||
| -------------------- | -------------------- |
|
||||
| 11.0.28+6 | JAVA_HOME_11_X64 |
|
||||
| 17.0.16+8 | JAVA_HOME_17_X64 |
|
||||
| 21.0.8+9.0 (default) | JAVA_HOME_21_X64 |
|
||||
| 25.0.0+36.0 | JAVA_HOME_25_X64 |
|
||||
| Version | Environment Variable |
|
||||
| --------------------- | -------------------- |
|
||||
| 11.0.29+7 | JAVA_HOME_11_X64 |
|
||||
| 17.0.17+10 | JAVA_HOME_17_X64 |
|
||||
| 21.0.9+10.0 (default) | JAVA_HOME_21_X64 |
|
||||
| 25.0.1+8.0 | JAVA_HOME_25_X64 |
|
||||
|
||||
### Cached Tools
|
||||
|
||||
#### Ruby
|
||||
- 3.1.7
|
||||
- 3.2.9
|
||||
- 3.3.9
|
||||
- 3.3.10
|
||||
- 3.4.7
|
||||
|
||||
#### Python
|
||||
- 3.9.24
|
||||
- 3.9.25
|
||||
- 3.10.19
|
||||
- 3.11.9
|
||||
- 3.12.10
|
||||
- 3.13.9
|
||||
- 3.13.11
|
||||
- 3.14.2
|
||||
|
||||
#### Node.js
|
||||
- 18.20.8
|
||||
- 20.19.5
|
||||
- 22.20.0
|
||||
- 24.10.0
|
||||
- 20.19.6
|
||||
- 22.21.1
|
||||
- 24.12.0
|
||||
|
||||
#### Go
|
||||
- 1.22.12
|
||||
- 1.23.12
|
||||
- 1.24.9
|
||||
- 1.25.3
|
||||
- 1.24.11
|
||||
- 1.25.5
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.90.0
|
||||
- Rust 1.90.0
|
||||
- Rustdoc 1.90.0
|
||||
- Cargo 1.92.0
|
||||
- Rust 1.92.0
|
||||
- Rustdoc 1.92.0
|
||||
- Rustup 1.28.2
|
||||
|
||||
#### Packages
|
||||
- Clippy 0.1.90
|
||||
- Clippy 0.1.92
|
||||
- Rustfmt 1.8.0-stable
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.4.12
|
||||
- PowerShell 7.4.13
|
||||
|
||||
#### PowerShell Modules
|
||||
- Az: 12.5.0
|
||||
@@ -164,15 +161,15 @@
|
||||
- PSScriptAnalyzer: 1.24.0
|
||||
|
||||
### Xcode
|
||||
| Version | Build | Path | Symlinks |
|
||||
| -------------- | -------- | ----------------------------------- | -------------------------------------------------------------- |
|
||||
| 26.1 (beta) | 17B5035f | /Applications/Xcode_26.1_beta_2.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 |
|
||||
| -------------- | -------- | ------------------------------ | -------------------------------------------------------------- |
|
||||
| 26.1.1 | 17B100 | /Applications/Xcode_26.1.1.app | /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 |
|
||||
|
||||
#### Installed SDKs
|
||||
| SDK | SDK Name | Xcode Version |
|
||||
@@ -183,100 +180,103 @@
|
||||
| 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 |
|
||||
| macOS 26.1 | macosx26.1 | 26.1.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 |
|
||||
| iOS 26.1 | iphoneos26.1 | 26.1.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 |
|
||||
| Simulator - iOS 26.1 | iphonesimulator26.1 | 26.1.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 |
|
||||
| tvOS 26.1 | appletvos26.1 | 26.1.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 |
|
||||
| Simulator - tvOS 26.1 | appletvsimulator26.1 | 26.1.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 |
|
||||
| watchOS 26.1 | watchos26.1 | 26.1.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 |
|
||||
| Simulator - watchOS 26.1 | watchsimulator26.1 | 26.1.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 |
|
||||
| visionOS 26.1 | xros26.1 | 26.1.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 |
|
||||
| Simulator - visionOS 26.1 | xrsimulator26.1 | 26.1.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 |
|
||||
| DriverKit 25.1 | driverkit25.1 | 26.1.1 |
|
||||
|
||||
#### Installed Simulators
|
||||
| OS | Simulators |
|
||||
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 18.4 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad (A16)<br>iPad Air 11-inch (M2)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M2)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.5 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad (A16)<br>iPad Air 11-inch (M2)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M2)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.6 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad (A16)<br>iPad Air 11-inch (M2)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M2)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 26.0 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone 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 13-inch (M4) |
|
||||
| tvOS 18.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 26.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| watchOS 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 26.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch 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) |
|
||||
| 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) |
|
||||
| iOS 26.1 | 26.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) |
|
||||
| tvOS 26.1 | 26.1 | 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) |
|
||||
| watchOS 26.1 | 26.1 | 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) |
|
||||
|
||||
### 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)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1) |
|
||||
| Android SDK Platform-Tools | 36.0.0 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.31.5 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 26.3.11579264<br>27.3.13750724 (default)<br>28.2.13676358 |
|
||||
| Package Name | Version |
|
||||
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 16.0 |
|
||||
| Android Emulator | 36.3.10 |
|
||||
| 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<br>4.1.2 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 26.3.11579264<br>27.3.13750724 (default)<br>28.2.13676358<br>29.0.14206865 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -284,7 +284,7 @@
|
||||
| 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_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/29.0.14206865 |
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/27.3.13750724 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
@@ -294,7 +294,7 @@
|
||||
#### 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/v26/26.2.0-57363/ParallelsDesktop-26.2.0-57363.dmg |
|
||||
|
||||
##### Notes
|
||||
```
|
||||
|
||||
@@ -1,102 +1,100 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[macOS] Deprecation of Xcode 16.3 and older runtimes on macOS 15 on January 12th, 2026.](https://github.com/actions/runner-images/issues/13392) |
|
||||
| [[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
|
||||
- OS Version: macOS 15.7.1 (24G231)
|
||||
- OS Version: macOS 15.7.2 (24G325)
|
||||
- Kernel Version: Darwin 24.6.0
|
||||
- Image Version: 20251021.0066
|
||||
- Image Version: 20251215.0075.1
|
||||
|
||||
## 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.416, 9.0.102, 9.0.203, 9.0.308, 10.0.101
|
||||
- Bash 3.2.57(1)-release
|
||||
- Clang/LLVM 17.0.0
|
||||
- Clang/LLVM (Homebrew) 18.1.8 - available on `$(brew --prefix llvm@18)/bin/clang`
|
||||
- GCC 12 (Homebrew GCC 12.4.0) - available by `gcc-12` alias
|
||||
- GCC 13 (Homebrew GCC 13.4.0) - available by `gcc-13` alias
|
||||
- GCC 14 (Homebrew GCC 14.3.0) - available by `gcc-14` alias
|
||||
- GCC 15 (Homebrew GCC 15.2.0) - available by `gcc-15` 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.2.0) - available by `gfortran-15` alias
|
||||
- Kotlin 2.2.20-release-333
|
||||
- Node.js 22.21.0
|
||||
- Kotlin 2.2.21-release-469
|
||||
- Node.js 22.21.1
|
||||
- Perl 5.40.2
|
||||
- Python3 3.14.0
|
||||
- Ruby 3.3.9
|
||||
- Python3 3.14.2
|
||||
- Ruby 3.3.10
|
||||
|
||||
### Package Management
|
||||
- Bundler 2.7.2
|
||||
- Bundler 4.0.1
|
||||
- Carthage 0.40.0
|
||||
- CocoaPods 1.16.2
|
||||
- Homebrew 4.6.18
|
||||
- Homebrew 5.0.5
|
||||
- NPM 10.9.4
|
||||
- Pip3 25.2 (python 3.14)
|
||||
- Pip3 25.3 (python 3.14)
|
||||
- Pipx 1.8.0
|
||||
- RubyGems 3.7.2
|
||||
- Vcpkg 2025 (build from commit 7220a4eebf)
|
||||
- RubyGems 4.0.1
|
||||
- Vcpkg 2025 (build from commit 594ad8871e)
|
||||
- Yarn 1.22.22
|
||||
|
||||
### Project Management
|
||||
- Apache Ant 1.10.15
|
||||
- Apache Maven 3.9.11
|
||||
- Gradle 9.1.0
|
||||
- Gradle 9.2.1
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.05
|
||||
- aria2 1.37.0
|
||||
- azcopy 10.30.1
|
||||
- bazel 8.4.2
|
||||
- azcopy 10.31.0
|
||||
- bazel 8.5.0
|
||||
- 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.0
|
||||
- GitHub CLI 2.83.2
|
||||
- GNU Tar 1.35 - available by 'gtar' alias
|
||||
- GNU Wget 1.25.0
|
||||
- gpg (GnuPG) 2.4.8
|
||||
- jq 1.8.1
|
||||
- OpenSSL 1.1.1w 11 Sep 2023
|
||||
- Packer 1.14.2
|
||||
- Packer 1.14.3
|
||||
- pkgconf 2.5.1
|
||||
- Unxip 3.2
|
||||
- yq 4.48.1
|
||||
- yq 4.50.1
|
||||
- zstd 1.5.7
|
||||
- Ninja 1.13.1
|
||||
- Ninja 1.13.2
|
||||
|
||||
### Tools
|
||||
- AWS CLI 2.31.19
|
||||
- AWS SAM CLI 1.145.1
|
||||
- AWS Session Manager CLI 1.2.707.0
|
||||
- Azure CLI 2.78.0
|
||||
- AWS CLI 2.32.16
|
||||
- AWS SAM CLI 1.149.0
|
||||
- AWS Session Manager CLI 1.2.764.0
|
||||
- Azure CLI 2.81.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 2.30.1
|
||||
- Bicep CLI 0.39.26
|
||||
- Cmake 4.2.1
|
||||
- CodeQL Action Bundle 2.23.8
|
||||
- Fastlane 2.229.1
|
||||
- SwiftFormat 0.58.7
|
||||
- Xcbeautify 3.1.2
|
||||
- Xcode Command Line Tools 16.4.0.0.1.1747106510
|
||||
- Xcodes 1.6.2
|
||||
|
||||
### Browsers
|
||||
- Safari 26.0.1 (20622.1.22.118.4)
|
||||
- SafariDriver 26.0.1 (20622.1.22.118.4)
|
||||
- Google Chrome 141.0.7390.123
|
||||
- Google Chrome for Testing 141.0.7390.122
|
||||
- ChromeDriver 141.0.7390.122
|
||||
- Microsoft Edge 141.0.3537.92
|
||||
- Microsoft Edge WebDriver 141.0.3537.92
|
||||
- Mozilla Firefox 144.0
|
||||
- Safari 26.1 (20622.2.11.119.1)
|
||||
- SafariDriver 26.1 (20622.2.11.119.1)
|
||||
- Google Chrome 143.0.7499.110
|
||||
- Google Chrome for Testing 143.0.7499.42
|
||||
- ChromeDriver 143.0.7499.42
|
||||
- Microsoft Edge 143.0.3650.80
|
||||
- Microsoft Edge WebDriver 143.0.3650.80
|
||||
- Mozilla Firefox 146.0
|
||||
- geckodriver 0.36.0
|
||||
- Selenium server 4.36.0
|
||||
- Selenium server 4.38.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -106,47 +104,45 @@
|
||||
| GECKOWEBDRIVER | /opt/homebrew/opt/geckodriver/bin |
|
||||
|
||||
### Java
|
||||
| Version | Environment Variable |
|
||||
| -------------------- | -------------------- |
|
||||
| 11.0.28+6 | JAVA_HOME_11_arm64 |
|
||||
| 17.0.16+8 | JAVA_HOME_17_arm64 |
|
||||
| 21.0.8+9.0 (default) | JAVA_HOME_21_arm64 |
|
||||
| 25.0.0+36.0 | JAVA_HOME_25_arm64 |
|
||||
| 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.1.7
|
||||
- 3.2.9
|
||||
- 3.3.9
|
||||
- 3.3.10
|
||||
- 3.4.7
|
||||
|
||||
#### Python
|
||||
- 3.11.9
|
||||
- 3.12.10
|
||||
- 3.13.9
|
||||
- 3.14.0
|
||||
- 3.13.11
|
||||
- 3.14.2
|
||||
|
||||
#### Node.js
|
||||
- 18.20.8
|
||||
- 20.19.5
|
||||
- 22.21.0
|
||||
- 24.10.0
|
||||
- 20.19.6
|
||||
- 22.21.1
|
||||
- 24.12.0
|
||||
|
||||
#### Go
|
||||
- 1.22.12
|
||||
- 1.23.12
|
||||
- 1.24.9
|
||||
- 1.25.3
|
||||
- 1.24.11
|
||||
- 1.25.5
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.90.0
|
||||
- Rust 1.90.0
|
||||
- Rustdoc 1.90.0
|
||||
- Cargo 1.92.0
|
||||
- Rust 1.92.0
|
||||
- Rustdoc 1.92.0
|
||||
- Rustup 1.28.2
|
||||
|
||||
#### Packages
|
||||
- Clippy 0.1.90
|
||||
- Clippy 0.1.92
|
||||
- Rustfmt 1.8.0-stable
|
||||
|
||||
### PowerShell Tools
|
||||
@@ -158,15 +154,15 @@
|
||||
- PSScriptAnalyzer: 1.24.0
|
||||
|
||||
### Xcode
|
||||
| Version | Build | Path | Symlinks |
|
||||
| -------------- | -------- | ----------------------------------- | -------------------------------------------------------------- |
|
||||
| 26.1 (beta) | 17B5045g | /Applications/Xcode_26.1_beta_3.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 |
|
||||
| -------------- | -------- | ------------------------------ | -------------------------------------------------------------- |
|
||||
| 26.1.1 | 17B100 | /Applications/Xcode_26.1.1.app | /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 |
|
||||
|
||||
#### Installed SDKs
|
||||
| SDK | SDK Name | Xcode Version |
|
||||
@@ -177,104 +173,108 @@
|
||||
| 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 |
|
||||
| macOS 26.1 | macosx26.1 | 26.1.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 |
|
||||
| iOS 26.1 | iphoneos26.1 | 26.1.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 |
|
||||
| Simulator - iOS 26.1 | iphonesimulator26.1 | 26.1.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 |
|
||||
| tvOS 26.1 | appletvos26.1 | 26.1.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 |
|
||||
| Simulator - tvOS 26.1 | appletvsimulator26.1 | 26.1.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 |
|
||||
| watchOS 26.1 | watchos26.1 | 26.1.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 |
|
||||
| Simulator - watchOS 26.1 | watchsimulator26.1 | 26.1.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 |
|
||||
| visionOS 26.1 | xros26.1 | 26.1.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 |
|
||||
| Simulator - visionOS 26.1 | xrsimulator26.1 | 26.1.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 |
|
||||
| DriverKit 25.1 | driverkit25.1 | 26.1.1 |
|
||||
|
||||
#### Installed Simulators
|
||||
| OS | Simulators |
|
||||
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 18.4 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad (A16)<br>iPad Air 11-inch (M2)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M2)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.5 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad (A16)<br>iPad Air 11-inch (M2)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M2)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 18.6 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone SE (3rd generation)<br>iPad (10th generation)<br>iPad (A16)<br>iPad Air 11-inch (M2)<br>iPad Air 11-inch (M3)<br>iPad Air 13-inch (M2)<br>iPad Air 13-inch (M3)<br>iPad mini (A17 Pro)<br>iPad Pro 11-inch (M4)<br>iPad Pro 13-inch (M4) |
|
||||
| iOS 26.0 | iPhone 16<br>iPhone 16 Plus<br>iPhone 16 Pro<br>iPhone 16 Pro Max<br>iPhone 16e<br>iPhone 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 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 18.5 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 26.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| watchOS 11.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.4 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 11.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 26.0 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch 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 | Apple Vision Pro |
|
||||
| visionOS 2.4 | Apple Vision Pro |
|
||||
| visionOS 2.5 | Apple Vision Pro |
|
||||
| visionOS 26.0 | Apple Vision Pro |
|
||||
| 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) |
|
||||
| iOS 26.1 | 26.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) |
|
||||
| tvOS 26.1 | 26.1 | 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) |
|
||||
| watchOS 26.1 | 26.1 | 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 |
|
||||
| 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)<br>android-34-ext8 (rev 1)<br>android-34-ext12 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1) |
|
||||
| Android SDK Platform-Tools | 36.0.0 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.31.5 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 26.3.11579264<br>27.3.13750724 (default)<br>28.2.13676358 |
|
||||
| Package Name | Version |
|
||||
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 16.0 |
|
||||
| Android Emulator | 36.3.10 |
|
||||
| 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<br>4.1.2 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 26.3.11579264<br>27.3.13750724 (default)<br>28.2.13676358<br>29.0.14206865 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -282,7 +282,7 @@
|
||||
| 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_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/29.0.14206865 |
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/27.3.13750724 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[macOS] Deprecation of Xcode 16.3 and older runtimes on macOS 15 on January 12th, 2026.](https://github.com/actions/runner-images/issues/13392) |
|
||||
| [[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: 20251022.0070
|
||||
- Image Version: 20251216.0100.1
|
||||
|
||||
## 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.416, 9.0.102, 9.0.203, 9.0.308, 10.0.101
|
||||
- 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`
|
||||
@@ -23,78 +23,78 @@
|
||||
- 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.20-release-333
|
||||
- Node.js 24.10.0
|
||||
- Kotlin 2.2.21-release-469
|
||||
- Node.js 24.12.0
|
||||
- Perl 5.40.2
|
||||
- Python3 3.14.0
|
||||
- Python3 3.14.2
|
||||
- Ruby 3.4.7
|
||||
|
||||
### Package Management
|
||||
- Bundler 2.7.2
|
||||
- Bundler 4.0.1
|
||||
- Carthage 0.40.0
|
||||
- CocoaPods 1.16.2
|
||||
- Homebrew 4.6.18
|
||||
- NPM 11.6.0
|
||||
- Pip3 25.2 (python 3.14)
|
||||
- Homebrew 5.0.5
|
||||
- NPM 11.6.2
|
||||
- Pip3 25.3 (python 3.14)
|
||||
- Pipx 1.8.0
|
||||
- RubyGems 3.7.2
|
||||
- Vcpkg 2025 (build from commit 7220a4eebf)
|
||||
- RubyGems 4.0.1
|
||||
- Vcpkg 2025 (build from commit 2b6a882f61)
|
||||
- Yarn 1.22.22
|
||||
|
||||
### Project Management
|
||||
- Apache Ant 1.10.15
|
||||
- Apache Maven 3.9.11
|
||||
- Gradle 9.1.0
|
||||
- Gradle 9.2.1
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.05
|
||||
- aria2 1.37.0
|
||||
- azcopy 10.30.1
|
||||
- bazel 8.4.2
|
||||
- azcopy 10.31.0
|
||||
- bazel 8.5.0
|
||||
- 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
|
||||
- GitHub CLI 2.83.2
|
||||
- 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
|
||||
- Packer 1.14.3
|
||||
- pkgconf 2.5.1
|
||||
- Unxip 3.2
|
||||
- yq 4.48.1
|
||||
- yq 4.50.1
|
||||
- zstd 1.5.7
|
||||
- Ninja 1.13.1
|
||||
- Ninja 1.13.2
|
||||
|
||||
### Tools
|
||||
- AWS CLI 2.31.19
|
||||
- AWS SAM CLI 1.145.1
|
||||
- AWS Session Manager CLI 1.2.707.0
|
||||
- Azure CLI 2.78.0
|
||||
- AWS CLI 2.32.17
|
||||
- AWS SAM CLI 1.149.0
|
||||
- AWS Session Manager CLI 1.2.764.0
|
||||
- Azure CLI 2.81.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 2.30.1
|
||||
- Xcode Command Line Tools 26.0.0.0.1.1757719676
|
||||
- Bicep CLI 0.39.26
|
||||
- Cmake 4.2.1
|
||||
- CodeQL Action Bundle 2.23.8
|
||||
- Fastlane 2.229.1
|
||||
- SwiftFormat 0.58.7
|
||||
- Xcbeautify 3.1.2
|
||||
- Xcode Command Line Tools 26.2.0.0.1.1764812424
|
||||
- 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 141.0.7390.123
|
||||
- Google Chrome for Testing 141.0.7390.122
|
||||
- ChromeDriver 141.0.7390.122
|
||||
- Microsoft Edge 141.0.3537.92
|
||||
- Microsoft Edge WebDriver 141.0.3537.92
|
||||
- Mozilla Firefox 144.0
|
||||
- Google Chrome 143.0.7499.110
|
||||
- Google Chrome for Testing 143.0.7499.42
|
||||
- ChromeDriver 143.0.7499.42
|
||||
- Microsoft Edge 143.0.3650.80
|
||||
- Microsoft Edge WebDriver 143.0.3650.80
|
||||
- Mozilla Firefox 146.0
|
||||
- geckodriver 0.36.0
|
||||
- Selenium server 4.36.0
|
||||
- Selenium server 4.38.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -104,44 +104,44 @@
|
||||
| GECKOWEBDRIVER | /opt/homebrew/opt/geckodriver/bin |
|
||||
|
||||
### Java
|
||||
| Version | Environment Variable |
|
||||
| -------------------- | -------------------- |
|
||||
| 11.0.28+6 | JAVA_HOME_11_arm64 |
|
||||
| 17.0.16+8 | JAVA_HOME_17_arm64 |
|
||||
| 21.0.8+9.0 (default) | JAVA_HOME_21_arm64 |
|
||||
| 25.0.0+36.0 | JAVA_HOME_25_arm64 |
|
||||
| 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.9
|
||||
- 3.3.10
|
||||
- 3.4.7
|
||||
|
||||
#### Python
|
||||
- 3.11.9
|
||||
- 3.12.10
|
||||
- 3.13.9
|
||||
- 3.14.0
|
||||
- 3.13.11
|
||||
- 3.14.2
|
||||
|
||||
#### Node.js
|
||||
- 20.19.5
|
||||
- 22.21.0
|
||||
- 24.10.0
|
||||
- 20.19.6
|
||||
- 22.21.1
|
||||
- 24.12.0
|
||||
|
||||
#### Go
|
||||
- 1.23.12
|
||||
- 1.24.9
|
||||
- 1.25.3
|
||||
- 1.24.11
|
||||
- 1.25.5
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.90.0
|
||||
- Rust 1.90.0
|
||||
- Rustdoc 1.90.0
|
||||
- Cargo 1.92.0
|
||||
- Rust 1.92.0
|
||||
- Rustdoc 1.92.0
|
||||
- Rustup 1.28.2
|
||||
|
||||
#### Packages
|
||||
- Clippy 0.1.90
|
||||
- Clippy 0.1.92
|
||||
- Rustfmt 1.8.0-stable
|
||||
|
||||
### PowerShell Tools
|
||||
@@ -153,76 +153,75 @@
|
||||
- PSScriptAnalyzer: 1.24.0
|
||||
|
||||
### Xcode
|
||||
| Version | Build | Path | Symlinks |
|
||||
| ---------------- | -------- | ----------------------------------- | -------------------------------------------------------------- |
|
||||
| 26.1 (beta) | 17B5045g | /Applications/Xcode_26.1_beta_3.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 |
|
||||
| Version | Build | Path | Symlinks |
|
||||
| ---------------- | ------ | ------------------------------ | ------------------------------------------------------- |
|
||||
| 26.2 | 17C52 | /Applications/Xcode_26.2.app | /Applications/Xcode_26.2.0.app |
|
||||
| 26.1.1 | 17B100 | /Applications/Xcode_26.1.1.app | /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 |
|
||||
|
||||
#### 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 |
|
||||
| macOS 26.1 | macosx26.1 | 26.1.1 |
|
||||
| macOS 26.2 | macosx26.2 | 26.2 |
|
||||
| iOS 26.0 | iphoneos26.0 | 26.0.1 |
|
||||
| iOS 26.1 | iphoneos26.1 | 26.1 |
|
||||
| Simulator - iOS 18.5 | iphonesimulator18.5 | 16.4 |
|
||||
| iOS 26.1 | iphoneos26.1 | 26.1.1 |
|
||||
| iOS 26.2 | iphoneos26.2 | 26.2 |
|
||||
| Simulator - iOS 26.0 | iphonesimulator26.0 | 26.0.1 |
|
||||
| Simulator - iOS 26.1 | iphonesimulator26.1 | 26.1 |
|
||||
| tvOS 18.5 | appletvos18.5 | 16.4 |
|
||||
| Simulator - iOS 26.1 | iphonesimulator26.1 | 26.1.1 |
|
||||
| Simulator - iOS 26.2 | iphonesimulator26.2 | 26.2 |
|
||||
| tvOS 26.0 | appletvos26.0 | 26.0.1 |
|
||||
| tvOS 26.1 | appletvos26.1 | 26.1 |
|
||||
| Simulator - tvOS 18.5 | appletvsimulator18.5 | 16.4 |
|
||||
| tvOS 26.1 | appletvos26.1 | 26.1.1 |
|
||||
| tvOS 26.2 | appletvos26.2 | 26.2 |
|
||||
| Simulator - tvOS 26.0 | appletvsimulator26.0 | 26.0.1 |
|
||||
| Simulator - tvOS 26.1 | appletvsimulator26.1 | 26.1 |
|
||||
| watchOS 11.5 | watchos11.5 | 16.4 |
|
||||
| Simulator - tvOS 26.1 | appletvsimulator26.1 | 26.1.1 |
|
||||
| Simulator - tvOS 26.2 | appletvsimulator26.2 | 26.2 |
|
||||
| watchOS 26.0 | watchos26.0 | 26.0.1 |
|
||||
| watchOS 26.1 | watchos26.1 | 26.1 |
|
||||
| Simulator - watchOS 11.5 | watchsimulator11.5 | 16.4 |
|
||||
| watchOS 26.1 | watchos26.1 | 26.1.1 |
|
||||
| watchOS 26.2 | watchos26.2 | 26.2 |
|
||||
| Simulator - watchOS 26.0 | watchsimulator26.0 | 26.0.1 |
|
||||
| Simulator - watchOS 26.1 | watchsimulator26.1 | 26.1 |
|
||||
| visionOS 2.5 | xros2.5 | 16.4 |
|
||||
| Simulator - watchOS 26.1 | watchsimulator26.1 | 26.1.1 |
|
||||
| Simulator - watchOS 26.2 | watchsimulator26.2 | 26.2 |
|
||||
| visionOS 26.0 | xros26.0 | 26.0.1 |
|
||||
| visionOS 26.1 | xros26.1 | 26.1 |
|
||||
| Simulator - visionOS 2.5 | xrsimulator2.5 | 16.4 |
|
||||
| visionOS 26.1 | xros26.1 | 26.1.1 |
|
||||
| visionOS 26.2 | xros26.2 | 26.2 |
|
||||
| Simulator - visionOS 26.0 | xrsimulator26.0 | 26.0.1 |
|
||||
| Simulator - visionOS 26.1 | xrsimulator26.1 | 26.1 |
|
||||
| DriverKit 24.5 | driverkit24.5 | 16.4 |
|
||||
| Simulator - visionOS 26.1 | xrsimulator26.1 | 26.1.1 |
|
||||
| Simulator - visionOS 26.2 | xrsimulator26.2 | 26.2 |
|
||||
| DriverKit 25.0 | driverkit25.0 | 26.0.1 |
|
||||
| DriverKit 25.1 | driverkit25.1 | 26.1 |
|
||||
| DriverKit 25.1 | driverkit25.1 | 26.1.1 |
|
||||
| DriverKit 25.2 | driverkit25.2 | 26.2 |
|
||||
|
||||
#### Installed Simulators
|
||||
| OS | Simulators |
|
||||
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 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 | 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 | 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 | 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 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 26.0 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| tvOS 26.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| watchOS 11.5 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 10 (42mm)<br>Apple Watch Series 10 (46mm)<br>Apple Watch Ultra 2 (49mm) |
|
||||
| watchOS 26.0 | Apple Watch SE 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 | 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 | Apple Vision Pro |
|
||||
| visionOS 26.0 | Apple Vision Pro |
|
||||
| visionOS 26.1 | Apple Vision Pro |
|
||||
| Name | OS | Simulators |
|
||||
| ------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 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) |
|
||||
| iOS 26.2 | 26.2 | 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 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) |
|
||||
| tvOS 26.2 | 26.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
|
||||
| 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) |
|
||||
| watchOS 26.2 | 26.2 | 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 26.0 | 26.0 | Apple Vision Pro |
|
||||
| visionOS 26.1 | 26.1 | Apple Vision Pro |
|
||||
| visionOS 26.2 | 26.2 | 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-33-ext5 (rev 1)<br>android-33-ext4 (rev 1) |
|
||||
| Android SDK Platform-Tools | 36.0.0 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.31.5 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 27.3.13750724 (default)<br>28.2.13676358 |
|
||||
| Package Name | Version |
|
||||
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 16.0 |
|
||||
| Android Emulator | 36.3.10 |
|
||||
| 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<br>4.1.2 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 27.3.13750724 (default)<br>28.2.13676358<br>29.0.14206865 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -230,7 +229,7 @@
|
||||
| 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_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/29.0.14206865 |
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/27.3.13750724 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
|
||||
@@ -35,16 +35,12 @@ $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{2}(?=[._])' -and [int]$matches[0] -ge 26) {
|
||||
if ($_.link -match '^(\d+)\.(\d+)(?:\.(\d+))?$' -and [int]$matches[1] -ge 26) {
|
||||
Install-XcodeAdditionalComponents -Version $_.link
|
||||
Update-DyldCache -Version $_.link
|
||||
}
|
||||
}
|
||||
|
||||
# Update dyld shared cache for the latest stable Xcode version
|
||||
if ((-not $os.IsSonoma)) {
|
||||
Update-DyldCache -XcodeVersions $xcodeVersions
|
||||
}
|
||||
|
||||
Invoke-XcodeRunFirstLaunch -Version $defaultXcode
|
||||
|
||||
Write-Host "Configuring Xcode symlinks..."
|
||||
|
||||
@@ -10,9 +10,12 @@ echo "Enabling developer mode..."
|
||||
sudo /usr/sbin/DevToolsSecurity --enable
|
||||
|
||||
# Turn off hibernation and get rid of the sleepimage
|
||||
sudo pmset hibernatemode 0
|
||||
sudo pmset -a hibernatemode 0
|
||||
sudo rm -f /var/vm/sleepimage
|
||||
|
||||
# Set computer, disk, and display sleep to never
|
||||
sudo pmset -a sleep 0 disksleep 0 displaysleep 0
|
||||
|
||||
# Disable App Nap System Wide
|
||||
defaults write NSGlobalDomain NSAppSleepDisabled -bool YES
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@ source ~/utils/utils.sh
|
||||
arch=$(get_arch)
|
||||
imagedata_file="$HOME/imagedata.json"
|
||||
image_version=$(echo $IMAGE_VERSION | cut -d _ -f 2)
|
||||
image_version_major=${image_version/.*/}
|
||||
image_version_minor=$(echo $image_version | cut -d "." -f 2)
|
||||
os_name=$(sw_vers -productName)
|
||||
os_version=$(sw_vers -productVersion)
|
||||
os_build=$(sw_vers -buildVersion)
|
||||
@@ -20,8 +22,8 @@ else
|
||||
image_label="macos-${label_version}"
|
||||
fi
|
||||
|
||||
software_url="https://github.com/actions/runner-images/blob/${image_label}/${image_version}/images/macos/${image_label}-Readme.md"
|
||||
releaseUrl="https://github.com/actions/runner-images/releases/tag/${image_label}%2F${image_version}"
|
||||
software_url="https://github.com/actions/runner-images/blob/${image_label}/${image_version_major}.${image_version_minor}/images/macos/${image_label}-Readme.md"
|
||||
releaseUrl="https://github.com/actions/runner-images/releases/tag/${image_label}%2F${image_version_major}.${image_version_minor}"
|
||||
|
||||
cat <<EOF > $imagedata_file
|
||||
[
|
||||
|
||||
@@ -33,6 +33,12 @@ sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.backupd.plist
|
||||
echo "Disable Apple Push Notification Service daemon"
|
||||
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.apsd.plist
|
||||
|
||||
echo "Set SMC monitoring cadence to 0 to reduce CPU usage"
|
||||
sudo defaults -currentHost write /Library/Preferences/com.apple.powerlogd SMCMonitorCadence 0
|
||||
|
||||
echo "Disable Performance and Power Management daemon if possible"
|
||||
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.PerfPowerServices.plist
|
||||
|
||||
# Remove Parallels Desktop
|
||||
# https://github.com/actions/runner-images/issues/6105
|
||||
# https://github.com/actions/runner-images/issues/10143
|
||||
@@ -47,7 +53,7 @@ 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/
|
||||
cp $HOME/image-generation/output/software-report.* $HOME/
|
||||
|
||||
echo "Remove fastlane cached cookie"
|
||||
rm -rf ~/.fastlane
|
||||
|
||||
@@ -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 "*"
|
||||
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
################################################################################
|
||||
## File: install-runner-package.sh
|
||||
## Desc: Download and Install runner package
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source ~/utils/utils.sh
|
||||
|
||||
AGENT_PATH="/opt/runner-cache"
|
||||
arch=$(get_arch)
|
||||
download_url=$(resolve_github_release_asset_url "actions/runner" 'test("actions-runner-osx-'"$arch"'-[0-9]+\\.[0-9]{3}\\.[0-9]+\\.tar\\.gz$")' "latest" "$API_PAT")
|
||||
archive_name="${download_url##*/}"
|
||||
archive_path=$(download_with_retry "$download_url")
|
||||
|
||||
if [[ ! -d $AGENT_PATH ]]; then
|
||||
sudo mkdir -p -m 775 $AGENT_PATH
|
||||
sudo chown $USER:admin $AGENT_PATH
|
||||
fi
|
||||
|
||||
sudo mv "$archive_path" "$AGENT_PATH/$archive_name"
|
||||
@@ -200,5 +200,5 @@ if (-not (Test-Path $OutputDirectory)) { New-Item -Path $OutputDirectory -ItemTy
|
||||
# Write final reports
|
||||
#
|
||||
Write-Host $markdownExtended
|
||||
$softwareReport.ToJson() | Out-File -FilePath "${OutputDirectory}/systeminfo.json" -Encoding UTF8NoBOM
|
||||
$softwareReport.ToMarkdown() | Out-File -FilePath "${OutputDirectory}/systeminfo.md" -Encoding UTF8NoBOM
|
||||
$softwareReport.ToJson() | Out-File -FilePath "${OutputDirectory}/software-report.json" -Encoding UTF8NoBOM
|
||||
$softwareReport.ToMarkdown() | Out-File -FilePath "${OutputDirectory}/software-report.md" -Encoding UTF8NoBOM
|
||||
|
||||
@@ -320,19 +320,10 @@ function Invoke-ValidateCommand {
|
||||
function Update-DyldCache {
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[array] $XcodeVersions
|
||||
[string] $Version
|
||||
)
|
||||
|
||||
# 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."
|
||||
}
|
||||
Write-Host "Updating dyld shared cache for Xcode $Version ..."
|
||||
Switch-Xcode -Version $Version
|
||||
Invoke-ValidateCommand "xcrun simctl runtime dyld_shared_cache update --all"
|
||||
}
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
Describe "RunnerCache" {
|
||||
Context "runner cache directory not empty" {
|
||||
It "<RunnerCachePath> not empty" -TestCases @{ RunnerCachePath = "/opt/runner-cache" } {
|
||||
(Get-ChildItem -Path "$RunnerCachePath/*.tar.gz" -Recurse).Count | Should -BeGreaterThan 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -236,7 +236,6 @@ build {
|
||||
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
|
||||
scripts = [
|
||||
"${path.root}/../scripts/build/install-actions-cache.sh",
|
||||
"${path.root}/../scripts/build/install-runner-package.sh",
|
||||
"${path.root}/../scripts/build/install-llvm.sh",
|
||||
"${path.root}/../scripts/build/install-swiftlint.sh",
|
||||
"${path.root}/../scripts/build/install-openjdk.sh",
|
||||
|
||||
@@ -237,7 +237,6 @@ build {
|
||||
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
|
||||
scripts = [
|
||||
"${path.root}/../scripts/build/install-actions-cache.sh",
|
||||
"${path.root}/../scripts/build/install-runner-package.sh",
|
||||
"${path.root}/../scripts/build/install-llvm.sh",
|
||||
"${path.root}/../scripts/build/install-openjdk.sh",
|
||||
"${path.root}/../scripts/build/install-aws-tools.sh",
|
||||
|
||||
@@ -235,7 +235,6 @@ build {
|
||||
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
|
||||
scripts = [
|
||||
"${path.root}/../scripts/build/install-actions-cache.sh",
|
||||
"${path.root}/../scripts/build/install-runner-package.sh",
|
||||
"${path.root}/../scripts/build/install-llvm.sh",
|
||||
"${path.root}/../scripts/build/install-swiftlint.sh",
|
||||
"${path.root}/../scripts/build/install-openjdk.sh",
|
||||
@@ -274,15 +273,21 @@ build {
|
||||
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}/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"${local.image_folder}/output\" -ImageName ${var.build_id}",
|
||||
"pwsh -File \"${local.image_folder}/tests/RunAll-Tests.ps1\""
|
||||
]
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${path.root}/../../image-output/"
|
||||
destination = "${path.root}/../../image-output/macos-14-Readme.md"
|
||||
direction = "download"
|
||||
source = "${local.image_folder}/output/"
|
||||
source = "${local.image_folder}/output/software-report.md"
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${path.root}/../../image-output/software-report.json"
|
||||
direction = "download"
|
||||
source = "${local.image_folder}/output/software-report.json"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
|
||||
@@ -236,7 +236,6 @@ build {
|
||||
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
|
||||
scripts = [
|
||||
"${path.root}/../scripts/build/install-actions-cache.sh",
|
||||
"${path.root}/../scripts/build/install-runner-package.sh",
|
||||
"${path.root}/../scripts/build/install-llvm.sh",
|
||||
"${path.root}/../scripts/build/install-openjdk.sh",
|
||||
"${path.root}/../scripts/build/install-aws-tools.sh",
|
||||
@@ -273,15 +272,21 @@ build {
|
||||
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}/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"${local.image_folder}/output\" -ImageName ${var.build_id}",
|
||||
"pwsh -File \"${local.image_folder}/tests/RunAll-Tests.ps1\""
|
||||
]
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${path.root}/../../image-output/"
|
||||
destination = "${path.root}/../../image-output/macos-14-arm64-Readme.md"
|
||||
direction = "download"
|
||||
source = "${local.image_folder}/output/"
|
||||
source = "${local.image_folder}/output/software-report.md"
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${path.root}/../../image-output/software-report.json"
|
||||
direction = "download"
|
||||
source = "${local.image_folder}/output/software-report.json"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
|
||||
@@ -234,7 +234,6 @@ build {
|
||||
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
|
||||
scripts = [
|
||||
"${path.root}/../scripts/build/install-actions-cache.sh",
|
||||
"${path.root}/../scripts/build/install-runner-package.sh",
|
||||
"${path.root}/../scripts/build/install-llvm.sh",
|
||||
"${path.root}/../scripts/build/install-swiftlint.sh",
|
||||
"${path.root}/../scripts/build/install-openjdk.sh",
|
||||
@@ -273,15 +272,21 @@ build {
|
||||
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}/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"${local.image_folder}/output\" -ImageName ${var.build_id}",
|
||||
"pwsh -File \"${local.image_folder}/tests/RunAll-Tests.ps1\""
|
||||
]
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${path.root}/../../image-output/"
|
||||
destination = "${path.root}/../../image-output/macos-15-Readme.md"
|
||||
direction = "download"
|
||||
source = "${local.image_folder}/output/"
|
||||
source = "${local.image_folder}/output/software-report.md"
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${path.root}/../../image-output/software-report.json"
|
||||
direction = "download"
|
||||
source = "${local.image_folder}/output/software-report.json"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
|
||||
@@ -235,7 +235,6 @@ build {
|
||||
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
|
||||
scripts = [
|
||||
"${path.root}/../scripts/build/install-actions-cache.sh",
|
||||
"${path.root}/../scripts/build/install-runner-package.sh",
|
||||
"${path.root}/../scripts/build/install-llvm.sh",
|
||||
"${path.root}/../scripts/build/install-openjdk.sh",
|
||||
"${path.root}/../scripts/build/install-aws-tools.sh",
|
||||
@@ -272,15 +271,21 @@ build {
|
||||
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}/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"${local.image_folder}/output\" -ImageName ${var.build_id}",
|
||||
"pwsh -File \"${local.image_folder}/tests/RunAll-Tests.ps1\""
|
||||
]
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${path.root}/../../image-output/"
|
||||
destination = "${path.root}/../../image-output/macos-15-arm64-Readme.md"
|
||||
direction = "download"
|
||||
source = "${local.image_folder}/output/"
|
||||
source = "${local.image_folder}/output/software-report.md"
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${path.root}/../../image-output/software-report.json"
|
||||
direction = "download"
|
||||
source = "${local.image_folder}/output/software-report.json"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
|
||||
@@ -234,7 +234,6 @@ build {
|
||||
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
|
||||
scripts = [
|
||||
"${path.root}/../scripts/build/install-actions-cache.sh",
|
||||
"${path.root}/../scripts/build/install-runner-package.sh",
|
||||
"${path.root}/../scripts/build/install-llvm.sh",
|
||||
"${path.root}/../scripts/build/install-openjdk.sh",
|
||||
"${path.root}/../scripts/build/install-aws-tools.sh",
|
||||
@@ -271,15 +270,21 @@ build {
|
||||
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}/software-report/Generate-SoftwareReport.ps1\" -OutputDirectory \"${local.image_folder}/output\" -ImageName ${var.build_id}",
|
||||
"pwsh -File \"${local.image_folder}/tests/RunAll-Tests.ps1\""
|
||||
]
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${path.root}/../../image-output/"
|
||||
destination = "${path.root}/../../image-output/macos-26-arm64-Readme.md"
|
||||
direction = "download"
|
||||
source = "${local.image_folder}/output/"
|
||||
source = "${local.image_folder}/output/software-report.md"
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${path.root}/../../image-output/software-report.json"
|
||||
direction = "download"
|
||||
source = "${local.image_folder}/output/software-report.json"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
|
||||
@@ -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", "filename": "Xcode_15.2", "version": "15.2.0+15C500b", "install_runtimes": "default", "sha256": "04E93680C6DDBEC84666531BE412DE778AFC8EAC6AB2037F4C2BE7290818B59B"},
|
||||
{ "link": "15.1", "filename": "Xcode_15.1", "version": "15.1.0+15C65", "install_runtimes": "default", "sha256": "857D8DB537BAC82BF99DE0E1D3895D214D4D02101C1340CEF3DAF6E821BA1D05"},
|
||||
{ "link": "15.0.1", "filename": "Xcode_15.0.1", "version": "15.0.1+15A507", "symlinks": ["15.0"], "install_runtimes": "default", "sha256": "5AC17AE6060CAFC3C7112C6DA0B153450BE21F1DE6632777FBA9FBC9D999C9E8"},
|
||||
{ "link": "14.3.1", "filename": "Xcode_14.3.1", "version": "14.3.1+14E300c","symlinks": ["14.3"], "install_runtimes": "default", "sha256": "B5CC7BF37447C32A971B37D71C7DA1AF7ABB45CEE4B96FE126A1D3B0D2C260AF"},
|
||||
{ "link": "14.2", "filename": "Xcode_14.2", "version": "14.2.0+14C18", "install_runtimes": "default", "sha256": "686B9D53CA49E50D563BC0104B1E8B4F7CCFE80064A6D689965FB819BF8EFE72"},
|
||||
{ "link": "14.1", "filename": "Xcode_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", "filename": "Xcode_15.2", "version": "15.2.0+15C500b", "install_runtimes": "default", "sha256": "04E93680C6DDBEC84666531BE412DE778AFC8EAC6AB2037F4C2BE7290818B59B"},
|
||||
{ "link": "15.1", "filename": "Xcode_15.1", "version": "15.1.0+15C65", "install_runtimes": "default", "sha256": "857D8DB537BAC82BF99DE0E1D3895D214D4D02101C1340CEF3DAF6E821BA1D05"},
|
||||
{ "link": "15.0.1", "filename": "Xcode_15.0.1", "version": "15.0.1+15A507", "symlinks": ["15.0"], "install_runtimes": "default", "sha256": "5AC17AE6060CAFC3C7112C6DA0B153450BE21F1DE6632777FBA9FBC9D999C9E8"},
|
||||
{ "link": "14.3.1", "filename": "Xcode_14.3.1", "version": "14.3.1+14E300c","symlinks": ["14.3"], "install_runtimes": "default", "sha256": "B5CC7BF37447C32A971B37D71C7DA1AF7ABB45CEE4B96FE126A1D3B0D2C260AF"},
|
||||
{ "link": "14.2", "filename": "Xcode_14.2", "version": "14.2.0+14C18", "install_runtimes": "default", "sha256": "686B9D53CA49E50D563BC0104B1E8B4F7CCFE80064A6D689965FB819BF8EFE72"},
|
||||
{ "link": "14.1", "filename": "Xcode_14.1", "version": "14.1.0+14B47b", "install_runtimes": "default", "sha256": "12F8A3AEF78BF354470AD8B351ADDD925C8EDAD888137D138CA50A8130EB9F2F"}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"versions": [
|
||||
{
|
||||
"link": "16.2",
|
||||
"filename": "16.2",
|
||||
"filename": "Xcode_16.2",
|
||||
"version": "16.2+16C5032a",
|
||||
"sha256": "0e367d06eb7c334ea143bada5e4422f56688aabff571bedf0d2ad9434b7290de",
|
||||
"install_runtimes": [
|
||||
@@ -16,42 +16,42 @@
|
||||
},
|
||||
{
|
||||
"link": "16.1",
|
||||
"filename": "16.1",
|
||||
"filename": "Xcode_16.1",
|
||||
"version": "16.1+16B40",
|
||||
"sha256": "8ca961d55981f983d21b99a95a6b0ac04905b837f6e11346ee86d28f12afe720",
|
||||
"install_runtimes": "default"
|
||||
},
|
||||
{
|
||||
"link": "15.4",
|
||||
"filename": "15.4",
|
||||
"filename": "Xcode_15.4",
|
||||
"version": "15.4.0+15F31d",
|
||||
"sha256": "82d3d61804ff3f4c7c82085e91dc701037ddaa770e542848b2477e22f4e8aa7a",
|
||||
"install_runtimes": "default"
|
||||
},
|
||||
{
|
||||
"link": "15.3",
|
||||
"filename": "15.3",
|
||||
"filename": "Xcode_15.3",
|
||||
"version": "15.3.0+15E204a",
|
||||
"sha256": "f13f6a2e2df432c3008e394640b8549a18c285acd7fd148d6c4bac8c3a5af234",
|
||||
"install_runtimes": "default"
|
||||
},
|
||||
{
|
||||
"link": "15.2",
|
||||
"filename": "15.2",
|
||||
"filename": "Xcode_15.2",
|
||||
"version": "15.2.0+15C500b",
|
||||
"sha256": "04E93680C6DDBEC84666531BE412DE778AFC8EAC6AB2037F4C2BE7290818B59B",
|
||||
"install_runtimes": "default"
|
||||
},
|
||||
{
|
||||
"link": "15.1",
|
||||
"filename": "15.1",
|
||||
"filename": "Xcode_15.1",
|
||||
"version": "15.1.0+15C65",
|
||||
"sha256": "857D8DB537BAC82BF99DE0E1D3895D214D4D02101C1340CEF3DAF6E821BA1D05",
|
||||
"install_runtimes": "default"
|
||||
},
|
||||
{
|
||||
"link": "15.0.1",
|
||||
"filename": "15.0.1",
|
||||
"filename": "Xcode_15.0.1",
|
||||
"version": "15.0.1+15A507",
|
||||
"sha256": "5AC17AE6060CAFC3C7112C6DA0B153450BE21F1DE6632777FBA9FBC9D999C9E8",
|
||||
"symlinks": ["15.0"],
|
||||
@@ -63,7 +63,7 @@
|
||||
"versions": [
|
||||
{
|
||||
"link": "16.2",
|
||||
"filename": "16.2",
|
||||
"filename": "Xcode_16.2",
|
||||
"version": "16.2+16C5032a",
|
||||
"sha256": "0e367d06eb7c334ea143bada5e4422f56688aabff571bedf0d2ad9434b7290de",
|
||||
"install_runtimes": [
|
||||
@@ -75,42 +75,42 @@
|
||||
},
|
||||
{
|
||||
"link": "16.1",
|
||||
"filename": "16.1",
|
||||
"filename": "Xcode_16.1",
|
||||
"version": "16.1+16B40",
|
||||
"sha256": "8ca961d55981f983d21b99a95a6b0ac04905b837f6e11346ee86d28f12afe720",
|
||||
"install_runtimes": "default"
|
||||
},
|
||||
{
|
||||
"link": "15.4",
|
||||
"filename": "15.4",
|
||||
"filename": "Xcode_15.4",
|
||||
"version": "15.4.0+15F31d",
|
||||
"sha256": "82d3d61804ff3f4c7c82085e91dc701037ddaa770e542848b2477e22f4e8aa7a",
|
||||
"install_runtimes": "default"
|
||||
},
|
||||
{
|
||||
"link": "15.3",
|
||||
"filename": "15.3",
|
||||
"filename": "Xcode_15.3",
|
||||
"version": "15.3.0+15E204a",
|
||||
"sha256": "f13f6a2e2df432c3008e394640b8549a18c285acd7fd148d6c4bac8c3a5af234",
|
||||
"install_runtimes": "default"
|
||||
},
|
||||
{
|
||||
"link": "15.2",
|
||||
"filename": "15.2",
|
||||
"filename": "Xcode_15.2",
|
||||
"version": "15.2.0+15C500b",
|
||||
"sha256": "04E93680C6DDBEC84666531BE412DE778AFC8EAC6AB2037F4C2BE7290818B59B",
|
||||
"install_runtimes": "default"
|
||||
},
|
||||
{
|
||||
"link": "15.1",
|
||||
"filename": "15.1",
|
||||
"filename": "Xcode_15.1",
|
||||
"version": "15.1.0+15C65",
|
||||
"sha256": "857D8DB537BAC82BF99DE0E1D3895D214D4D02101C1340CEF3DAF6E821BA1D05",
|
||||
"install_runtimes": "default"
|
||||
},
|
||||
{
|
||||
"link": "15.0.1",
|
||||
"filename": "15.0.1",
|
||||
"filename": "Xcode_15.0.1",
|
||||
"version": "15.0.1+15A507",
|
||||
"sha256": "5AC17AE6060CAFC3C7112C6DA0B153450BE21F1DE6632777FBA9FBC9D999C9E8",
|
||||
"symlinks": ["15.0"],
|
||||
@@ -139,12 +139,13 @@
|
||||
],
|
||||
"addons": [],
|
||||
"additional_tools": [
|
||||
"cmake;3.31.5"
|
||||
"cmake;3.31.5",
|
||||
"cmake;4.1.2"
|
||||
],
|
||||
"ndk": {
|
||||
"default": "26",
|
||||
"versions": [
|
||||
"26", "27", "28"
|
||||
"26", "27", "28", "29"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -202,13 +203,15 @@
|
||||
"x64": {
|
||||
"versions": [
|
||||
"8.0",
|
||||
"9.0"
|
||||
"9.0",
|
||||
"10.0"
|
||||
]
|
||||
},
|
||||
"arm64": {
|
||||
"versions": [
|
||||
"8.0",
|
||||
"9.0"
|
||||
"9.0",
|
||||
"10.0"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -320,7 +323,7 @@
|
||||
"version": "15"
|
||||
},
|
||||
"php": {
|
||||
"version": "8.4"
|
||||
"version": "8.5"
|
||||
},
|
||||
"pwsh": {
|
||||
"version": "7.4"
|
||||
|
||||
@@ -4,16 +4,16 @@
|
||||
"x64": {
|
||||
"versions": [
|
||||
{
|
||||
"link": "26.1_Release_Candidate",
|
||||
"filename": "26.1_Release_Candidate_Universal",
|
||||
"version": "26.1_Release_Candidate_Universal+17B54",
|
||||
"link": "26.1.1",
|
||||
"filename": "Xcode_26.1.1_Universal",
|
||||
"version": "26.1.1+17B100",
|
||||
"symlinks": ["26.1"],
|
||||
"sha256": "6504F2527444D295585515C7E41A862FFD701E3255D6634A40A714C4895E6CCD",
|
||||
"install_runtimes": "none"
|
||||
"sha256": "ed55d55fa28455c11a65e0809ba8fdf7d83fdeb268aabf9af7fcc1ee911543eb",
|
||||
"install_runtimes": "default"
|
||||
},
|
||||
{
|
||||
"link": "26.0.1",
|
||||
"filename": "26.0.1_Universal",
|
||||
"filename": "Xcode_26.0.1_Universal",
|
||||
"version": "26.0.1+17A400",
|
||||
"symlinks": ["26.0"],
|
||||
"sha256": "9881c457068c86ac91e94cca2d7116dfd01cb7179c22b0863b63c7f3bb7e7695",
|
||||
@@ -21,7 +21,7 @@
|
||||
},
|
||||
{
|
||||
"link": "16.4",
|
||||
"filename": "16.4",
|
||||
"filename": "Xcode_16.4",
|
||||
"version": "16.4.0+16F6",
|
||||
"sha256": "2dbf65ba28fb85b34e72c14c529a42d5c3189ab0f11fb29fdebd5f4ee6c87900",
|
||||
"install_runtimes": [
|
||||
@@ -32,28 +32,28 @@
|
||||
},
|
||||
{
|
||||
"link": "16.3",
|
||||
"filename": "16.3",
|
||||
"filename": "Xcode_16.3",
|
||||
"version": "16.3+16E140",
|
||||
"sha256": "c593177b73e45f31e1cf7ced131760d8aa8e1532f5bbf8ba11a4ded01da14fbb",
|
||||
"install_runtimes": "none"
|
||||
},
|
||||
{
|
||||
"link": "16.2",
|
||||
"filename": "16.2",
|
||||
"filename": "Xcode_16.2",
|
||||
"version": "16.2+16C5032a",
|
||||
"sha256": "0e367d06eb7c334ea143bada5e4422f56688aabff571bedf0d2ad9434b7290de",
|
||||
"install_runtimes": "none"
|
||||
},
|
||||
{
|
||||
"link": "16.1",
|
||||
"filename": "16.1",
|
||||
"filename": "Xcode_16.1",
|
||||
"version": "16.1+16B40",
|
||||
"sha256": "8ca961d55981f983d21b99a95a6b0ac04905b837f6e11346ee86d28f12afe720",
|
||||
"install_runtimes": "none"
|
||||
},
|
||||
{
|
||||
"link": "16",
|
||||
"filename": "16",
|
||||
"filename": "Xcode_16",
|
||||
"version": "16.0.0+16A242d",
|
||||
"sha256": "4a26c3d102a55c7222fb145e0ee1503249c9c26c6e02dc64d783c8810b37b1e3",
|
||||
"symlinks": ["16.0"],
|
||||
@@ -64,16 +64,16 @@
|
||||
"arm64":{
|
||||
"versions": [
|
||||
{
|
||||
"link": "26.1_Release_Candidate",
|
||||
"filename": "26.1_Release_Candidate_Universal",
|
||||
"version": "26.1_Release_Candidate_Universal+17B54",
|
||||
"link": "26.1.1",
|
||||
"filename": "Xcode_26.1.1_Universal",
|
||||
"version": "26.1.1+17B100",
|
||||
"symlinks": ["26.1"],
|
||||
"sha256": "6504F2527444D295585515C7E41A862FFD701E3255D6634A40A714C4895E6CCD",
|
||||
"install_runtimes": "none"
|
||||
"sha256": "ed55d55fa28455c11a65e0809ba8fdf7d83fdeb268aabf9af7fcc1ee911543eb",
|
||||
"install_runtimes": "default"
|
||||
},
|
||||
{
|
||||
"link": "26.0.1",
|
||||
"filename": "26.0.1_Universal",
|
||||
"filename": "Xcode_26.0.1_Universal",
|
||||
"version": "26.0.1+17A400",
|
||||
"symlinks": ["26.0"],
|
||||
"sha256": "9881c457068c86ac91e94cca2d7116dfd01cb7179c22b0863b63c7f3bb7e7695",
|
||||
@@ -81,7 +81,7 @@
|
||||
},
|
||||
{
|
||||
"link": "16.4",
|
||||
"filename": "16.4",
|
||||
"filename": "Xcode_16.4",
|
||||
"version": "16.4.0+16F6",
|
||||
"sha256": "2dbf65ba28fb85b34e72c14c529a42d5c3189ab0f11fb29fdebd5f4ee6c87900",
|
||||
"install_runtimes": [
|
||||
@@ -93,28 +93,28 @@
|
||||
},
|
||||
{
|
||||
"link": "16.3",
|
||||
"filename": "16.3",
|
||||
"filename": "Xcode_16.3",
|
||||
"version": "16.3+16E140",
|
||||
"sha256": "c593177b73e45f31e1cf7ced131760d8aa8e1532f5bbf8ba11a4ded01da14fbb",
|
||||
"install_runtimes": "none"
|
||||
},
|
||||
{
|
||||
"link": "16.2",
|
||||
"filename": "16.2",
|
||||
"filename": "Xcode_16.2",
|
||||
"version": "16.2+16C5032a",
|
||||
"sha256": "0e367d06eb7c334ea143bada5e4422f56688aabff571bedf0d2ad9434b7290de",
|
||||
"install_runtimes": "none"
|
||||
},
|
||||
{
|
||||
"link": "16.1",
|
||||
"filename": "16.1",
|
||||
"filename": "Xcode_16.1",
|
||||
"version": "16.1+16B40",
|
||||
"sha256": "8ca961d55981f983d21b99a95a6b0ac04905b837f6e11346ee86d28f12afe720",
|
||||
"install_runtimes": "none"
|
||||
},
|
||||
{
|
||||
"link": "16",
|
||||
"filename": "16",
|
||||
"filename": "Xcode_16",
|
||||
"version": "16.0.0+16A242d",
|
||||
"sha256": "4a26c3d102a55c7222fb145e0ee1503249c9c26c6e02dc64d783c8810b37b1e3",
|
||||
"symlinks": ["16.0"],
|
||||
@@ -143,12 +143,13 @@
|
||||
],
|
||||
"addons": [],
|
||||
"additional_tools": [
|
||||
"cmake;3.31.5"
|
||||
"cmake;3.31.5",
|
||||
"cmake;4.1.2"
|
||||
],
|
||||
"ndk": {
|
||||
"default": "27",
|
||||
"versions": [
|
||||
"26", "27","28"
|
||||
"26", "27","28", "29"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -206,13 +207,15 @@
|
||||
"x64": {
|
||||
"versions": [
|
||||
"8.0",
|
||||
"9.0"
|
||||
"9.0",
|
||||
"10.0"
|
||||
]
|
||||
},
|
||||
"arm64": {
|
||||
"versions": [
|
||||
"8.0",
|
||||
"9.0"
|
||||
"9.0",
|
||||
"10.0"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -324,7 +327,7 @@
|
||||
"version": "18"
|
||||
},
|
||||
"php": {
|
||||
"version": "8.4"
|
||||
"version": "8.5"
|
||||
},
|
||||
"pwsh": {
|
||||
"version": "7.4"
|
||||
|
||||
@@ -4,32 +4,27 @@
|
||||
"arm64":{
|
||||
"versions": [
|
||||
{
|
||||
"link": "26.1_Release_Candidate",
|
||||
"filename": "26.1_Release_Candidate_Universal",
|
||||
"version": "26.1_Release_Candidate_Universal+17B54",
|
||||
"link": "26.2",
|
||||
"filename": "Xcode_26.2_Universal",
|
||||
"version": "26.2+17C52",
|
||||
"sha256": "8f29ab6a9ac6670d3cf53545ffdb1c317d11607fa8db38fc56d3391df7783fbd",
|
||||
"install_runtimes": "default"
|
||||
},
|
||||
{
|
||||
"link": "26.1.1",
|
||||
"filename": "Xcode_26.1.1_Universal",
|
||||
"version": "26.1.1+17B100",
|
||||
"symlinks": ["26.1"],
|
||||
"sha256": "6504F2527444D295585515C7E41A862FFD701E3255D6634A40A714C4895E6CCD",
|
||||
"sha256": "ed55d55fa28455c11a65e0809ba8fdf7d83fdeb268aabf9af7fcc1ee911543eb",
|
||||
"install_runtimes": "default"
|
||||
},
|
||||
{
|
||||
"link": "26.0.1",
|
||||
"filename": "26.0.1_Universal",
|
||||
"filename": "Xcode_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"] }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -54,12 +49,13 @@
|
||||
],
|
||||
"addons": [],
|
||||
"additional_tools": [
|
||||
"cmake;3.31.5"
|
||||
"cmake;3.31.5",
|
||||
"cmake;4.1.2"
|
||||
],
|
||||
"ndk": {
|
||||
"default": "27",
|
||||
"versions": [
|
||||
"27","28"
|
||||
"27","28", "29"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -117,7 +113,8 @@
|
||||
"arm64": {
|
||||
"versions": [
|
||||
"8.0",
|
||||
"9.0"
|
||||
"9.0",
|
||||
"10.0"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
FROM ubuntu:24.04 AS base
|
||||
|
||||
ARG IMAGE_VERSION=1.0.0
|
||||
ARG IMAGE_OWNER="GitHub"
|
||||
|
||||
ENV IMAGE_OWNER=$IMAGE_OWNER
|
||||
ENV ImageVersion=$IMAGE_VERSION
|
||||
ENV IMAGE_VERSION=$IMAGE_VERSION
|
||||
ENV ImageOS="Linux"
|
||||
ENV IMAGE_TARGET_PLATFORM="GitHub"
|
||||
ENV POWERSHELL_DISTRIBUTION_CHANNEL="GitHub-Actions-$ImageOS"
|
||||
ENV IMAGEDATA_NAME="ubuntu:24.04"
|
||||
ENV NVM_DIR="/etc/skel/.nvm"
|
||||
ENV HELPER_SCRIPTS="/tmp/scripts/helpers"
|
||||
ENV INSTALLER_SCRIPT_FOLDER="/tmp/toolsets"
|
||||
|
||||
# Avoid interactive prompts
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
COPY scripts/build /tmp/scripts/build
|
||||
COPY scripts/helpers /tmp/scripts/helpers
|
||||
COPY toolsets/ /tmp/toolsets/
|
||||
RUN find /tmp/scripts -name "*.sh" -type f -exec chmod +x {} \;
|
||||
|
||||
COPY scripts/entrypoint.sh /opt/entrypoint.sh
|
||||
RUN chmod +x /opt/entrypoint.sh
|
||||
|
||||
RUN apt-get update && apt-get upgrade -y && apt-get install -y sudo lsb-release jq dpkg && \
|
||||
touch /run/.containerenv && \
|
||||
/tmp/scripts/build/configure-apt-sources.sh && \
|
||||
/tmp/scripts/build/configure-apt.sh && \
|
||||
/tmp/scripts/build/install-apt-vital.sh && \
|
||||
/tmp/scripts/build/install-ms-repos.sh && \
|
||||
/tmp/scripts/build/configure-image-data-file.sh && \
|
||||
/tmp/scripts/build/configure-environment.sh && \
|
||||
/tmp/scripts/build/install-actions-cache.sh && \
|
||||
/tmp/scripts/build/install-apt-common.sh && \
|
||||
/tmp/scripts/build/install-azcopy.sh && \
|
||||
/tmp/scripts/build/install-azure-cli.sh && \
|
||||
/tmp/scripts/build/install-azure-devops-cli.sh && \
|
||||
/tmp/scripts/build/install-bicep.sh && \
|
||||
/tmp/scripts/build/install-aws-tools.sh && \
|
||||
/tmp/scripts/build/install-git.sh && \
|
||||
/tmp/scripts/build/install-git-lfs.sh && \
|
||||
/tmp/scripts/build/install-github-cli.sh && \
|
||||
/tmp/scripts/build/install-google-cloud-cli.sh && \
|
||||
/tmp/scripts/build/install-nvm.sh && \
|
||||
/tmp/scripts/build/install-nodejs.sh && \
|
||||
/tmp/scripts/build/install-powershell.sh && \
|
||||
/tmp/scripts/build/configure-dpkg.sh && \
|
||||
/tmp/scripts/build/install-yq.sh && \
|
||||
/tmp/scripts/build/install-python.sh && \
|
||||
/tmp/scripts/build/install-zstd.sh && \
|
||||
/tmp/scripts/build/install-pipx-packages.sh && \
|
||||
/tmp/scripts/build/configure-system.sh && \
|
||||
/tmp/scripts/helpers/cleanup.sh
|
||||
|
||||
ENTRYPOINT ["/opt/entrypoint.sh"]
|
||||
|
||||
CMD [ "bash" ]
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
# This script builds and runs various tests on the ubuntu-slim Docker image
|
||||
# to ensure it contains the expected software and configurations.
|
||||
# The build and test workflows for docker images expect this script to be present.
|
||||
#
|
||||
# Usage: test.sh [IMAGE_NAME]
|
||||
# If IMAGE_NAME is not provided, defaults to ubuntu-slim:test
|
||||
|
||||
show_help() {
|
||||
echo "Usage: $0 [IMAGE_NAME]"
|
||||
echo ""
|
||||
echo "Generate a software report for a Docker image."
|
||||
echo ""
|
||||
echo "Arguments:"
|
||||
echo " IMAGE_NAME Docker image name to generate report for (default: ubuntu-slim:test)"
|
||||
echo ""
|
||||
echo "Examples:"
|
||||
echo " $0 # Generate report for ubuntu-slim:test (builds image first)"
|
||||
echo " $0 my-registry/ubuntu:latest # Generate report for existing image"
|
||||
echo " $0 ubuntu-slim:v1.2.3 # Generate report for tagged image"
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo " -h, --help Show this help message"
|
||||
}
|
||||
|
||||
# Handle help flags
|
||||
if [[ "$1" == "-h" || "$1" == "--help" ]]; then
|
||||
show_help
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Set the image name from parameter or use default
|
||||
IMAGE_NAME="${1:-ubuntu-slim:test}"
|
||||
|
||||
# Build the image only if using the default name (for backward compatibility)
|
||||
if [[ "$IMAGE_NAME" == "ubuntu-slim:test" ]]; then
|
||||
echo "Building image: $IMAGE_NAME"
|
||||
docker build --debug --progress plain -t "$IMAGE_NAME" .
|
||||
else
|
||||
# Check if the image exists
|
||||
if ! docker image inspect "$IMAGE_NAME" >/dev/null 2>&1; then
|
||||
echo "Error: Image '$IMAGE_NAME' does not exist. Please build it first or provide a valid image name."
|
||||
echo "Run '$0 --help' for usage information."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Generating software report for image: $IMAGE_NAME"
|
||||
|
||||
# Get the script directory
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
BASE_DIR="$(cd ../../helpers/software-report-base && pwd)"
|
||||
|
||||
echo $BASE_DIR
|
||||
|
||||
# Create a temporary directory for output
|
||||
OUTPUT_DIR=$(mktemp -d)
|
||||
echo "Using temporary directory: $OUTPUT_DIR"
|
||||
|
||||
# Run the container and execute the PowerShell script inside it
|
||||
echo "Running Generate-SoftwareReport.ps1 inside the container..."
|
||||
docker run --rm \
|
||||
-v "$OUTPUT_DIR:/output" \
|
||||
-v "$SCRIPT_DIR/scripts/docs-gen:/scripts/docs-gen:ro" \
|
||||
-v "$BASE_DIR:/scripts/software-report-base:ro" \
|
||||
"$IMAGE_NAME" \
|
||||
pwsh /scripts/docs-gen/Generate-SoftwareReport.ps1 -OutputDirectory /output
|
||||
|
||||
if [ -f "$OUTPUT_DIR/software-report.md" ]; then
|
||||
cp "$OUTPUT_DIR/software-report.md" ubuntu-slim-Readme.md
|
||||
echo "✓ Copied software-report.md to current directory"
|
||||
else
|
||||
echo "✗ Error: software-report.md was not generated"
|
||||
rm -rf "$OUTPUT_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Clean up temporary directory
|
||||
rm -rf "$OUTPUT_DIR"
|
||||
echo "✓ Software report generation complete"
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: configure-apt-sources.sh
|
||||
## Desc: Configure apt sources with failover from Azure to Ubuntu archives.
|
||||
################################################################################
|
||||
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
touch /etc/apt/apt-mirrors.txt
|
||||
|
||||
printf "http://azure.archive.ubuntu.com/ubuntu/\tpriority:1\n" | tee -a /etc/apt/apt-mirrors.txt
|
||||
printf "https://archive.ubuntu.com/ubuntu/\tpriority:2\n" | tee -a /etc/apt/apt-mirrors.txt
|
||||
printf "https://security.ubuntu.com/ubuntu/\tpriority:3\n" | tee -a /etc/apt/apt-mirrors.txt
|
||||
|
||||
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
|
||||
else
|
||||
sed -i 's|http://azure\.archive\.ubuntu\.com/ubuntu/|mirror+file:/etc/apt/apt-mirrors.txt|' /etc/apt/sources.list
|
||||
fi
|
||||
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: configure-apt.sh
|
||||
## Desc: Configure apt, install jq and apt-fast packages.
|
||||
################################################################################
|
||||
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
# Stop and disable apt-daily upgrade services;
|
||||
# systemctl stop apt-daily.timer
|
||||
# systemctl disable apt-daily.timer
|
||||
# systemctl disable apt-daily.service
|
||||
# systemctl stop apt-daily-upgrade.timer
|
||||
# systemctl disable apt-daily-upgrade.timer
|
||||
# systemctl disable apt-daily-upgrade.service
|
||||
|
||||
# Enable retry logic for apt up to 10 times
|
||||
echo "APT::Acquire::Retries \"10\";" > /etc/apt/apt.conf.d/80-retries
|
||||
|
||||
# Configure apt to always assume Y
|
||||
echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes
|
||||
|
||||
# APT understands a field called Phased-Update-Percentage which can be used to control the rollout of a new version. It is an integer between 0 and 100.
|
||||
# In case you have multiple systems that you want to receive the same set of updates,
|
||||
# you can set APT::Machine-ID to a UUID such that they all phase the same,
|
||||
# or set APT::Get::Never-Include-Phased-Updates or APT::Get::Always-Include-Phased-Updates to true such that APT will never/always consider phased updates.
|
||||
# apt-cache policy pkgname
|
||||
echo 'APT::Get::Always-Include-Phased-Updates "true";' > /etc/apt/apt.conf.d/99-phased-updates
|
||||
|
||||
# Fix bad proxy and http headers settings
|
||||
cat <<EOF >> /etc/apt/apt.conf.d/99bad_proxy
|
||||
Acquire::http::Pipeline-Depth 0;
|
||||
Acquire::http::No-Cache true;
|
||||
Acquire::https::Pipeline-Depth 0;
|
||||
Acquire::https::No-Cache true;
|
||||
Acquire::BrokenProxy true;
|
||||
EOF
|
||||
|
||||
# Uninstall unattended-upgrades
|
||||
apt-get purge unattended-upgrades
|
||||
|
||||
echo 'APT sources'
|
||||
if ! is_ubuntu24; then
|
||||
cat /etc/apt/sources.list
|
||||
else
|
||||
cat /etc/apt/sources.list.d/ubuntu.sources
|
||||
fi
|
||||
|
||||
apt-get update
|
||||
# Install jq
|
||||
apt-get install jq
|
||||
|
||||
echo "ubuntu ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: configure-dpkg.sh
|
||||
## Desc: Configure dpkg
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/etc-environment.sh
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
# This is the anti-frontend. It never interacts with you at all,
|
||||
# and makes the default answers be used for all questions. It
|
||||
# might mail error messages to root, but that's it; otherwise it
|
||||
# is completely silent and unobtrusive, a perfect frontend for
|
||||
# automatic installs. If you are using this front-end, and require
|
||||
# non-default answers to questions, you will need to pre-seed the
|
||||
# debconf database
|
||||
set_etc_environment_variable "DEBIAN_FRONTEND" "noninteractive"
|
||||
|
||||
# dpkg can be instructed not to ask for confirmation
|
||||
# when replacing a configuration file (with the --force-confdef --force-confold options)
|
||||
cat <<EOF >> /etc/apt/apt.conf.d/10dpkg-options
|
||||
Dpkg::Options {
|
||||
"--force-confdef";
|
||||
"--force-confold";
|
||||
}
|
||||
EOF
|
||||
|
||||
# hide information about packages that are no longer required
|
||||
cat <<EOF >> /etc/apt/apt.conf.d/10apt-autoremove
|
||||
APT::Get::AutomaticRemove "0";
|
||||
APT::Get::HideAutoRemove "1";
|
||||
EOF
|
||||
|
||||
# Install libicu70 package for Ubuntu 24
|
||||
if is_ubuntu24 ; then
|
||||
wget https://archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu70_70.1-2_amd64.deb
|
||||
|
||||
EXPECTED_LIBICU_SHA512="a6315482d93606e375c272718d2458870b95e4ed4b672ea8640cf7bc2d2c2f41aea13b798b1e417e1ffc472a90c6aad150d3d293aa9bddec48e39106e4042807"
|
||||
ACTUAL_LIBICU_SHA512="$(sha512sum "./libicu70_70.1-2_amd64.deb" | awk '{print $1}')"
|
||||
[ "$EXPECTED_LIBICU_SHA512" = "$ACTUAL_LIBICU_SHA512" ] || { echo "libicu checksum mismatch in configure-dpkg.sh"; exit 1;}
|
||||
sudo apt-get install -y ./libicu70_70.1-2_amd64.deb
|
||||
fi
|
||||
@@ -0,0 +1,72 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: configure-environment.sh
|
||||
## Desc: Configure system and environment
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
source $HELPER_SCRIPTS/etc-environment.sh
|
||||
|
||||
whoami
|
||||
|
||||
# Set ImageVersion and ImageOS env variables
|
||||
set_etc_environment_variable "ImageVersion" "${IMAGE_VERSION}"
|
||||
set_etc_environment_variable "ImageOS" "${IMAGE_OS}"
|
||||
|
||||
# Set the ACCEPT_EULA variable to Y value to confirm your acceptance of the End-User Licensing Agreement
|
||||
set_etc_environment_variable "ACCEPT_EULA" "Y"
|
||||
|
||||
# This directory is supposed to be created in $HOME and owned by user(https://github.com/actions/runner-images/issues/491)
|
||||
mkdir -p /etc/skel/.config/configstore
|
||||
set_etc_environment_variable "XDG_CONFIG_HOME" '$HOME/.config'
|
||||
|
||||
# Prepare directory and env variable for toolcache
|
||||
echo "Setting up AGENT_TOOLSDIRECTORY and RUNNER_TOOL_CACHE variable to /opt/hostedtoolcache"
|
||||
AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
|
||||
mkdir $AGENT_TOOLSDIRECTORY
|
||||
set_etc_environment_variable "AGENT_TOOLSDIRECTORY" "${AGENT_TOOLSDIRECTORY}"
|
||||
set_etc_environment_variable "RUNNER_TOOL_CACHE" "${AGENT_TOOLSDIRECTORY}"
|
||||
chmod -R 777 $AGENT_TOOLSDIRECTORY
|
||||
|
||||
# https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html
|
||||
# https://www.suse.com/support/kb/doc/?id=000016692
|
||||
echo 'vm.max_map_count=262144' | tee -a /etc/sysctl.conf
|
||||
|
||||
# https://kind.sigs.k8s.io/docs/user/known-issues/#pod-errors-due-to-too-many-open-files
|
||||
echo 'fs.inotify.max_user_watches=655360' | tee -a /etc/sysctl.conf
|
||||
echo 'fs.inotify.max_user_instances=1280' | tee -a /etc/sysctl.conf
|
||||
|
||||
# https://github.com/actions/runner-images/issues/9491
|
||||
echo 'vm.mmap_rnd_bits=28' | tee -a /etc/sysctl.conf
|
||||
|
||||
# https://github.com/actions/runner-images/pull/7860
|
||||
netfilter_rule='/etc/udev/rules.d/50-netfilter.rules'
|
||||
rules_directory="$(dirname "${netfilter_rule}")"
|
||||
mkdir -p $rules_directory
|
||||
touch $netfilter_rule
|
||||
echo 'ACTION=="add", SUBSYSTEM=="module", KERNEL=="nf_conntrack", RUN+="/usr/sbin/sysctl net.netfilter.nf_conntrack_tcp_be_liberal=1"' | tee -a $netfilter_rule
|
||||
|
||||
# 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
|
||||
fi
|
||||
|
||||
# Disable to load providers
|
||||
# https://github.com/microsoft/azure-pipelines-agent/issues/3834
|
||||
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
|
||||
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
function create_imagedata_json() {
|
||||
|
||||
arch=$(uname -m)
|
||||
if [[ $arch == "x86_64" ]]; then
|
||||
arch="x64"
|
||||
elif [[ $arch == "aarch64" ]]; then
|
||||
arch="arm64"
|
||||
else
|
||||
echo "Unsupported architecture: $arch"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -n "$IMAGEDATA_INCLUDED_SOFTWARE" ]]; then
|
||||
included_software="- Included Software: ${IMAGEDATA_INCLUDED_SOFTWARE}"
|
||||
fi
|
||||
|
||||
imagedata_file="/imagegeneration/imagedata.json"
|
||||
|
||||
cat <<EOF > $imagedata_file
|
||||
[
|
||||
{
|
||||
"group": "VM Image",
|
||||
"detail": "- OS: Linux (${arch})\n- Source: Docker\n- Name: ${IMAGEDATA_NAME}\n- Version: ${IMAGE_VERSION}\n${included_software}"
|
||||
}
|
||||
]
|
||||
EOF
|
||||
|
||||
}
|
||||
|
||||
mkdir -p /imagegeneration
|
||||
|
||||
# Generate the imagedata JSON file displayed on workflow initialization
|
||||
if [[ -n "$IMAGEDATA_NAME" ]]; then
|
||||
echo "Generating imagedata JSON file"
|
||||
create_imagedata_json
|
||||
else
|
||||
echo "IMAGEDATA_NAME is null or empty. Skipping imagedata JSON generation."
|
||||
fi
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: configure-system.sh
|
||||
## Desc: Post deployment system configuration actions
|
||||
################################################################################
|
||||
|
||||
source $HELPER_SCRIPTS/etc-environment.sh
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
echo "chmod -R 777 /opt"
|
||||
chmod -R 777 /opt
|
||||
echo "chmod -R 777 /usr/share"
|
||||
chmod -R 777 /usr/share
|
||||
|
||||
# Remove quotes around PATH
|
||||
ENVPATH=$(grep 'PATH=' /etc/environment | head -n 1 | sed -z 's/^PATH=*//')
|
||||
ENVPATH=${ENVPATH#"\""}
|
||||
ENVPATH=${ENVPATH%"\""}
|
||||
replace_etc_environment_variable "PATH" "${ENVPATH}"
|
||||
echo "Updated /etc/environment: $(cat /etc/environment)"
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-actions-cache.sh
|
||||
## Desc: Download latest release from https://github.com/actions/action-versions
|
||||
## Maintainer: #actions-runtime and @TingluoHuang
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
source $HELPER_SCRIPTS/etc-environment.sh
|
||||
|
||||
# Prepare directory and env variable for ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE
|
||||
ACTION_ARCHIVE_CACHE_DIR=/opt/actionarchivecache
|
||||
mkdir -p $ACTION_ARCHIVE_CACHE_DIR
|
||||
chmod -R 777 $ACTION_ARCHIVE_CACHE_DIR
|
||||
echo "Setting up ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE variable to ${ACTION_ARCHIVE_CACHE_DIR}"
|
||||
set_etc_environment_variable "ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE" "${ACTION_ARCHIVE_CACHE_DIR}"
|
||||
|
||||
# Download latest release from github.com/actions/action-versions and untar to /opt/actionarchivecache
|
||||
download_url=$(resolve_github_release_asset_url "actions/action-versions" "endswith(\"action-versions.tar.gz\")" "latest")
|
||||
archive_path=$(download_with_retry "$download_url")
|
||||
tar -xzf "$archive_path" -C $ACTION_ARCHIVE_CACHE_DIR
|
||||
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-apt-common.sh
|
||||
## Desc: Install basic command line utilities and dev packages
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
common_packages=$(get_toolset_value .apt.common_packages[])
|
||||
cmd_packages=$(get_toolset_value .apt.cmd_packages[])
|
||||
|
||||
apt-get install --no-install-recommends $common_packages $cmd_packages
|
||||
|
||||
# for package in $common_packages $cmd_packages; do
|
||||
# echo "Install $package"
|
||||
# apt-get install --no-install-recommends $package
|
||||
# done
|
||||
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-apt-vital.sh
|
||||
## Desc: Install vital command line utilities
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
vital_packages=$(get_toolset_value .apt.vital_packages[])
|
||||
apt-get install --no-install-recommends $vital_packages
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-aws-tools.sh
|
||||
## Desc: Install the AWS CLI, Session Manager plugin for the AWS CLI, and AWS SAM CLI
|
||||
## Supply chain security: AWS SAM CLI - checksum validation
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
awscliv2_archive_path=$(download_with_retry "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip")
|
||||
unzip -qq "$awscliv2_archive_path" -d /tmp/installers/
|
||||
/tmp/installers/aws/install -i /usr/local/aws-cli -b /usr/local/bin
|
||||
|
||||
smplugin_deb_path=$(download_with_retry "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb")
|
||||
apt-get install "$smplugin_deb_path"
|
||||
|
||||
# Download the latest aws sam cli release
|
||||
aws_sam_cli_archive_name="aws-sam-cli-linux-x86_64.zip"
|
||||
sam_cli_download_url=$(resolve_github_release_asset_url "aws/aws-sam-cli" "endswith(\"$aws_sam_cli_archive_name\")" "latest")
|
||||
aws_sam_cli_archive_path=$(download_with_retry "$sam_cli_download_url")
|
||||
|
||||
# Supply chain security - AWS SAM CLI
|
||||
aws_sam_cli_hash=$(get_checksum_from_github_release "aws/aws-sam-cli" "${aws_sam_cli_archive_name}.. " "latest" "SHA256")
|
||||
use_checksum_comparison "$aws_sam_cli_archive_path" "$aws_sam_cli_hash"
|
||||
|
||||
# Install the latest aws sam cli release
|
||||
mkdir -p /tmp/installers/aws-sam-cli
|
||||
unzip "$aws_sam_cli_archive_path" -d /tmp/installers/aws-sam-cli
|
||||
/tmp/installers/aws-sam-cli/install -i /usr/local/aws-sam-cli -b /usr/local/bin
|
||||
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-azcopy.sh
|
||||
## Desc: Install AzCopy
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
# Install AzCopy10
|
||||
archive_path=$(download_with_retry "https://aka.ms/downloadazcopy-v10-linux")
|
||||
tar xzf "$archive_path" --strip-components=1 -C /tmp
|
||||
install /tmp/azcopy /usr/local/bin/azcopy
|
||||
|
||||
# Create azcopy 10 alias for backward compatibility
|
||||
ln -sf /usr/local/bin/azcopy /usr/local/bin/azcopy10
|
||||
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-azure-cli.sh
|
||||
## Desc: Install Azure CLI (az)
|
||||
################################################################################
|
||||
|
||||
# Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
|
||||
curl -fsSL https://aka.ms/InstallAzureCLIDeb | sudo bash
|
||||
|
||||
echo "azure-cli https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt" >> $HELPER_SCRIPTS/apt-sources.txt
|
||||
|
||||
rm -f /etc/apt/sources.list.d/azure-cli.list
|
||||
rm -f /etc/apt/sources.list.d/azure-cli.list.save
|
||||
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-azure-devops-cli.sh
|
||||
## Desc: Install Azure DevOps CLI (az devops)
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/etc-environment.sh
|
||||
|
||||
# AZURE_EXTENSION_DIR shell variable defines where modules are installed
|
||||
# https://docs.microsoft.com/en-us/cli/azure/azure-cli-extensions-overview
|
||||
export AZURE_EXTENSION_DIR=/opt/az/azcliextensions
|
||||
set_etc_environment_variable "AZURE_EXTENSION_DIR" "${AZURE_EXTENSION_DIR}"
|
||||
|
||||
# install azure devops Cli extension
|
||||
az extension add -n azure-devops
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-bicep.sh
|
||||
## Desc: Install bicep cli
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
# Install Bicep CLI
|
||||
download_url=$(resolve_github_release_asset_url "Azure/bicep" "endswith(\"bicep-linux-x64\")" "latest")
|
||||
bicep_binary_path=$(download_with_retry "${download_url}")
|
||||
|
||||
# Mark it as executable
|
||||
install "$bicep_binary_path" /usr/local/bin/bicep
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-git-lfs.sh
|
||||
## Desc: Install Git-lfs
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
GIT_LFS_REPO="https://packagecloud.io/install/repositories/github/git-lfs"
|
||||
|
||||
# Install git-lfs
|
||||
curl -fsSL $GIT_LFS_REPO/script.deb.sh | bash
|
||||
apt-get install git-lfs
|
||||
|
||||
# Remove source repo's
|
||||
rm /etc/apt/sources.list.d/github_git-lfs.list
|
||||
|
||||
# Document apt source repo's
|
||||
echo "git-lfs $GIT_LFS_REPO" >> $HELPER_SCRIPTS/apt-sources.txt
|
||||
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-git.sh
|
||||
## Desc: Install Git and Git-FTP
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
GIT_REPO="ppa:git-core/ppa"
|
||||
|
||||
## Install git
|
||||
add-apt-repository $GIT_REPO -y
|
||||
apt-get update
|
||||
apt-get install git
|
||||
|
||||
# Git version 2.35.2 introduces security fix that breaks action\checkout https://github.com/actions/checkout/issues/760
|
||||
cat <<EOF >> /etc/gitconfig
|
||||
[safe]
|
||||
directory = *
|
||||
EOF
|
||||
|
||||
# Install git-ftp
|
||||
apt-get install git-ftp
|
||||
|
||||
# Remove source repo's
|
||||
add-apt-repository --remove $GIT_REPO
|
||||
|
||||
# Document apt source repo's
|
||||
echo "git-core $GIT_REPO" >> $HELPER_SCRIPTS/apt-sources.txt
|
||||
|
||||
# Add well-known SSH host keys to known_hosts
|
||||
ssh-keyscan -t rsa,ecdsa,ed25519 github.com >> /etc/ssh/ssh_known_hosts
|
||||
ssh-keyscan -t rsa ssh.dev.azure.com >> /etc/ssh/ssh_known_hosts
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-github-cli.sh
|
||||
## Desc: Install GitHub CLI
|
||||
## Must be run as non-root user after homebrew
|
||||
## Supply chain security: GitHub CLI - checksum validation
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
# Download GitHub CLI
|
||||
gh_cli_url=$(resolve_github_release_asset_url "cli/cli" "contains(\"linux\") and contains(\"amd64\") and endswith(\".deb\")" "latest")
|
||||
gh_cli_deb_path=$(download_with_retry "$gh_cli_url")
|
||||
|
||||
# Supply chain security - GitHub CLI
|
||||
hash_url=$(resolve_github_release_asset_url "cli/cli" "endswith(\"checksums.txt\")" "latest")
|
||||
external_hash=$(get_checksum_from_url "$hash_url" "linux_amd64.deb" "SHA256")
|
||||
use_checksum_comparison "$gh_cli_deb_path" "$external_hash"
|
||||
|
||||
# Install GitHub CLI
|
||||
apt-get install "$gh_cli_deb_path"
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-google-cloud-cli.sh
|
||||
## Desc: Install the Google Cloud CLI
|
||||
################################################################################
|
||||
|
||||
REPO_URL="https://packages.cloud.google.com/apt"
|
||||
|
||||
# Install the Google Cloud CLI
|
||||
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] $REPO_URL cloud-sdk main" > /etc/apt/sources.list.d/google-cloud-sdk.list
|
||||
wget -qO- https://packages.cloud.google.com/apt/doc/apt-key.gpg | gpg --dearmor > /usr/share/keyrings/cloud.google.gpg
|
||||
apt-get update
|
||||
apt-get install google-cloud-cli
|
||||
|
||||
# remove apt
|
||||
rm /etc/apt/sources.list.d/google-cloud-sdk.list
|
||||
rm /usr/share/keyrings/cloud.google.gpg
|
||||
|
||||
# add repo to the apt-sources.txt
|
||||
echo "google-cloud-sdk $REPO_URL" >> $HELPER_SCRIPTS/apt-sources.txt
|
||||
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-ms-repos.sh
|
||||
## Desc: Install official Microsoft package repos for the distribution
|
||||
################################################################################
|
||||
|
||||
os_label=$(lsb_release -rs)
|
||||
|
||||
# Install Microsoft repository
|
||||
wget https://packages.microsoft.com/config/ubuntu/$os_label/packages-microsoft-prod.deb
|
||||
dpkg -i packages-microsoft-prod.deb
|
||||
|
||||
# update
|
||||
apt-get install apt-transport-https ca-certificates curl software-properties-common
|
||||
apt-get update
|
||||
apt-get dist-upgrade
|
||||
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-nodejs.sh
|
||||
## Desc: Install Node.js LTS and related tooling (Gulp, Grunt)
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
# Install default Node.js
|
||||
default_version=$(get_toolset_value '.node.default')
|
||||
|
||||
curl -fsSL https://raw.githubusercontent.com/tj/n/master/bin/n -o ~/n
|
||||
sudo bash ~/n $default_version
|
||||
|
||||
# Install node modules
|
||||
node_modules=$(get_toolset_value '.node_modules[].name')
|
||||
if [ -n "$node_modules" ]; then
|
||||
npm install -g $node_modules
|
||||
else
|
||||
echo "No node modules to install"
|
||||
fi
|
||||
|
||||
# fix global modules installation as regular user
|
||||
# related issue https://github.com/actions/runner-images/issues/3727
|
||||
sudo chmod -R 777 /usr/local/lib/node_modules
|
||||
sudo chmod -R 777 /usr/local/bin
|
||||
|
||||
rm -rf ~/n
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-nvm.sh
|
||||
## Desc: Install Nvm
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/etc-environment.sh
|
||||
|
||||
export NVM_DIR="/etc/skel/.nvm"
|
||||
mkdir ${NVM_DIR}
|
||||
nvm_version=$(curl -fsSL https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r '.tag_name')
|
||||
curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/$nvm_version/install.sh | bash
|
||||
set_etc_environment_variable "NVM_DIR" '$HOME/.nvm'
|
||||
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' | tee -a /etc/skel/.bash_profile
|
||||
[ -s "${NVM_DIR}/nvm.sh" ] && \. "${NVM_DIR}/nvm.sh"
|
||||
|
||||
echo "source ${NVM_DIR}/nvm.sh" | tee -a /etc/skel/.bashrc
|
||||
|
||||
# set system node.js as default one
|
||||
nvm alias default system
|
||||
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-pipx-packages.sh
|
||||
## Desc: Install tools via pipx
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
export PATH="$PATH:/opt/pipx_bin"
|
||||
|
||||
pipx_packages=$(get_toolset_value ".pipx[] .package")
|
||||
|
||||
if [ -z "$pipx_packages" ]; then
|
||||
echo "No pipx packages defined in toolset. Skipping pipx installation."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for package in $pipx_packages; do
|
||||
echo "Install $package into default python"
|
||||
pipx install $package
|
||||
|
||||
# https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html
|
||||
# Install ansible into an existing ansible-core Virtual Environment
|
||||
if [[ $package == "ansible-core" ]]; then
|
||||
pipx inject $package ansible
|
||||
fi
|
||||
done
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-powershell.sh
|
||||
## Desc: Install PowerShell Core
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
pwsh_version=$(get_toolset_value .pwsh.version)
|
||||
|
||||
# Install Powershell
|
||||
|
||||
apt-get install powershell=$pwsh_version*
|
||||
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-python.sh
|
||||
## Desc: Install Python 3
|
||||
################################################################################
|
||||
|
||||
set -e
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/etc-environment.sh
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
# Install Python, Python 3, pip, pip3
|
||||
apt-get install -y --no-install-recommends python3 python3-dev python3-pip python3-venv
|
||||
|
||||
if is_ubuntu24; then
|
||||
# Create temporary workaround to allow user to continue using pip
|
||||
sudo cat <<EOF > /etc/pip.conf
|
||||
[global]
|
||||
break-system-packages = true
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Install pipx
|
||||
# Set pipx custom directory
|
||||
export PIPX_BIN_DIR=/opt/pipx_bin
|
||||
export PIPX_HOME=/opt/pipx
|
||||
|
||||
python3 -m pip install pipx
|
||||
python3 -m pipx ensurepath
|
||||
|
||||
# Update /etc/environment
|
||||
set_etc_environment_variable "PIPX_BIN_DIR" $PIPX_BIN_DIR
|
||||
set_etc_environment_variable "PIPX_HOME" $PIPX_HOME
|
||||
prepend_etc_environment_path $PIPX_BIN_DIR
|
||||
|
||||
# Adding this dir to PATH will make installed pip commands are immediately available.
|
||||
prepend_etc_environment_path '$HOME/.local/bin'
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-yq.sh
|
||||
## Desc: Install yq - a command-line YAML, JSON and XML processor
|
||||
## Supply chain security: yq - checksum validation
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
# Download yq
|
||||
yq_url=$(resolve_github_release_asset_url "mikefarah/yq" "endswith(\"yq_linux_amd64\")" "latest")
|
||||
binary_path=$(download_with_retry "${yq_url}")
|
||||
|
||||
# Supply chain security - yq
|
||||
hash_url=$(resolve_github_release_asset_url "mikefarah/yq" "endswith(\"checksums\")" "latest")
|
||||
external_hash=$(get_checksum_from_url "${hash_url}" "yq_linux_amd64 " "SHA256" "true" " " "19")
|
||||
use_checksum_comparison "$binary_path" "$external_hash"
|
||||
|
||||
# Install yq
|
||||
install "$binary_path" /usr/bin/yq
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-zstd.sh
|
||||
## Desc: Install zstd
|
||||
## Supply chain security: zstd - checksum validation
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
# Download zstd
|
||||
release_tag=$(curl -fsSL https://api.github.com/repos/facebook/zstd/releases/latest | jq -r '.tag_name')
|
||||
release_name="zstd-${release_tag//v}"
|
||||
download_url="https://github.com/facebook/zstd/releases/download/${release_tag}/${release_name}.tar.gz"
|
||||
archive_path=$(download_with_retry "${download_url}")
|
||||
|
||||
# Supply chain security - zstd
|
||||
external_hash=$(get_checksum_from_url "${download_url}.sha256" "${release_name}.tar.gz" "SHA256")
|
||||
use_checksum_comparison "$archive_path" "$external_hash"
|
||||
|
||||
# Install zstd
|
||||
apt-get install liblz4-dev
|
||||
tar xzf "$archive_path" -C /tmp
|
||||
|
||||
make -C "/tmp/${release_name}/contrib/pzstd" -j $(nproc) all
|
||||
make -C "/tmp/${release_name}" -j $(nproc) zstd-release
|
||||
|
||||
for copyprocess in zstd zstdless zstdgrep; do
|
||||
cp "/tmp/${release_name}/programs/${copyprocess}" /usr/local/bin/
|
||||
done
|
||||
|
||||
cp "/tmp/${release_name}/contrib/pzstd/pzstd" /usr/local/bin/
|
||||
|
||||
for symlink in zstdcat zstdmt unzstd; do
|
||||
ln -sf /usr/local/bin/zstd /usr/local/bin/${symlink}
|
||||
done
|
||||
@@ -0,0 +1,152 @@
|
||||
function Get-CommandResult {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Runs a command in bash and returns the output and exit code.
|
||||
|
||||
.DESCRIPTION
|
||||
Function runs a provided command in bash and returns the output and exit code as hashtable.
|
||||
|
||||
.PARAMETER Command
|
||||
The command to run.
|
||||
|
||||
.PARAMETER ExpectedExitCode
|
||||
The expected exit code. If the actual exit code does not match, an exception is thrown.
|
||||
|
||||
.PARAMETER Multiline
|
||||
If true, the output is returned as an array of strings. Otherwise, the output is returned as a single string.
|
||||
|
||||
.PARAMETER ValidateExitCode
|
||||
If true, the actual exit code is compared to the expected exit code.
|
||||
|
||||
.EXAMPLE
|
||||
$result = Get-CommandResult "ls -la"
|
||||
|
||||
This command runs "ls -la" in bash and returns the output and exit code as hashtable.
|
||||
|
||||
#>
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string] $Command,
|
||||
[int[]] $ExpectedExitCode = 0,
|
||||
[switch] $Multiline,
|
||||
[bool] $ValidateExitCode = $true
|
||||
)
|
||||
|
||||
# Bash trick to suppress and show error output because some commands write to stderr (for example, "python --version")
|
||||
$stdout = & bash -c "$Command 2>&1"
|
||||
$exitCode = $LASTEXITCODE
|
||||
|
||||
if ($ValidateExitCode) {
|
||||
if ($ExpectedExitCode -notcontains $exitCode) {
|
||||
try {
|
||||
throw "StdOut: '$stdout' ExitCode: '$exitCode'"
|
||||
} catch {
|
||||
Write-Host $_.Exception.Message
|
||||
Write-Host $_.ScriptStackTrace
|
||||
exit $LASTEXITCODE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return @{
|
||||
Output = If ($Multiline -eq $true) { $stdout } else { [string] $stdout }
|
||||
ExitCode = $exitCode
|
||||
}
|
||||
}
|
||||
|
||||
function Test-IsUbuntu22 {
|
||||
return (lsb_release -rs) -eq "22.04"
|
||||
}
|
||||
|
||||
function Test-IsUbuntu24 {
|
||||
return (lsb_release -rs) -eq "24.04"
|
||||
}
|
||||
|
||||
function Get-ToolsetContent {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Retrieves the content of the toolset.json file.
|
||||
|
||||
.DESCRIPTION
|
||||
This function reads the toolset.json in path provided by INSTALLER_SCRIPT_FOLDER
|
||||
environment variable and returns the content as a PowerShell object.
|
||||
#>
|
||||
|
||||
$toolsetPath = Join-Path $env:INSTALLER_SCRIPT_FOLDER "toolset.json"
|
||||
$toolsetJson = Get-Content -Path $toolsetPath -Raw
|
||||
ConvertFrom-Json -InputObject $toolsetJson
|
||||
}
|
||||
|
||||
function Invoke-DownloadWithRetry {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Downloads a file from a given URL with retry functionality.
|
||||
|
||||
.DESCRIPTION
|
||||
The Invoke-DownloadWithRetry function downloads a file from the specified URL
|
||||
to the specified path. It includes retry functionality in case the download fails.
|
||||
|
||||
.PARAMETER Url
|
||||
The URL of the file to download.
|
||||
|
||||
.PARAMETER Path
|
||||
The path where the downloaded file will be saved. If not provided, a temporary path
|
||||
will be used.
|
||||
|
||||
.EXAMPLE
|
||||
Invoke-DownloadWithRetry -Url "https://example.com/file.zip" -Path "/usr/local/bin"
|
||||
Downloads the file from the specified URL and saves it to the specified path.
|
||||
|
||||
.EXAMPLE
|
||||
Invoke-DownloadWithRetry -Url "https://example.com/file.zip"
|
||||
Downloads the file from the specified URL and saves it to a temporary path.
|
||||
|
||||
.OUTPUTS
|
||||
The path where the downloaded file is saved.
|
||||
#>
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
[string] $Url,
|
||||
[Alias("Destination")]
|
||||
[string] $DestinationPath
|
||||
)
|
||||
|
||||
if (-not $DestinationPath) {
|
||||
$invalidChars = [IO.Path]::GetInvalidFileNameChars() -join ''
|
||||
$re = "[{0}]" -f [RegEx]::Escape($invalidChars)
|
||||
$fileName = [IO.Path]::GetFileName($Url) -replace $re
|
||||
|
||||
if ([String]::IsNullOrEmpty($fileName)) {
|
||||
$fileName = [System.IO.Path]::GetRandomFileName()
|
||||
}
|
||||
$DestinationPath = Join-Path -Path "/tmp" -ChildPath $fileName
|
||||
}
|
||||
|
||||
Write-Host "Downloading package from $Url to $DestinationPath..."
|
||||
|
||||
$interval = 30
|
||||
$downloadStartTime = Get-Date
|
||||
for ($retries = 20; $retries -gt 0; $retries--) {
|
||||
try {
|
||||
$attemptStartTime = Get-Date
|
||||
Invoke-WebRequest -Uri $Url -Outfile $DestinationPath
|
||||
$attemptSeconds = [math]::Round(($(Get-Date) - $attemptStartTime).TotalSeconds, 2)
|
||||
Write-Host "Package downloaded in $attemptSeconds seconds"
|
||||
break
|
||||
} catch {
|
||||
$attemptSeconds = [math]::Round(($(Get-Date) - $attemptStartTime).TotalSeconds, 2)
|
||||
Write-Warning "Package download failed in $attemptSeconds seconds"
|
||||
Write-Warning $_.Exception.Message
|
||||
}
|
||||
|
||||
if ($retries -eq 0) {
|
||||
$totalSeconds = [math]::Round(($(Get-Date) - $downloadStartTime).TotalSeconds, 2)
|
||||
throw "Package download failed after $totalSeconds seconds"
|
||||
}
|
||||
|
||||
Write-Warning "Waiting $interval seconds before retrying (retries left: $retries)..."
|
||||
Start-Sleep -Seconds $interval
|
||||
}
|
||||
|
||||
return $DestinationPath
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
using module ../software-report-base/SoftwareReport.psm1
|
||||
using module ../software-report-base/SoftwareReport.Nodes.psm1
|
||||
|
||||
param (
|
||||
[Parameter(Mandatory)]
|
||||
[string] $OutputDirectory
|
||||
)
|
||||
|
||||
$global:ErrorActionPreference = "Stop"
|
||||
$global:ErrorView = "NormalView"
|
||||
Set-StrictMode -Version Latest
|
||||
|
||||
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Common.psm1") -DisableNameChecking
|
||||
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Helpers.psm1") -DisableNameChecking
|
||||
Import-Module (Join-Path $PSScriptRoot "Common.Helpers.psm1") -DisableNameChecking
|
||||
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Tools.psm1") -DisableNameChecking
|
||||
|
||||
# Restore file owner in user profile
|
||||
sudo chown -R ${env:USER}: $env:HOME
|
||||
|
||||
# Software report
|
||||
$softwareReport = [SoftwareReport]::new("Ubuntu-Slim")
|
||||
$softwareReport.Root.AddToolVersion("OS Version:", $(Get-OSVersionFull))
|
||||
$softwareReport.Root.AddToolVersion("Kernel Version:", $(Get-KernelVersion))
|
||||
$softwareReport.Root.AddToolVersion("Image Version:", $env:IMAGE_VERSION)
|
||||
$softwareReport.Root.AddToolVersion("Systemd version:", $(Get-SystemdVersion))
|
||||
|
||||
$installedSoftware = $softwareReport.Root.AddHeader("Installed Software")
|
||||
|
||||
# Language and Runtime
|
||||
$languageAndRuntime = $installedSoftware.AddHeader("Language and Runtime")
|
||||
$languageAndRuntime.AddToolVersion("Bash", $(Get-BashVersion))
|
||||
$languageAndRuntime.AddToolVersion("Dash", $(Get-DashVersion))
|
||||
$languageAndRuntime.AddToolVersion("Node.js", $(Get-NodeVersion))
|
||||
$languageAndRuntime.AddToolVersion("Perl", $(Get-PerlVersion))
|
||||
$languageAndRuntime.AddToolVersion("Python", $(Get-PythonVersion))
|
||||
|
||||
# Package Management
|
||||
$packageManagement = $installedSoftware.AddHeader("Package Management")
|
||||
$packageManagement.AddToolVersion("Npm", $(Get-NpmVersion))
|
||||
$packageManagement.AddToolVersion("Pip", $(Get-PipVersion))
|
||||
$packageManagement.AddToolVersion("Pip3", $(Get-Pip3Version))
|
||||
$packageManagement.AddToolVersion("Pipx", $(Get-PipxVersion))
|
||||
|
||||
# Tools
|
||||
$tools = $installedSoftware.AddHeader("Tools")
|
||||
$tools.AddToolVersion("AzCopy", $(Get-AzCopyVersion))
|
||||
$tools.AddToolVersion("Bicep", $(Get-BicepVersion))
|
||||
$tools.AddToolVersion("Git", $(Get-GitVersion))
|
||||
$tools.AddToolVersion("Git LFS", $(Get-GitLFSVersion))
|
||||
$tools.AddToolVersion("Git-ftp", $(Get-GitFTPVersion))
|
||||
$tools.AddToolVersion("jq", $(Get-JqVersion))
|
||||
$tools.AddToolVersion("nvm", $(Get-NvmVersion))
|
||||
$tools.AddToolVersion("OpenSSL", $(Get-OpensslVersion))
|
||||
$tools.AddToolVersion("yq", $(Get-YqVersion))
|
||||
$tools.AddToolVersion("zstd", $(Get-ZstdVersion))
|
||||
|
||||
# CLI Tools
|
||||
$cliTools = $installedSoftware.AddHeader("CLI Tools")
|
||||
$cliTools.AddToolVersion("AWS CLI", $(Get-AWSCliVersion))
|
||||
$cliTools.AddToolVersion("AWS CLI Session Manager Plugin", $(Get-AWSCliSessionManagerPluginVersion))
|
||||
$cliTools.AddToolVersion("AWS SAM CLI", $(Get-AWSSAMVersion))
|
||||
$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))
|
||||
|
||||
# PowerShell Tools
|
||||
$powerShellTools = $installedSoftware.AddHeader("PowerShell Tools")
|
||||
$powerShellTools.AddToolVersion("PowerShell", $(Get-PowershellVersion))
|
||||
|
||||
$installedSoftware.AddHeader("Installed apt packages").AddTable($(Get-AptPackages))
|
||||
|
||||
$softwareReport.ToJson() | Out-File -FilePath "${OutputDirectory}/software-report.json" -Encoding UTF8NoBOM
|
||||
$softwareReport.ToMarkdown() | Out-File -FilePath "${OutputDirectory}/software-report.md" -Encoding UTF8NoBOM
|
||||
@@ -0,0 +1,81 @@
|
||||
function Get-BashVersion {
|
||||
$version = bash -c 'echo ${BASH_VERSION}'
|
||||
return $version
|
||||
}
|
||||
|
||||
function Get-DashVersion {
|
||||
$version = dpkg-query -W -f '${Version}' dash
|
||||
return $version
|
||||
}
|
||||
|
||||
function Get-NodeVersion {
|
||||
$nodeVersion = $(node --version).Substring(1)
|
||||
return $nodeVersion
|
||||
}
|
||||
|
||||
function Get-OpensslVersion {
|
||||
$opensslVersion = $(dpkg-query -W -f '${Version}' openssl)
|
||||
return $opensslVersion
|
||||
}
|
||||
|
||||
function Get-PerlVersion {
|
||||
$version = $(perl -e 'print substr($^V,1)')
|
||||
return $version
|
||||
}
|
||||
|
||||
function Get-PythonVersion {
|
||||
$result = Get-CommandResult "python --version"
|
||||
$version = $result.Output | Get-StringPart -Part 1
|
||||
return $version
|
||||
}
|
||||
|
||||
function Get-PowershellVersion {
|
||||
$pwshVersion = $(pwsh --version) | Get-StringPart -Part 1
|
||||
return $pwshVersion
|
||||
}
|
||||
|
||||
function Get-NpmVersion {
|
||||
$npmVersion = npm --version
|
||||
return $npmVersion
|
||||
}
|
||||
|
||||
function Get-PipVersion {
|
||||
$pipVersion = pip --version | Get-StringPart -Part 1
|
||||
return $pipVersion
|
||||
}
|
||||
|
||||
function Get-Pip3Version {
|
||||
$pip3Version = pip3 --version | Get-StringPart -Part 1
|
||||
return $pip3Version
|
||||
}
|
||||
|
||||
function Get-AptPackages {
|
||||
$apt = (Get-ToolsetContent).Apt
|
||||
$output = @()
|
||||
ForEach ($pkg in ($apt.vital_packages + $apt.common_packages + $apt.cmd_packages)) {
|
||||
$version = $(dpkg-query -W -f '${Version}' $pkg)
|
||||
if ($null -eq $version) {
|
||||
$version = $(dpkg-query -W -f '${Version}' "$pkg*")
|
||||
}
|
||||
|
||||
$version = $version -replace '~','\~'
|
||||
|
||||
$output += [PSCustomObject] @{
|
||||
Name = $pkg
|
||||
Version = $version
|
||||
}
|
||||
}
|
||||
return ($output | Sort-Object Name)
|
||||
}
|
||||
|
||||
function Get-PipxVersion {
|
||||
$result = (Get-CommandResult "pipx --version").Output
|
||||
$result -match "(?<version>\d+\.\d+\.\d+\.?\d*)" | Out-Null
|
||||
return $Matches.Version
|
||||
}
|
||||
|
||||
function Get-SystemdVersion {
|
||||
$matchCollection = [regex]::Matches((systemctl --version | head -n 1), "\((.*?)\)")
|
||||
$result = foreach ($match in $matchCollection) {$match.Groups[1].Value}
|
||||
return $result
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
function Get-StringPart {
|
||||
param (
|
||||
[Parameter(ValueFromPipeline)]
|
||||
[string] $ToolOutput,
|
||||
[string] $Delimiter = " ",
|
||||
[int[]] $Part
|
||||
)
|
||||
|
||||
$parts = $ToolOutput.Split($Delimiter, [System.StringSplitOptions]::RemoveEmptyEntries)
|
||||
$selectedParts = $parts[$Part]
|
||||
return [string]::Join($Delimiter, $selectedParts)
|
||||
}
|
||||
|
||||
function Get-PathWithLink {
|
||||
param (
|
||||
[string] $InputPath
|
||||
)
|
||||
|
||||
$link = Get-Item $InputPath | Select-Object -ExpandProperty Target
|
||||
if (-not [string]::IsNullOrEmpty($link)) {
|
||||
return "${InputPath} -> ${link}"
|
||||
}
|
||||
return "${InputPath}"
|
||||
}
|
||||
|
||||
function Get-OSVersionShort {
|
||||
$(Get-OSVersionFull) | Get-StringPart -Delimiter '.' -Part 0,1
|
||||
}
|
||||
|
||||
function Get-OSVersionFull {
|
||||
lsb_release -ds | Get-StringPart -Part 1, 2
|
||||
}
|
||||
|
||||
function Get-KernelVersion {
|
||||
$kernelVersion = uname -r
|
||||
return $kernelVersion
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
function Get-AzCopyVersion {
|
||||
$azcopyVersion = [string]$(azcopy --version) | Get-StringPart -Part 2
|
||||
return "$azcopyVersion - available by ``azcopy`` and ``azcopy10`` aliases"
|
||||
}
|
||||
|
||||
function Get-BicepVersion {
|
||||
(bicep --version | Out-String) -match "bicep cli version (?<version>\d+\.\d+\.\d+)" | Out-Null
|
||||
return $Matches.Version
|
||||
}
|
||||
|
||||
function Get-GitVersion {
|
||||
$gitVersion = git --version | Get-StringPart -Part -1
|
||||
return $gitVersion
|
||||
}
|
||||
|
||||
function Get-GitLFSVersion {
|
||||
$result = Get-CommandResult "git-lfs --version"
|
||||
$gitlfsversion = $result.Output | Get-StringPart -Part 0 | Get-StringPart -Part 1 -Delimiter "/"
|
||||
return $gitlfsversion
|
||||
}
|
||||
|
||||
function Get-GitFTPVersion {
|
||||
$gitftpVersion = git-ftp --version | Get-StringPart -Part 2
|
||||
return $gitftpVersion
|
||||
}
|
||||
|
||||
function Get-GoogleCloudCLIVersion {
|
||||
return (gcloud --version | Select-Object -First 1) | Get-StringPart -Part 3
|
||||
}
|
||||
|
||||
function Get-NvmVersion {
|
||||
$nvmVersion = bash -c "source /etc/skel/.nvm/nvm.sh && nvm --version"
|
||||
return $nvmVersion
|
||||
}
|
||||
|
||||
function Get-JqVersion {
|
||||
$jqVersion = jq --version | Get-StringPart -Part 1 -Delimiter "-"
|
||||
return $jqVersion
|
||||
}
|
||||
|
||||
function Get-AzureCliVersion {
|
||||
$azcliVersion = (az version | ConvertFrom-Json).'azure-cli'
|
||||
return $azcliVersion
|
||||
}
|
||||
|
||||
function Get-AzureDevopsVersion {
|
||||
$azdevopsVersion = (az version | ConvertFrom-Json).extensions.'azure-devops'
|
||||
return $azdevopsVersion
|
||||
}
|
||||
|
||||
function Get-AWSCliVersion {
|
||||
$result = Get-CommandResult "aws --version"
|
||||
$awsVersion = $result.Output | Get-StringPart -Part 0 | Get-StringPart -Part 1 -Delimiter "/"
|
||||
return $awsVersion
|
||||
}
|
||||
|
||||
function Get-AWSCliSessionManagerPluginVersion {
|
||||
$result = (Get-CommandResult "session-manager-plugin --version").Output
|
||||
return $result
|
||||
}
|
||||
|
||||
function Get-AWSSAMVersion {
|
||||
return $(sam --version | Get-StringPart -Part -1)
|
||||
}
|
||||
|
||||
function Get-GitHubCliVersion {
|
||||
$ghVersion = gh --version | Select-String "gh version" | Get-StringPart -Part 2
|
||||
return $ghVersion
|
||||
}
|
||||
|
||||
function Get-ZstdVersion {
|
||||
$zstdVersion = zstd --version | Get-StringPart -Part 1 -Delimiter "v" | Get-StringPart -Part 0 -Delimiter ","
|
||||
return "$zstdVersion"
|
||||
}
|
||||
|
||||
function Get-YqVersion {
|
||||
$yqVersion = $(yq -V) | Get-StringPart -Part 3
|
||||
return $yqVersion.TrimStart("v").Trim()
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
# /opt/entrypoint.sh
|
||||
|
||||
# Load environment variables from file
|
||||
set -a
|
||||
source /etc/environment
|
||||
set +a
|
||||
|
||||
# Execute the actual command
|
||||
exec "$@"
|
||||
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
# delete all .gz and rotated file
|
||||
find /var/log -type f -regex ".*\.gz$" -delete
|
||||
find /var/log -type f -regex ".*\.[0-9]$" -delete
|
||||
|
||||
# wipe log files
|
||||
find /var/log/ -type f -exec cp /dev/null {} \;
|
||||
|
||||
rm -rf /tmp/downloads /tmp/installers
|
||||
|
||||
apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
@@ -0,0 +1,89 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: etc-environment.sh
|
||||
## Desc: Helper functions for source and modify /etc/environment
|
||||
################################################################################
|
||||
|
||||
# NB: sed expression use '%' as a delimiter in order to simplify handling
|
||||
# values containing slashes (i.e. directory path)
|
||||
# The values containing '%' will break the functions
|
||||
|
||||
get_etc_environment_variable() {
|
||||
local variable_name=$1
|
||||
|
||||
# remove `variable_name=` and possible quotes from the line
|
||||
grep "^${variable_name}=" /etc/environment | sed -E "s%^${variable_name}=\"?([^\"]+)\"?.*$%\1%"
|
||||
}
|
||||
|
||||
add_etc_environment_variable() {
|
||||
local variable_name=$1
|
||||
local variable_value=$2
|
||||
|
||||
echo "${variable_name}=${variable_value}" | sudo tee -a /etc/environment
|
||||
}
|
||||
|
||||
replace_etc_environment_variable() {
|
||||
local variable_name=$1
|
||||
local variable_value=$2
|
||||
|
||||
# modify /etc/environment in place by replacing a string that begins with variable_name
|
||||
sudo sed -i -e "s%^${variable_name}=.*$%${variable_name}=${variable_value}%" /etc/environment
|
||||
}
|
||||
|
||||
set_etc_environment_variable() {
|
||||
local variable_name=$1
|
||||
local variable_value=$2
|
||||
|
||||
if grep "^${variable_name}=" /etc/environment > /dev/null; then
|
||||
replace_etc_environment_variable $variable_name $variable_value
|
||||
else
|
||||
add_etc_environment_variable $variable_name $variable_value
|
||||
fi
|
||||
}
|
||||
|
||||
prepend_etc_environment_variable() {
|
||||
local variable_name=$1
|
||||
local element=$2
|
||||
|
||||
# TODO: handle the case if the variable does not exist
|
||||
existing_value=$(get_etc_environment_variable "${variable_name}")
|
||||
set_etc_environment_variable "${variable_name}" "${element}:${existing_value}"
|
||||
}
|
||||
|
||||
append_etc_environment_variable() {
|
||||
local variable_name=$1
|
||||
local element=$2
|
||||
|
||||
# TODO: handle the case if the variable does not exist
|
||||
existing_value=$(get_etc_environment_variable "${variable_name}")
|
||||
set_etc_environment_variable "${variable_name}" "${existing_value}:${element}"
|
||||
}
|
||||
|
||||
prepend_etc_environment_path() {
|
||||
local element=$1
|
||||
|
||||
prepend_etc_environment_variable PATH "${element}"
|
||||
}
|
||||
|
||||
append_etc_environment_path() {
|
||||
local element=$1
|
||||
|
||||
append_etc_environment_variable PATH "${element}"
|
||||
}
|
||||
|
||||
# Process /etc/environment as if it were shell script with `export VAR=...` expressions
|
||||
# The PATH variable is handled specially in order to do not override the existing PATH
|
||||
# variable. The value of PATH variable read from /etc/environment is added to the end
|
||||
# of value of the exiting PATH variable exactly as it would happen with real PAM app read
|
||||
# /etc/environment
|
||||
#
|
||||
# TODO: there might be the others variables to be processed in the same way as "PATH" variable
|
||||
# ie MANPATH, INFOPATH, LD_*, etc. In the current implementation the values from /etc/environment
|
||||
# replace the values of the current environment
|
||||
reload_etc_environment() {
|
||||
# add `export ` to every variable of /etc/environment except PATH and eval the result shell script
|
||||
eval $(grep -v '^PATH=' /etc/environment | sed -e 's%^%export %')
|
||||
# handle PATH specially
|
||||
etc_path=$(get_etc_environment_variable PATH)
|
||||
export PATH="$PATH:$etc_path"
|
||||
}
|
||||
@@ -0,0 +1,243 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install.sh
|
||||
## Desc: Helper functions for installing tools
|
||||
################################################################################
|
||||
|
||||
download_with_retry() {
|
||||
local url=$1
|
||||
local download_path=$2
|
||||
|
||||
if [ -z "$download_path" ]; then
|
||||
mkdir -p /tmp/downloads
|
||||
download_path="/tmp/downloads/$(basename "$url")"
|
||||
fi
|
||||
|
||||
echo "Downloading package from $url to $download_path..." >&2
|
||||
|
||||
interval=30
|
||||
download_start_time=$(date +%s)
|
||||
|
||||
for ((retries=20; retries>0; retries--)); do
|
||||
attempt_start_time=$(date +%s)
|
||||
if http_code=$(curl -4sSLo "$download_path" "$url" -w '%{http_code}'); then
|
||||
attempt_seconds=$(($(date +%s) - attempt_start_time))
|
||||
if [ "$http_code" -eq 200 ]; then
|
||||
echo "Package downloaded in $attempt_seconds seconds" >&2
|
||||
break
|
||||
else
|
||||
echo "Received HTTP status code $http_code after $attempt_seconds seconds" >&2
|
||||
fi
|
||||
else
|
||||
attempt_seconds=$(($(date +%s) - attempt_start_time))
|
||||
echo "Package download failed in $attempt_seconds seconds" >&2
|
||||
fi
|
||||
|
||||
if [ "$retries" -le 1 ]; then
|
||||
total_seconds=$(($(date +%s) - download_start_time))
|
||||
echo "Package download failed after $total_seconds seconds" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Waiting $interval seconds before retrying (retries left: $retries)..." >&2
|
||||
sleep $interval
|
||||
done
|
||||
|
||||
echo "$download_path"
|
||||
}
|
||||
|
||||
get_github_releases_by_version() {
|
||||
local repo=$1
|
||||
local version=${2:-".+"}
|
||||
local allow_pre_release=${3:-false}
|
||||
local with_assets_only=${4:-false}
|
||||
|
||||
page_size="100"
|
||||
|
||||
json=$(curl -fsSL "https://api.github.com/repos/${repo}/releases?per_page=${page_size}")
|
||||
|
||||
if [[ -z "$json" ]]; then
|
||||
echo "Failed to get releases" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $with_assets_only == "true" ]]; then
|
||||
json=$(echo $json | jq -r '.[] | select(.assets | length > 0)')
|
||||
else
|
||||
json=$(echo $json | jq -r '.[]')
|
||||
fi
|
||||
|
||||
if [[ $allow_pre_release == "true" ]]; then
|
||||
json=$(echo $json | jq -r '.')
|
||||
else
|
||||
json=$(echo $json | jq -r '. | select(.prerelease==false)')
|
||||
fi
|
||||
|
||||
# Filter out rc/beta/etc releases, convert to numeric version and sort
|
||||
json=$(echo $json | jq '. | select(.tag_name | test(".*-[a-z]|beta") | not)' | jq '.tag_name |= gsub("[^\\d.]"; "")' | jq -s 'sort_by(.tag_name | split(".") | map(tonumber))')
|
||||
|
||||
# Select releases matching version
|
||||
if [[ $version == "latest" ]]; then
|
||||
json_filtered=$(echo $json | jq .[-1])
|
||||
elif [[ $version == *"+"* ]] || [[ $version == *"*"* ]]; then
|
||||
json_filtered=$(echo $json | jq --arg version $version '.[] | select(.tag_name | test($version))')
|
||||
else
|
||||
json_filtered=$(echo $json | jq --arg version $version '.[] | select(.tag_name | contains($version))')
|
||||
fi
|
||||
|
||||
if [[ -z "$json_filtered" ]]; then
|
||||
echo "Failed to get releases from ${repo} matching version ${version}" >&2
|
||||
echo "Available versions: $(echo "$json" | jq -r '.tag_name')" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo $json_filtered
|
||||
}
|
||||
|
||||
resolve_github_release_asset_url() {
|
||||
local repo=$1
|
||||
local url_filter=$2
|
||||
local version=${3:-".+"}
|
||||
local allow_pre_release=${4:-false}
|
||||
local allow_multiple_matches=${5:-false}
|
||||
|
||||
matching_releases=$(get_github_releases_by_version "${repo}" "${version}" "${allow_pre_release}" "true")
|
||||
matched_url=$(echo $matching_releases | jq -r ".assets[].browser_download_url | select(${url_filter})")
|
||||
|
||||
if [[ -z "$matched_url" ]]; then
|
||||
echo "Found no download urls matching pattern: ${url_filter}" >&2
|
||||
echo "Available download urls: $(echo "$matching_releases" | jq -r '.assets[].browser_download_url')" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$(echo "$matched_url" | wc -l)" -gt 1 ]]; then
|
||||
if [[ $allow_multiple_matches == "true" ]]; then
|
||||
matched_url=$(echo "$matched_url" | tail -n 1)
|
||||
else
|
||||
echo "Multiple matches found for ${version} version and ${url_filter} URL filter. Please make filters more specific" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo $matched_url
|
||||
}
|
||||
|
||||
get_checksum_from_github_release() {
|
||||
local repo=$1
|
||||
local file_name=$2
|
||||
local version=${3:-".+"}
|
||||
local hash_type=$4
|
||||
local allow_pre_release=${5:-false}
|
||||
|
||||
if [[ -z "$file_name" ]]; then
|
||||
echo "File name is not specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$hash_type" == "SHA256" ]]; then
|
||||
hash_pattern="[A-Fa-f0-9]{64}"
|
||||
elif [[ "$hash_type" == "SHA512" ]]; then
|
||||
hash_pattern="[A-Fa-f0-9]{128}"
|
||||
else
|
||||
echo "Unknown hash type: ${hash_type}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
matching_releases=$(get_github_releases_by_version "${repo}" "${version}" "${allow_pre_release}" "true")
|
||||
matched_line=$(printf "$(echo $matching_releases | jq '.body')\n" | grep "$file_name")
|
||||
|
||||
if [[ -z "$matched_line" ]]; then
|
||||
echo "File name ${file_name} not found in release body" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$(echo "$matched_line" | wc -l)" -gt 1 ]]; then
|
||||
echo "Multiple matches found for ${file_name} in release body: ${matched_line}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
hash=$(echo $matched_line | grep -oP "$hash_pattern")
|
||||
|
||||
if [[ -z "$hash" ]]; then
|
||||
echo "Found ${file_name} in body of release, but failed to get hash from it: ${matched_line}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "$hash"
|
||||
}
|
||||
|
||||
get_checksum_from_url() {
|
||||
local url=$1
|
||||
local file_name=$2
|
||||
local hash_type=$3
|
||||
local use_custom_search_pattern=${4:-false}
|
||||
local delimiter=${5:-' '}
|
||||
local word_number=${6:-1}
|
||||
|
||||
if [[ "$hash_type" == "SHA256" ]]; then
|
||||
hash_pattern="[A-Fa-f0-9]{64}"
|
||||
elif [[ "$hash_type" == "SHA512" ]]; then
|
||||
hash_pattern="[A-Fa-f0-9]{128}"
|
||||
else
|
||||
echo "Unknown hash type: ${hash_type}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
checksums_file_path=$(download_with_retry "$url")
|
||||
checksums=$(cat "$checksums_file_path")
|
||||
rm "$checksums_file_path"
|
||||
|
||||
matched_line=$(printf "$checksums\n" | grep "$file_name")
|
||||
|
||||
if [[ "$(echo "$matched_line" | wc -l)" -gt 1 ]]; then
|
||||
echo "Found multiple lines matching file name ${file_name} in checksum file." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "$matched_line" ]]; then
|
||||
echo "File name ${file_name} not found in checksum file." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $use_custom_search_pattern == "true" ]]; then
|
||||
hash=$(echo "$matched_line" | sed 's/ */ /g' | cut -d "$delimiter" -f "$word_number" | tr -d -c '[:alnum:]')
|
||||
else
|
||||
hash=$(echo $matched_line | grep -oP "$hash_pattern")
|
||||
fi
|
||||
|
||||
if [[ -z "$hash" ]]; then
|
||||
echo "Found ${file_name} in checksum file, but failed to get hash from it: ${matched_line}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "$hash"
|
||||
}
|
||||
|
||||
use_checksum_comparison() {
|
||||
local file_path=$1
|
||||
local checksum=$2
|
||||
local sha_type=${3:-"256"}
|
||||
|
||||
echo "Performing checksum verification"
|
||||
|
||||
if [[ ! -f "$file_path" ]]; then
|
||||
echo "File not found: $file_path"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local_file_hash=$(shasum --algorithm "$sha_type" "$file_path" | awk '{print $1}')
|
||||
|
||||
if [[ "$local_file_hash" != "$checksum" ]]; then
|
||||
echo "Checksum verification failed. Expected hash: $checksum; Actual hash: $local_file_hash."
|
||||
exit 1
|
||||
else
|
||||
echo "Checksum verification passed. Expected hash: $checksum; Actual hash: $local_file_hash."
|
||||
fi
|
||||
}
|
||||
|
||||
get_toolset_value() {
|
||||
local toolset_path="${INSTALLER_SCRIPT_FOLDER}/toolset.json"
|
||||
local query=$1
|
||||
|
||||
echo "$(jq -r "$query" $toolset_path)"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: os.sh
|
||||
## Desc: Helper functions for OS releases
|
||||
################################################################################
|
||||
|
||||
is_ubuntu22() {
|
||||
lsb_release -rs | grep -q '22.04'
|
||||
}
|
||||
|
||||
is_ubuntu24() {
|
||||
lsb_release -rs | grep -q '24.04'
|
||||
}
|
||||
Executable
+96
@@ -0,0 +1,96 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
# This script builds and runs various tests on the ubuntu-slim Docker image
|
||||
# to ensure it contains the expected software and configurations.
|
||||
# The build and test workflows for docker images expect this script to be present.
|
||||
#
|
||||
# Usage: test.sh [IMAGE_NAME]
|
||||
# If IMAGE_NAME is not provided, defaults to ubuntu-slim:test
|
||||
|
||||
show_help() {
|
||||
echo "Usage: $0 [IMAGE_NAME]"
|
||||
echo ""
|
||||
echo "Test a Docker image to ensure it contains the expected software and configurations."
|
||||
echo ""
|
||||
echo "Arguments:"
|
||||
echo " IMAGE_NAME Docker image name to test (default: ubuntu-slim:test)"
|
||||
echo ""
|
||||
echo "Examples:"
|
||||
echo " $0 # Test ubuntu-slim:test (builds image first)"
|
||||
echo " $0 my-registry/ubuntu:latest # Test existing image"
|
||||
echo " $0 ubuntu-slim:v1.2.3 # Test tagged image"
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo " -h, --help Show this help message"
|
||||
}
|
||||
|
||||
# Handle help flags
|
||||
if [[ "$1" == "-h" || "$1" == "--help" ]]; then
|
||||
show_help
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Set the image name from parameter or use default
|
||||
IMAGE_NAME="${1:-ubuntu-slim:test}"
|
||||
|
||||
echo "Testing image: $IMAGE_NAME"
|
||||
|
||||
run_test() {
|
||||
local desc="$1"
|
||||
shift
|
||||
if output=$(docker run --rm "$IMAGE_NAME" "$@" 2>&1); then
|
||||
echo "PASS: $desc"
|
||||
echo "$output" | sed 's/^/ /'
|
||||
else
|
||||
echo "FAIL: $desc"
|
||||
echo "$output" | sed 's/^/ /'
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Build the image only if using the default name (for backward compatibility)
|
||||
if [[ "$IMAGE_NAME" == "ubuntu-slim:test" ]]; then
|
||||
echo "Building image: $IMAGE_NAME"
|
||||
if ! docker build --no-cache --debug --progress plain -t "$IMAGE_NAME" .; then
|
||||
echo "Error: Docker build failed"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
# Check if the image exists
|
||||
if ! docker image inspect "$IMAGE_NAME" >/dev/null 2>&1; then
|
||||
echo "Error: Image '$IMAGE_NAME' does not exist. Please build it first or provide a valid image name."
|
||||
echo "Run '$0 --help' for usage information."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Running tests on image: $IMAGE_NAME"
|
||||
|
||||
docker history --no-trunc "$IMAGE_NAME"
|
||||
docker inspect -f "{{ .Size }}" "$IMAGE_NAME" | numfmt --to=iec | sed 's/^/Image size: /'
|
||||
|
||||
# Ensure key software is installed and runnable
|
||||
run_test "GitHub CLI is installed" gh --version
|
||||
run_test "Azure CLI is installed" az version
|
||||
run_test "AWS CLI is installed" aws --version
|
||||
run_test "Session Manager plugin is installed" session-manager-plugin --version
|
||||
run_test "AWS SAM CLI is installed" sam --version
|
||||
run_test "jq is installed" jq --version
|
||||
run_test "git is installed" git --version
|
||||
run_test "node is installed" node --version
|
||||
run_test "npm is installed" npm --version
|
||||
run_test "python3 is installed" python3 --version
|
||||
run_test "python is aliased" python --version
|
||||
run_test "pipx is installed" pipx --version
|
||||
run_test "curl is installed" curl --version
|
||||
run_test "wget is installed" wget --version
|
||||
run_test "yq is installed" yq --version
|
||||
run_test "parallel is installed" parallel --version
|
||||
run_test "bc is installed" bc --version
|
||||
run_test "zstd is installed" zstd --version
|
||||
run_test "google cloud SDK is installed" gcloud --version
|
||||
run_test "git lfs is installed" git lfs version
|
||||
run_test "powershell is installed" pwsh --version
|
||||
|
||||
# Quick check: ensure the imagedata JSON file was created during image build
|
||||
run_test "imagedata JSON file exists" test -f /imagegeneration/imagedata.json
|
||||
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"toolcache": [
|
||||
{
|
||||
"name": "node",
|
||||
"url" : "https://raw.githubusercontent.com/actions/node-versions/main/versions-manifest.json",
|
||||
"platform" : "linux",
|
||||
"arch": "x64",
|
||||
"versions": [
|
||||
"22.*",
|
||||
"24.*"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "CodeQL",
|
||||
"platform" : "linux",
|
||||
"arch": "x64",
|
||||
"versions": [
|
||||
"*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"apt": {
|
||||
"vital_packages": [
|
||||
"apt-utils",
|
||||
"bzip2",
|
||||
"ca-certificates",
|
||||
"curl",
|
||||
"g++",
|
||||
"gcc",
|
||||
"make",
|
||||
"jq",
|
||||
"tar",
|
||||
"unzip",
|
||||
"wget"
|
||||
],
|
||||
"common_packages": [
|
||||
"autoconf",
|
||||
"automake",
|
||||
"bc",
|
||||
"dbus",
|
||||
"dnsutils",
|
||||
"dpkg",
|
||||
"dpkg-dev",
|
||||
"fakeroot",
|
||||
"fonts-noto-color-emoji",
|
||||
"gnupg2",
|
||||
"iproute2",
|
||||
"iputils-ping",
|
||||
"libyaml-dev",
|
||||
"libtool",
|
||||
"libssl-dev",
|
||||
"libsqlite3-dev",
|
||||
"locales",
|
||||
"lzma",
|
||||
"mercurial",
|
||||
"openssh-client",
|
||||
"p7zip-rar",
|
||||
"pkg-config",
|
||||
"python-is-python3",
|
||||
"rpm",
|
||||
"texinfo",
|
||||
"tk",
|
||||
"tree",
|
||||
"tzdata",
|
||||
"upx",
|
||||
"xvfb",
|
||||
"xz-utils",
|
||||
"zsync"
|
||||
],
|
||||
"cmd_packages": [
|
||||
"acl",
|
||||
"binutils",
|
||||
"libnss3-tools",
|
||||
"coreutils",
|
||||
"file",
|
||||
"findutils",
|
||||
"flex",
|
||||
"ftp",
|
||||
"haveged",
|
||||
"lz4",
|
||||
"netcat-openbsd",
|
||||
"net-tools",
|
||||
"p7zip-full",
|
||||
"parallel",
|
||||
"patchelf",
|
||||
"pigz",
|
||||
"pollinate",
|
||||
"rsync",
|
||||
"shellcheck",
|
||||
"sqlite3",
|
||||
"ssh",
|
||||
"sshpass",
|
||||
"sudo",
|
||||
"systemd-coredump",
|
||||
"telnet",
|
||||
"time",
|
||||
"zip"
|
||||
]
|
||||
},
|
||||
"brew": [
|
||||
],
|
||||
"node": {
|
||||
"default": "24"
|
||||
},
|
||||
"node_modules": [ ],
|
||||
"pwsh": {
|
||||
"version": "7.5"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
# Ubuntu-Slim
|
||||
- OS Version: 24.04.3 LTS
|
||||
- Kernel Version: 6.14.0-36-generic
|
||||
- Image Version: 1.0.0
|
||||
- Systemd version: 255.4-1ubuntu8.11
|
||||
|
||||
## Installed Software
|
||||
|
||||
### Language and Runtime
|
||||
- Bash 5.2.21(1)-release
|
||||
- Dash 0.5.12-6ubuntu5
|
||||
- Node.js 24.12.0
|
||||
- Perl 5.38.2
|
||||
- Python 3.12.3
|
||||
|
||||
### Package Management
|
||||
- Npm 11.6.2
|
||||
- Pip 24.0
|
||||
- Pip3 24.0
|
||||
- Pipx 1.8.0
|
||||
|
||||
### Tools
|
||||
- AzCopy 10.31.0 - available by `azcopy` and `azcopy10` aliases
|
||||
- Bicep 0.39.26
|
||||
- Git 2.52.0
|
||||
- Git LFS 3.7.1
|
||||
- Git-ftp 1.6.0
|
||||
- jq 1.7
|
||||
- nvm 0.40.3
|
||||
- OpenSSL 3.0.13-0ubuntu3.6
|
||||
- yq 4.49.2
|
||||
- zstd 1.5.7
|
||||
|
||||
### CLI Tools
|
||||
- AWS CLI 2.32.14
|
||||
- AWS CLI Session Manager Plugin 1.2.764.0
|
||||
- AWS SAM CLI 1.150.1
|
||||
- Azure CLI 2.81.0
|
||||
- Azure CLI (azure-devops) 1.0.2
|
||||
- GitHub CLI 2.83.2
|
||||
- Google Cloud CLI 549.0.1
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.5.4
|
||||
|
||||
### Installed apt packages
|
||||
| Name | Version |
|
||||
| ---------------------- | ---------------------------- |
|
||||
| acl | 2.3.2-1build1.1 |
|
||||
| apt-utils | 2.8.3 |
|
||||
| autoconf | 2.71-3 |
|
||||
| automake | 1:1.16.5-1.3ubuntu1 |
|
||||
| bc | 1.07.1-3ubuntu4 |
|
||||
| binutils | 2.42-4ubuntu2.8 |
|
||||
| bzip2 | 1.0.8-5.1build0.1 |
|
||||
| ca-certificates | 20240203 |
|
||||
| coreutils | 9.4-3ubuntu6.1 |
|
||||
| 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 |
|
||||
| fakeroot | 1.33-1 |
|
||||
| file | 1:5.45-3build1 |
|
||||
| findutils | 4.9.0-5build1 |
|
||||
| flex | 2.6.4-8.2build1 |
|
||||
| fonts-noto-color-emoji | 2.047-0ubuntu0.24.04.1 |
|
||||
| ftp | 20230507-2build3 |
|
||||
| g++ | 4:13.2.0-7ubuntu1 |
|
||||
| gcc | 4:13.2.0-7ubuntu1 |
|
||||
| gnupg2 | 2.4.4-2ubuntu17.3 |
|
||||
| haveged | 1.9.14-1ubuntu2 |
|
||||
| iproute2 | 6.1.0-1ubuntu6.2 |
|
||||
| iputils-ping | 3:20240117-1ubuntu0.1 |
|
||||
| jq | 1.7.1-3ubuntu0.24.04.1 |
|
||||
| libnss3-tools | 2:3.98-1build1 |
|
||||
| libsqlite3-dev | 3.45.1-1ubuntu2.5 |
|
||||
| libssl-dev | 3.0.13-0ubuntu3.6 |
|
||||
| libtool | 2.4.7-7build1 |
|
||||
| libyaml-dev | 0.2.5-1build1 |
|
||||
| locales | 2.39-0ubuntu8.6 |
|
||||
| lz4 | 1.9.4-1build1.1 |
|
||||
| lzma | 9.22-2.2 |
|
||||
| make | 4.3-4.1build2 |
|
||||
| mercurial | 6.7.2-1ubuntu2.2 |
|
||||
| net-tools | 2.10-0.1ubuntu4.4 |
|
||||
| netcat-openbsd | 1.226-1ubuntu2 |
|
||||
| openssh-client | 1:9.6p1-3ubuntu13.14 |
|
||||
| p7zip-full | 16.02+transitional.1 |
|
||||
| p7zip-rar | 16.02+transitional.1 |
|
||||
| parallel | 20231122+ds-1 |
|
||||
| patchelf | 0.18.0-1.1build1 |
|
||||
| pigz | 2.8-1 |
|
||||
| pkg-config | 1.8.1-2build1 |
|
||||
| pollinate | 4.33-3.1ubuntu1.1 |
|
||||
| python-is-python3 | 3.11.4-1 |
|
||||
| rpm | 4.18.2+dfsg-2.1build2 |
|
||||
| rsync | 3.2.7-1ubuntu1.2 |
|
||||
| shellcheck | 0.9.0-1 |
|
||||
| sqlite3 | 3.45.1-1ubuntu2.5 |
|
||||
| ssh | 1:9.6p1-3ubuntu13.14 |
|
||||
| sshpass | 1.09-1 |
|
||||
| sudo | 1.9.15p5-3ubuntu5.24.04.1 |
|
||||
| systemd-coredump | 255.4-1ubuntu8.11 |
|
||||
| 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.24.04.2 |
|
||||
| tzdata | 2025b-0ubuntu0.24.04.1 |
|
||||
| unzip | 6.0-28ubuntu4.1 |
|
||||
| upx | 4.2.2-3 |
|
||||
| wget | 1.21.4-1ubuntu4.1 |
|
||||
| xvfb | 2:21.1.12-1ubuntu1.5 |
|
||||
| xz-utils | 5.6.1+really5.4.5-1ubuntu0.2 |
|
||||
| zip | 3.0-13ubuntu0.2 |
|
||||
| zsync | 0.6.2-5build1 |
|
||||
@@ -1,11 +1,7 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[Ubuntu & Windows] Four tools scheduled for deprecation on November 3, 2025](https://github.com/actions/runner-images/issues/12898) |
|
||||
***
|
||||
# Ubuntu 22.04
|
||||
- OS Version: 22.04.5 LTS
|
||||
- Kernel Version: 6.8.0-1036-azure
|
||||
- Image Version: 20251021.115.1
|
||||
- Kernel Version: 6.8.0-1044-azure
|
||||
- Image Version: 20251216.185.1
|
||||
- Systemd version: 249.11-0ubuntu3.17
|
||||
|
||||
## Installed Software
|
||||
@@ -18,28 +14,28 @@
|
||||
- Dash 0.5.11+git20210903+057cd650a4ed-3build1
|
||||
- GNU C++: 10.5.0, 11.4.0, 12.3.0
|
||||
- GNU Fortran: 10.5.0, 11.4.0, 12.3.0
|
||||
- Julia 1.12.1
|
||||
- Kotlin 2.2.20-release-333
|
||||
- Julia 1.12.3
|
||||
- Kotlin 2.2.21-release-469
|
||||
- Mono 6.12.0.200
|
||||
- MSBuild 16.10.1.31701 (Mono 6.12.0.200)
|
||||
- Node.js 20.19.5
|
||||
- Node.js 20.19.6
|
||||
- Perl 5.34.0
|
||||
- Python 3.10.12
|
||||
- Ruby 3.0.2p107
|
||||
- Swift 6.2
|
||||
- Swift 6.2.3
|
||||
|
||||
### Package Management
|
||||
- cpan 1.64
|
||||
- Helm 3.19.0
|
||||
- Homebrew 4.6.18
|
||||
- Miniconda 25.7.0
|
||||
- Helm 3.19.4
|
||||
- Homebrew 5.0.6
|
||||
- Miniconda 25.9.1
|
||||
- Npm 10.8.2
|
||||
- NuGet 6.6.1.2
|
||||
- Pip 22.0.2
|
||||
- Pip3 22.0.2
|
||||
- Pipx 1.8.0
|
||||
- RubyGems 3.3.5
|
||||
- Vcpkg (build from commit 6353ece09f)
|
||||
- Vcpkg (build from commit 2b6a882f61)
|
||||
- Yarn 1.22.22
|
||||
|
||||
#### Environment variables
|
||||
@@ -58,36 +54,36 @@ to accomplish this.
|
||||
|
||||
### Project Management
|
||||
- Ant 1.10.12
|
||||
- Gradle 9.1.0
|
||||
- Lerna 9.0.0
|
||||
- Gradle 9.2.1
|
||||
- Lerna 9.0.3
|
||||
- Maven 3.9.11
|
||||
- Sbt 1.11.7
|
||||
|
||||
### Tools
|
||||
- Ansible 2.17.14
|
||||
- apt-fast 1.10.0
|
||||
- AzCopy 10.30.1 - available by `azcopy` and `azcopy10` aliases
|
||||
- Bazel 8.4.2
|
||||
- AzCopy 10.31.0 - available by `azcopy` and `azcopy10` aliases
|
||||
- Bazel 8.5.0
|
||||
- Bazelisk 1.26.0
|
||||
- Bicep 0.38.33
|
||||
- Bicep 0.39.26
|
||||
- Buildah 1.23.1
|
||||
- CMake 3.31.6
|
||||
- CodeQL Action Bundle 2.23.3
|
||||
- Docker Amazon ECR Credential Helper 0.10.1
|
||||
- CodeQL Action Bundle 2.23.8
|
||||
- Docker Amazon ECR Credential Helper 0.11.0
|
||||
- Docker Compose v2 2.38.2
|
||||
- Docker-Buildx 0.29.1
|
||||
- Docker-Buildx 0.30.1
|
||||
- Docker Client 28.0.4
|
||||
- Docker Server 28.0.4
|
||||
- Fastlane 2.228.0
|
||||
- Git 2.51.1
|
||||
- Fastlane 2.229.1
|
||||
- Git 2.52.0
|
||||
- Git LFS 3.7.1
|
||||
- Git-ftp 1.6.0
|
||||
- Haveged 1.9.14
|
||||
- Heroku 10.13.2
|
||||
- Heroku 10.16.0
|
||||
- jq 1.6
|
||||
- Kind 0.30.0
|
||||
- Kubectl 1.34.1
|
||||
- Kustomize 5.7.1
|
||||
- Kubectl 1.34.3
|
||||
- Kustomize 5.8.0
|
||||
- Leiningen 2.12.0
|
||||
- MediaInfo 21.09
|
||||
- Mercurial 6.1.1
|
||||
@@ -96,47 +92,47 @@ to accomplish this.
|
||||
- Newman 6.2.1
|
||||
- nvm 0.40.3
|
||||
- OpenSSL 3.0.2-0ubuntu1.20
|
||||
- Packer 1.14.2
|
||||
- Parcel 2.16.0
|
||||
- Packer 1.14.3
|
||||
- Parcel 2.16.3
|
||||
- Podman 3.4.4
|
||||
- Pulumi 3.203.0
|
||||
- R 4.5.1
|
||||
- Pulumi 3.212.0
|
||||
- R 4.5.2
|
||||
- Skopeo 1.4.1
|
||||
- Sphinx Open Source Search Server 2.2.11
|
||||
- SVN 1.14.1
|
||||
- Terraform 1.13.4
|
||||
- Terraform 1.14.2
|
||||
- yamllint 1.37.1
|
||||
- yq 4.48.1
|
||||
- yq 4.50.1
|
||||
- zstd 1.5.7
|
||||
- Ninja 1.13.1
|
||||
- Ninja 1.13.2
|
||||
|
||||
### CLI Tools
|
||||
- Alibaba Cloud CLI 3.0.307
|
||||
- AWS CLI 2.31.19
|
||||
- AWS CLI Session Manager Plugin 1.2.707.0
|
||||
- AWS SAM CLI 1.145.1
|
||||
- Azure CLI 2.78.0
|
||||
- Alibaba Cloud CLI 3.2.2
|
||||
- AWS CLI 2.32.17
|
||||
- AWS CLI Session Manager Plugin 1.2.764.0
|
||||
- AWS SAM CLI 1.150.1
|
||||
- Azure CLI 2.81.0
|
||||
- Azure CLI (azure-devops) 1.0.2
|
||||
- GitHub CLI 2.82.0
|
||||
- Google Cloud CLI 544.0.0
|
||||
- Netlify CLI 23.9.2
|
||||
- OpenShift CLI 4.20.0
|
||||
- GitHub CLI 2.83.2
|
||||
- Google Cloud CLI 549.0.1
|
||||
- Netlify CLI 23.12.3
|
||||
- OpenShift CLI 4.20.6
|
||||
- ORAS CLI 1.3.0
|
||||
- Vercel CLI 48.5.0
|
||||
- Vercel CLI 50.1.0
|
||||
|
||||
### Java
|
||||
| Version | Environment Variable |
|
||||
| ------------------- | -------------------- |
|
||||
| 8.0.462+8 | JAVA_HOME_8_X64 |
|
||||
| 11.0.28+6 (default) | JAVA_HOME_11_X64 |
|
||||
| 17.0.16+8 | JAVA_HOME_17_X64 |
|
||||
| 21.0.8+9 | JAVA_HOME_21_X64 |
|
||||
| 25.0.0+36 | JAVA_HOME_25_X64 |
|
||||
| 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 |
|
||||
|
||||
### PHP Tools
|
||||
- PHP: 8.1.2
|
||||
- Composer 2.8.12
|
||||
- PHPUnit 8.5.48
|
||||
- Composer 2.9.2
|
||||
- PHPUnit 8.5.50
|
||||
```
|
||||
Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled.
|
||||
```
|
||||
@@ -148,27 +144,27 @@ Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled.
|
||||
- Stack 3.7.1
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.90.0
|
||||
- Rust 1.90.0
|
||||
- Rustdoc 1.90.0
|
||||
- Cargo 1.92.0
|
||||
- Rust 1.92.0
|
||||
- Rustdoc 1.92.0
|
||||
- Rustup 1.28.2
|
||||
|
||||
#### Packages
|
||||
- Bindgen 0.72.1
|
||||
- Cargo audit 0.21.2
|
||||
- Cargo clippy 0.1.90
|
||||
- Cargo audit 0.22.0
|
||||
- Cargo clippy 0.1.92
|
||||
- Cargo outdated 0.17.0
|
||||
- Cbindgen 0.29.0
|
||||
- Cbindgen 0.29.2
|
||||
- Rustfmt 1.8.0
|
||||
|
||||
### Browsers and Drivers
|
||||
- Google Chrome 141.0.7390.122
|
||||
- ChromeDriver 141.0.7390.122
|
||||
- Chromium 141.0.7390.0
|
||||
- Microsoft Edge 141.0.3537.92
|
||||
- Microsoft Edge WebDriver 141.0.3537.92
|
||||
- Selenium server 4.37.0
|
||||
- Mozilla Firefox 144.0
|
||||
- Google Chrome 143.0.7499.109
|
||||
- ChromeDriver 143.0.7499.42
|
||||
- Chromium 143.0.7499.0
|
||||
- Microsoft Edge 143.0.3650.80
|
||||
- Microsoft Edge WebDriver 143.0.3650.80
|
||||
- Selenium server 4.39.0
|
||||
- Mozilla Firefox 146.0
|
||||
- Geckodriver 0.36.0
|
||||
|
||||
#### Environment variables
|
||||
@@ -180,14 +176,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.122, 8.0.206, 8.0.319, 8.0.416, 9.0.112, 9.0.205, 9.0.308, 10.0.101
|
||||
- nbgv 3.9.50+6feeb89450
|
||||
|
||||
### Databases
|
||||
- sqlite3 3.37.2
|
||||
|
||||
#### PostgreSQL
|
||||
- PostgreSQL 14.19
|
||||
- PostgreSQL 14.20
|
||||
```
|
||||
User: postgres
|
||||
PostgreSQL service is disabled by default.
|
||||
@@ -195,7 +191,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.44-0ubuntu0.22.04.2
|
||||
```
|
||||
User: root
|
||||
Password: root
|
||||
@@ -212,22 +208,21 @@ Use the following command as a part of your job to start the service: 'sudo syst
|
||||
#### Go
|
||||
- 1.22.12
|
||||
- 1.23.12
|
||||
- 1.24.9
|
||||
- 1.25.3
|
||||
- 1.24.11
|
||||
- 1.25.5
|
||||
|
||||
#### Node.js
|
||||
- 18.20.8
|
||||
- 20.19.5
|
||||
- 22.21.0
|
||||
- 24.10.0
|
||||
- 20.19.6
|
||||
- 22.21.1
|
||||
- 24.12.0
|
||||
|
||||
#### Python
|
||||
- 3.9.24
|
||||
- 3.9.25
|
||||
- 3.10.19
|
||||
- 3.11.14
|
||||
- 3.12.12
|
||||
- 3.13.9
|
||||
- 3.14.0
|
||||
- 3.13.11
|
||||
- 3.14.2
|
||||
|
||||
#### PyPy
|
||||
- 3.7.13 [PyPy 7.3.9]
|
||||
@@ -237,9 +232,8 @@ Use the following command as a part of your job to start the service: 'sudo syst
|
||||
- 3.11.13 [PyPy 7.3.20]
|
||||
|
||||
#### Ruby
|
||||
- 3.1.7
|
||||
- 3.2.9
|
||||
- 3.3.9
|
||||
- 3.3.10
|
||||
- 3.4.7
|
||||
|
||||
### PowerShell Tools
|
||||
@@ -248,7 +242,7 @@ Use the following command as a part of your job to start the service: 'sudo syst
|
||||
#### PowerShell Modules
|
||||
- Az: 12.5.0
|
||||
- MarkdownPS: 1.10
|
||||
- Microsoft.Graph: 2.32.0
|
||||
- Microsoft.Graph: 2.33.0
|
||||
- Pester: 5.7.1
|
||||
- PSScriptAnalyzer: 1.24.0
|
||||
|
||||
@@ -289,16 +283,16 @@ Use the following command as a part of your job to start the service: 'sudo syst
|
||||
| alpine:3.18 | sha256:de0eb0b3f2a47ba1eb89389859a9bd88b28e82f5826b6969ad604979713c2d4f | 2025-02-14 |
|
||||
| alpine:3.19 | sha256:6baf43584bcb78f2e5847d1de515f23499913ac9f12bdf834811a3145eb11ca1 | 2025-10-08 |
|
||||
| debian:10 | sha256:58ce6f1271ae1c8a2006ff7d3e54e9874d839f573d8009c20154ad0f2fb0a225 | 2024-06-13 |
|
||||
| debian:11 | sha256:5e2b4654ea0dc0bc22434199dace15adf9799f292857679fa79f9395e6d4dafd | 2025-10-20 |
|
||||
| moby/buildkit:latest | sha256:79cc6476ab1a3371c9afd8b44e7c55610057c43e18d9b39b68e2b0c2475cc1b6 | 2025-10-07 |
|
||||
| debian:11 | sha256:1b1fd1445c1d0ed68123cf76c2d7c7cb47dfdab3df56f7ff9303063110d43291 | 2025-12-08 |
|
||||
| moby/buildkit:latest | sha256:de10faf919fc71ba4eb1dd7bd6449566d012b0c9436b1c61bfee21d621b009aa | 2025-11-20 |
|
||||
| node:18 | sha256:c6ae79e38498325db67193d391e6ec1d224d96c693a8a4d943498556716d3783 | 2025-03-27 |
|
||||
| node:18-alpine | sha256:8d6421d663b4c28fd3ebc498332f249011d118945588d0a35cb9bc4b8ca09d9e | 2025-03-27 |
|
||||
| node:20 | sha256:cb61978c7e08f58f6042ae65dd21981838804b14eb023b55a1be91d17385609f | 2025-10-16 |
|
||||
| node:20-alpine | sha256:b2f9cb7d40318fb5e530527f657af5e765271867a25f317b974ed4b3069da7d8 | 2025-10-16 |
|
||||
| node:22 | sha256:58644f218c5c29eff294d2049c4f05b16e7c70ea8f9679f51a85926e147f7a43 | 2025-10-21 |
|
||||
| node:22-alpine | sha256:3cede0390df539fee0ec4634ca957539b887528ce2824bb2b631aec414bfa06c | 2025-10-21 |
|
||||
| node:20 | sha256:4b4e58e59c5e042928790c6fccd8ad16da6296bcc2e9924c56fba84a8e5ff662 | 2025-12-09 |
|
||||
| node:20-alpine | sha256:643e7036aa985317ebfee460005e322aa550c6b6883000d01daefb58689a58e2 | 2025-12-04 |
|
||||
| node:22 | sha256:c8abd8da9cfddd2dfd2d5aa9ea2e54f9f70d3968ecf81bf5c2422594fa13fa83 | 2025-12-09 |
|
||||
| node:22-alpine | sha256:9632533eda8061fc1e9960cfb3f8762781c07a00ee7317f5dc0e13c05e15166f | 2025-12-04 |
|
||||
| ubuntu:20.04 | sha256:8feb4d8ca5354def3d8fce243717141ce31e2c428701f6682bd2fafe15388214 | 2025-04-08 |
|
||||
| ubuntu:22.04 | sha256:09506232a8004baa32c47d68f1e5c307d648fdd59f5e7eaa42aaf87914100db3 | 2025-10-01 |
|
||||
| ubuntu:22.04 | sha256:104ae83764a5119017b8e8d6218fa0832b09df65aae7d5a6de29a85d813da2fb | 2025-10-13 |
|
||||
|
||||
### Installed apt packages
|
||||
| Name | Version |
|
||||
@@ -307,14 +301,14 @@ Use the following command as a part of your job to start the service: 'sudo syst
|
||||
| aria2 | 1.36.0-1 |
|
||||
| autoconf | 2.71-2 |
|
||||
| automake | 1:1.16.5-1.3 |
|
||||
| binutils | 2.38-4ubuntu2.8 |
|
||||
| binutils | 2.38-4ubuntu2.12 |
|
||||
| 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 |
|
||||
| dbus | 1.12.20-2ubuntu4.1 |
|
||||
| dnsutils | 1:9.18.39-0ubuntu0.22.04.1 |
|
||||
| dnsutils | 1:9.18.39-0ubuntu0.22.04.2 |
|
||||
| dpkg | 1.21.1ubuntu2.6 |
|
||||
| dpkg-dev | 1.21.1ubuntu2.6 |
|
||||
| fakeroot | 1.28-1ubuntu1 |
|
||||
@@ -391,8 +385,7 @@ Use the following command as a part of your job to start the service: 'sudo syst
|
||||
| upx | 3.96-3 |
|
||||
| wget | 1.21.2-2ubuntu1.1 |
|
||||
| xorriso | 1.5.4-2 |
|
||||
| xvfb | 2:21.1.4-2ubuntu1.7\~22.04.15 |
|
||||
| xvfb | 2:21.1.4-2ubuntu1.7\~22.04.16 |
|
||||
| xz-utils | 5.2.5-2ubuntu1 |
|
||||
| zip | 3.0-12build2 |
|
||||
| zsync | 0.6.2-3ubuntu1 |
|
||||
|
||||
|
||||
@@ -1,12 +1,18 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[Ubuntu & Windows] Four tools scheduled for deprecation on November 3, 2025](https://github.com/actions/runner-images/issues/12898) |
|
||||
| [[Windows/Ubuntu] Docker Server and Client will be updated to version 29.1.*, Docker Compose will be updated to version 2.40.3 on February 9th, 2026](https://github.com/actions/runner-images/issues/13474) |
|
||||
| [[all OSs] Updating Azure PowerShell Module version to 14.6.0 on January 26th, 2026.](https://github.com/actions/runner-images/issues/13473) |
|
||||
| [[Ubuntu-22.04] Pre-cached Docker images will be removed from the image on January 12th, 2026](https://github.com/actions/runner-images/issues/13472) |
|
||||
| [[Ubuntu] The additional Haskell (GHC) instance will be removed from images on January 12th, 2026](https://github.com/actions/runner-images/issues/13471) |
|
||||
| [[Ubuntu-22.04, macOS-14, Windows-2022] Android SDK platforms and build tools older than version 34 will be removed on January 12th, 2026.](https://github.com/actions/runner-images/issues/13469) |
|
||||
| [[all OSs] Python 3.9 will be removed; Python 3.12 will become the default on Windows images on January 12th, 2026.](https://github.com/actions/runner-images/issues/13468) |
|
||||
| [[all OSs] Android NDK 26 will be removed, Android NDK 27 will be used by default on January 12th, 2026.](https://github.com/actions/runner-images/issues/13467) |
|
||||
***
|
||||
# Ubuntu 24.04
|
||||
- OS Version: 24.04.3 LTS
|
||||
- Kernel Version: 6.11.0-1018-azure
|
||||
- Image Version: 20250929.60.1
|
||||
- Systemd version: 255.4-1ubuntu8.10
|
||||
- Image Version: 20260105.202.1
|
||||
- Systemd version: 255.4-1ubuntu8.12
|
||||
|
||||
## Installed Software
|
||||
|
||||
@@ -18,25 +24,25 @@
|
||||
- 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.11.7
|
||||
- Kotlin 2.2.20-release-333
|
||||
- Node.js 20.19.5
|
||||
- Julia 1.12.3
|
||||
- Kotlin 2.3.0-release-356
|
||||
- Node.js 20.19.6
|
||||
- Perl 5.38.2
|
||||
- Python 3.12.3
|
||||
- Ruby 3.2.3
|
||||
- Swift 6.2
|
||||
- Swift 6.2.3
|
||||
|
||||
### Package Management
|
||||
- cpan 1.64
|
||||
- Helm 3.19.0
|
||||
- Homebrew 4.6.15
|
||||
- Miniconda 25.7.0
|
||||
- Helm 3.19.4
|
||||
- Homebrew 5.0.9
|
||||
- Miniconda 25.11.1
|
||||
- Npm 10.8.2
|
||||
- Pip 24.0
|
||||
- Pip3 24.0
|
||||
- Pipx 1.7.1
|
||||
- Pipx 1.8.0
|
||||
- RubyGems 3.4.20
|
||||
- Vcpkg (build from commit bed11935ca)
|
||||
- Vcpkg (build from commit e3db8f65d2)
|
||||
- Yarn 1.22.22
|
||||
|
||||
#### Environment variables
|
||||
@@ -55,100 +61,100 @@ to accomplish this.
|
||||
|
||||
### Project Management
|
||||
- Ant 1.10.14
|
||||
- Gradle 9.1.0
|
||||
- Lerna 9.0.0
|
||||
- Maven 3.9.11
|
||||
- Gradle 9.2.1
|
||||
- Lerna 9.0.3
|
||||
- Maven 3.9.12
|
||||
|
||||
### Tools
|
||||
- Ansible 2.19.2
|
||||
- AzCopy 10.30.1 - available by `azcopy` and `azcopy10` aliases
|
||||
- Bazel 8.4.1
|
||||
- Ansible 2.20.1
|
||||
- AzCopy 10.31.0 - available by `azcopy` and `azcopy10` aliases
|
||||
- Bazel 8.5.0
|
||||
- Bazelisk 1.26.0
|
||||
- Bicep 0.37.4
|
||||
- Bicep 0.39.26
|
||||
- Buildah 1.33.7
|
||||
- CMake 3.31.6
|
||||
- CodeQL Action Bundle 2.23.1
|
||||
- Docker Amazon ECR Credential Helper 0.10.1
|
||||
- CodeQL Action Bundle 2.23.8
|
||||
- Docker Amazon ECR Credential Helper 0.11.0
|
||||
- Docker Compose v2 2.38.2
|
||||
- Docker-Buildx 0.28.0
|
||||
- Docker-Buildx 0.30.1
|
||||
- Docker Client 28.0.4
|
||||
- Docker Server 28.0.4
|
||||
- Fastlane 2.228.0
|
||||
- Git 2.51.0
|
||||
- Git LFS 3.7.0
|
||||
- Fastlane 2.230.0
|
||||
- Git 2.52.0
|
||||
- Git LFS 3.7.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.31.0
|
||||
- Kubectl 1.35.0
|
||||
- Kustomize 5.8.0
|
||||
- MediaInfo 24.01
|
||||
- Mercurial 6.7.2
|
||||
- Minikube 1.37.0
|
||||
- n 10.2.0
|
||||
- Newman 6.2.1
|
||||
- nvm 0.40.3
|
||||
- OpenSSL 3.0.13-0ubuntu3.5
|
||||
- Packer 1.14.2
|
||||
- Parcel 2.16.0
|
||||
- OpenSSL 3.0.13-0ubuntu3.6
|
||||
- Packer 1.14.3
|
||||
- Parcel 2.16.3
|
||||
- Podman 4.9.3
|
||||
- Pulumi 3.198.0
|
||||
- Pulumi 3.214.0
|
||||
- Skopeo 1.13.3
|
||||
- Sphinx Open Source Search Server 2.2.11
|
||||
- yamllint 1.37.1
|
||||
- yq 4.47.2
|
||||
- yq 4.50.1
|
||||
- zstd 1.5.7
|
||||
- Ninja 1.13.1
|
||||
- Ninja 1.13.2
|
||||
|
||||
### CLI Tools
|
||||
- AWS CLI 2.31.4
|
||||
- AWS CLI Session Manager Plugin 1.2.707.0
|
||||
- AWS SAM CLI 1.144.0
|
||||
- Azure CLI 2.77.0
|
||||
- AWS CLI 2.32.29
|
||||
- AWS CLI Session Manager Plugin 1.2.764.0
|
||||
- AWS SAM CLI 1.151.0
|
||||
- Azure CLI 2.81.0
|
||||
- Azure CLI (azure-devops) 1.0.2
|
||||
- GitHub CLI 2.80.0
|
||||
- Google Cloud CLI 540.0.0
|
||||
- GitHub CLI 2.83.2
|
||||
- Google Cloud CLI 550.0.0
|
||||
|
||||
### Java
|
||||
| Version | Environment Variable |
|
||||
| ------------------- | -------------------- |
|
||||
| 8.0.462+8 | JAVA_HOME_8_X64 |
|
||||
| 11.0.28+6 | JAVA_HOME_11_X64 |
|
||||
| 17.0.16+8 (default) | JAVA_HOME_17_X64 |
|
||||
| 21.0.8+9 | JAVA_HOME_21_X64 |
|
||||
| 25.0.0+36 | JAVA_HOME_25_X64 |
|
||||
| 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 |
|
||||
|
||||
### PHP Tools
|
||||
- PHP: 8.3.6
|
||||
- Composer 2.8.12
|
||||
- PHPUnit 8.5.48
|
||||
- Composer 2.9.3
|
||||
- PHPUnit 8.5.50
|
||||
```
|
||||
Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled.
|
||||
```
|
||||
|
||||
### Haskell Tools
|
||||
- Cabal 3.16.0.0
|
||||
- GHC 9.12.2
|
||||
- Cabal 3.16.1.0
|
||||
- GHC 9.14.1
|
||||
- GHCup 0.1.50.2
|
||||
- Stack 3.7.1
|
||||
- Stack 3.9.1
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.90.0
|
||||
- Rust 1.90.0
|
||||
- Rustdoc 1.90.0
|
||||
- Cargo 1.92.0
|
||||
- Rust 1.92.0
|
||||
- Rustdoc 1.92.0
|
||||
- Rustup 1.28.2
|
||||
|
||||
#### Packages
|
||||
- Rustfmt 1.8.0
|
||||
|
||||
### Browsers and Drivers
|
||||
- Google Chrome 140.0.7339.207
|
||||
- ChromeDriver 140.0.7339.207
|
||||
- Chromium 140.0.7339.0
|
||||
- Microsoft Edge 140.0.3485.94
|
||||
- Microsoft Edge WebDriver 140.0.3485.94
|
||||
- Selenium server 4.35.0
|
||||
- Mozilla Firefox 143.0.1
|
||||
- Google Chrome 143.0.7499.169
|
||||
- ChromeDriver 143.0.7499.169
|
||||
- Chromium 143.0.7499.0
|
||||
- Microsoft Edge 143.0.3650.96
|
||||
- Microsoft Edge WebDriver 143.0.3650.96
|
||||
- Selenium server 4.39.0
|
||||
- Mozilla Firefox 146.0.1
|
||||
- Geckodriver 0.36.0
|
||||
|
||||
#### Environment variables
|
||||
@@ -160,14 +166,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.120, 8.0.206, 8.0.317, 8.0.414, 9.0.110, 9.0.205, 9.0.305
|
||||
- nbgv 3.8.118+69b3e0b5a0
|
||||
- .NET Core SDK: 8.0.122, 8.0.206, 8.0.319, 8.0.416, 9.0.112, 9.0.205, 9.0.308, 10.0.101
|
||||
- nbgv 3.9.50+6feeb89450
|
||||
|
||||
### Databases
|
||||
- sqlite3 3.45.1
|
||||
|
||||
#### PostgreSQL
|
||||
- PostgreSQL 16.10
|
||||
- PostgreSQL 16.11
|
||||
```
|
||||
User: postgres
|
||||
PostgreSQL service is disabled by default.
|
||||
@@ -175,7 +181,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.44-0ubuntu0.24.04.2
|
||||
```
|
||||
User: root
|
||||
Password: root
|
||||
@@ -188,19 +194,21 @@ Use the following command as a part of your job to start the service: 'sudo syst
|
||||
#### Go
|
||||
- 1.22.12
|
||||
- 1.23.12
|
||||
- 1.24.7
|
||||
- 1.24.11
|
||||
- 1.25.5
|
||||
|
||||
#### Node.js
|
||||
- 18.20.8
|
||||
- 20.19.5
|
||||
- 22.20.0
|
||||
- 20.19.6
|
||||
- 22.21.1
|
||||
- 24.12.0
|
||||
|
||||
#### Python
|
||||
- 3.9.23
|
||||
- 3.10.18
|
||||
- 3.11.13
|
||||
- 3.12.11
|
||||
- 3.13.7
|
||||
- 3.9.25
|
||||
- 3.10.19
|
||||
- 3.11.14
|
||||
- 3.12.12
|
||||
- 3.13.11
|
||||
- 3.14.2
|
||||
|
||||
#### PyPy
|
||||
- 3.9.19 [PyPy 7.3.16]
|
||||
@@ -209,15 +217,15 @@ Use the following command as a part of your job to start the service: 'sudo syst
|
||||
|
||||
#### Ruby
|
||||
- 3.2.9
|
||||
- 3.3.9
|
||||
- 3.4.6
|
||||
- 3.3.10
|
||||
- 3.4.8
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.4.12
|
||||
- PowerShell 7.4.13
|
||||
|
||||
#### PowerShell Modules
|
||||
- Az: 12.5.0
|
||||
- Microsoft.Graph: 2.30.0
|
||||
- Microsoft.Graph: 2.34.0
|
||||
- Pester: 5.7.1
|
||||
- PSScriptAnalyzer: 1.24.0
|
||||
|
||||
@@ -228,17 +236,17 @@ 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)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1) |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.31.5 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 26.3.11579264<br>27.3.13750724 (default)<br>28.2.13676358 |
|
||||
| Package Name | Version |
|
||||
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 12.0 |
|
||||
| Android SDK Build-tools | 36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.0.0 |
|
||||
| Android SDK Platform-Tools | 36.0.2 |
|
||||
| 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<br>4.1.2 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 26.3.11579264<br>27.3.13750724 (default)<br>28.2.13676358<br>29.0.14206865 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -246,7 +254,7 @@ Use the following command as a part of your job to start the service: 'sudo syst
|
||||
| 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_LATEST_HOME | /usr/local/lib/android/sdk/ndk/29.0.14206865 |
|
||||
| ANDROID_NDK_ROOT | /usr/local/lib/android/sdk/ndk/27.3.13750724 |
|
||||
| ANDROID_SDK_ROOT | /usr/local/lib/android/sdk |
|
||||
|
||||
@@ -257,14 +265,14 @@ 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.5 |
|
||||
| binutils | 2.42-4ubuntu2.8 |
|
||||
| bison | 2:3.8.2+dfsg-1build2 |
|
||||
| brotli | 1.1.0-2build2 |
|
||||
| bzip2 | 1.0.8-5.1build0.1 |
|
||||
| coreutils | 9.4-3ubuntu6.1 |
|
||||
| curl | 8.5.0-2ubuntu10.6 |
|
||||
| dbus | 1.14.10-4ubuntu4.1 |
|
||||
| dnsutils | 1:9.18.39-0ubuntu0.24.04.1 |
|
||||
| dnsutils | 1:9.18.39-0ubuntu0.24.04.2 |
|
||||
| dpkg | 1.22.6ubuntu6.5 |
|
||||
| dpkg-dev | 1.22.6ubuntu6.5 |
|
||||
| fakeroot | 1.33-1 |
|
||||
@@ -280,8 +288,9 @@ Use the following command as a part of your job to start the service: 'sudo syst
|
||||
| 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.5 |
|
||||
| libssl-dev | 3.0.13-0ubuntu3.6 |
|
||||
| libtool | 2.4.7-7build1 |
|
||||
| libyaml-dev | 0.2.5-1build1 |
|
||||
| locales | 2.39-0ubuntu8.6 |
|
||||
@@ -310,18 +319,18 @@ Use the following command as a part of your job to start the service: 'sudo syst
|
||||
| sshpass | 1.09-1 |
|
||||
| sudo | 1.9.15p5-3ubuntu5.24.04.1 |
|
||||
| swig | 4.2.0-2ubuntu1 |
|
||||
| systemd-coredump | 255.4-1ubuntu8.10 |
|
||||
| systemd-coredump | 255.4-1ubuntu8.12 |
|
||||
| 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 |
|
||||
| tree | 2.1.1-2ubuntu3.24.04.2 |
|
||||
| tzdata | 2025b-0ubuntu0.24.04.1 |
|
||||
| unzip | 6.0-28ubuntu4.1 |
|
||||
| upx | 4.2.2-3 |
|
||||
| wget | 1.21.4-1ubuntu4.1 |
|
||||
| xvfb | 2:21.1.12-1ubuntu1.4 |
|
||||
| xvfb | 2:21.1.12-1ubuntu1.5 |
|
||||
| xz-utils | 5.6.1+really5.4.5-1ubuntu0.2 |
|
||||
| zip | 3.0-13ubuntu0.2 |
|
||||
| zsync | 0.6.2-5build1 |
|
||||
|
||||
@@ -78,3 +78,7 @@ 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
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: install-runner-package.sh
|
||||
## Desc: Download and Install runner package
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
download_url=$(resolve_github_release_asset_url "actions/runner" 'test("actions-runner-linux-x64-[0-9]+\\.[0-9]{3}\\.[0-9]+\\.tar\\.gz$")' "latest")
|
||||
archive_name="${download_url##*/}"
|
||||
archive_path=$(download_with_retry "$download_url")
|
||||
|
||||
mkdir -p /opt/runner-cache
|
||||
mv "$archive_path" "/opt/runner-cache/$archive_name"
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash -e
|
||||
################################################################################
|
||||
## File: list-dpkg.sh
|
||||
## Desc: List all installed dpkg packages
|
||||
################################################################################
|
||||
|
||||
echo "Listing all installed dpkg packages..."
|
||||
dpkg-query -W -f='${Package} ${Version}\n' | sort
|
||||
@@ -26,7 +26,7 @@ replace_etc_environment_variable() {
|
||||
local variable_name=$1
|
||||
local variable_value=$2
|
||||
|
||||
# modify /etc/environemnt in place by replacing a string that begins with variable_name
|
||||
# modify /etc/environment in place by replacing a string that begins with variable_name
|
||||
sudo sed -i -e "s%^${variable_name}=.*$%${variable_name}=${variable_value}%" /etc/environment
|
||||
}
|
||||
|
||||
@@ -78,10 +78,10 @@ append_etc_environment_path() {
|
||||
# /etc/environment
|
||||
#
|
||||
# TODO: there might be the others variables to be processed in the same way as "PATH" variable
|
||||
# ie MANPATH, INFOPATH, LD_*, etc. In the current implementation the values from /etc/evironments
|
||||
# ie MANPATH, INFOPATH, LD_*, etc. In the current implementation the values from /etc/environment
|
||||
# replace the values of the current environment
|
||||
reload_etc_environment() {
|
||||
# add `export ` to every variable of /etc/environemnt except PATH and eval the result shell script
|
||||
# add `export ` to every variable of /etc/environment except PATH and eval the result shell script
|
||||
eval $(grep -v '^PATH=' /etc/environment | sed -e 's%^%export %')
|
||||
# handle PATH specially
|
||||
etc_path=$(get_etc_environment_variable PATH)
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
Describe "RunnerCache" {
|
||||
Context "runner cache directory not empty" {
|
||||
It "<RunnerCachePath> not empty" -TestCases @{ RunnerCachePath = "/opt/runner-cache" } {
|
||||
(Get-ChildItem -Path "$RunnerCachePath/*.tar.gz" -Recurse).Count | Should -BeGreaterThan 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -99,7 +99,6 @@ build {
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
scripts = [
|
||||
"${path.root}/../scripts/build/install-actions-cache.sh",
|
||||
"${path.root}/../scripts/build/install-runner-package.sh",
|
||||
"${path.root}/../scripts/build/install-apt-common.sh",
|
||||
"${path.root}/../scripts/build/install-azcopy.sh",
|
||||
"${path.root}/../scripts/build/install-azure-cli.sh",
|
||||
@@ -192,6 +191,11 @@ build {
|
||||
scripts = ["${path.root}/../scripts/build/configure-snap.sh"]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
script = "${path.root}/../scripts/build/list-dpkg.sh"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
expect_disconnect = true
|
||||
|
||||
@@ -99,7 +99,6 @@ provisioner "shell" {
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
scripts = [
|
||||
"${path.root}/../scripts/build/install-actions-cache.sh",
|
||||
"${path.root}/../scripts/build/install-runner-package.sh",
|
||||
"${path.root}/../scripts/build/install-apt-common.sh",
|
||||
"${path.root}/../scripts/build/install-azcopy.sh",
|
||||
"${path.root}/../scripts/build/install-azure-cli.sh",
|
||||
@@ -181,6 +180,11 @@ provisioner "shell" {
|
||||
scripts = ["${path.root}/../scripts/build/configure-snap.sh"]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
script = "${path.root}/../scripts/build/list-dpkg.sh"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
expect_disconnect = true
|
||||
|
||||
@@ -1,18 +1,15 @@
|
||||
locals {
|
||||
image_properties_map = {
|
||||
"ubuntu22" = {
|
||||
publisher = "canonical"
|
||||
offer = "0001-com-ubuntu-server-jammy"
|
||||
sku = "22_04-lts"
|
||||
os_disk_size_gb = coalesce(var.os_disk_size_gb, 75)
|
||||
source_image_marketplace_sku = "canonical:0001-com-ubuntu-server-jammy:22_04-lts"
|
||||
os_disk_size_gb = 75
|
||||
},
|
||||
"ubuntu24" = {
|
||||
publisher = "canonical"
|
||||
offer = "ubuntu-24_04-lts"
|
||||
sku = "server-gen1"
|
||||
os_disk_size_gb = coalesce(var.os_disk_size_gb, 75)
|
||||
source_image_marketplace_sku = "canonical:ubuntu-24_04-lts:server-gen1"
|
||||
os_disk_size_gb = 75
|
||||
}
|
||||
}
|
||||
|
||||
image_properties = local.image_properties_map[var.image_os]
|
||||
source_image_marketplace_sku = local.image_properties_map[var.image_os].source_image_marketplace_sku
|
||||
os_disk_size_gb = coalesce(var.os_disk_size_gb, local.image_properties_map[var.image_os].os_disk_size_gb)
|
||||
}
|
||||
|
||||
@@ -11,15 +11,15 @@ source "azure-arm" "image" {
|
||||
|
||||
allowed_inbound_ip_addresses = var.allowed_inbound_ip_addresses
|
||||
build_resource_group_name = var.build_resource_group_name
|
||||
image_offer = local.image_properties.offer
|
||||
image_publisher = local.image_properties.publisher
|
||||
image_sku = local.image_properties.sku
|
||||
image_publisher = split(":", local.source_image_marketplace_sku)[0]
|
||||
image_offer = split(":", local.source_image_marketplace_sku)[1]
|
||||
image_sku = split(":", local.source_image_marketplace_sku)[2]
|
||||
image_version = var.source_image_version
|
||||
location = var.location
|
||||
managed_image_name = var.managed_image_name
|
||||
managed_image_resource_group_name = var.managed_image_resource_group_name
|
||||
managed_image_storage_account_type = var.managed_image_storage_account_type
|
||||
os_disk_size_gb = local.image_properties.os_disk_size_gb
|
||||
os_disk_size_gb = local.os_disk_size_gb
|
||||
os_type = var.image_os_type
|
||||
private_virtual_network_with_public_ip = var.private_virtual_network_with_public_ip
|
||||
ssh_clear_authorized_keys = var.ssh_clear_authorized_keys
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
"java": {
|
||||
"default": "11",
|
||||
"versions": [ "8", "11", "17", "21", "25"],
|
||||
"maven": "3.9.11"
|
||||
"maven": "3.9.12"
|
||||
},
|
||||
"android": {
|
||||
"cmdline-tools": "commandlinetools-linux-9477386_latest.zip",
|
||||
@@ -272,7 +272,8 @@
|
||||
"dotnet": {
|
||||
"versions": [
|
||||
"8.0",
|
||||
"9.0"
|
||||
"9.0",
|
||||
"10.0"
|
||||
],
|
||||
"tools": [
|
||||
{ "name": "nbgv", "test": "nbgv --version", "getversion" : "nbgv --version" }
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
"java": {
|
||||
"default": "17",
|
||||
"versions": [ "8", "11", "17", "21", "25"],
|
||||
"maven": "3.9.11"
|
||||
"maven": "3.9.12"
|
||||
},
|
||||
"android": {
|
||||
"cmdline-tools": "commandlinetools-linux-11076708_latest.zip",
|
||||
@@ -85,12 +85,13 @@
|
||||
"addon_list": [
|
||||
],
|
||||
"additional_tools": [
|
||||
"cmake;3.31.5"
|
||||
"cmake;3.31.5",
|
||||
"cmake;4.1.2"
|
||||
],
|
||||
"ndk": {
|
||||
"default": "27",
|
||||
"versions": [
|
||||
"26", "27", "28"
|
||||
"26", "27", "28", "29"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -233,7 +234,8 @@
|
||||
"dotnet": {
|
||||
"versions": [
|
||||
"8.0",
|
||||
"9.0"
|
||||
"9.0",
|
||||
"10.0"
|
||||
],
|
||||
"tools": [
|
||||
{ "name": "nbgv", "test": "nbgv --version", "getversion" : "nbgv --version" }
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[Ubuntu & Windows] Four tools scheduled for deprecation on November 3, 2025](https://github.com/actions/runner-images/issues/12898) |
|
||||
***
|
||||
# Windows Server 2022
|
||||
- OS Version: 10.0.20348 Build 4294
|
||||
- Image Version: 20251021.76.1
|
||||
- OS Version: 10.0.20348 Build 4529
|
||||
- Image Version: 20251216.147.1
|
||||
|
||||
## Windows features
|
||||
- Windows Subsystem for Linux (WSLv1): Enabled
|
||||
@@ -13,27 +9,27 @@
|
||||
|
||||
### Language and Runtime
|
||||
- Bash 5.2.37(1)-release
|
||||
- Go 1.24.9
|
||||
- Go 1.24.11
|
||||
- Julia 1.12.0
|
||||
- Kotlin 2.2.20
|
||||
- Kotlin 2.2.21
|
||||
- LLVM 20.1.8
|
||||
- Node 20.19.5
|
||||
- Node 20.19.6
|
||||
- Perl 5.32.1
|
||||
- PHP 8.4.13
|
||||
- PHP 8.4.15
|
||||
- Python 3.9.13
|
||||
- Ruby 3.3.9
|
||||
- Ruby 3.3.10
|
||||
|
||||
### Package Management
|
||||
- Chocolatey 2.5.1
|
||||
- Composer 2.8.12
|
||||
- Helm 3.19.0
|
||||
- Miniconda 25.7.0 (pre-installed on the image but not added to PATH)
|
||||
- Chocolatey 2.6.0
|
||||
- Composer 2.9.2
|
||||
- Helm 4.0.3
|
||||
- Miniconda 25.9.1 (pre-installed on the image but not added to PATH)
|
||||
- NPM 10.8.2
|
||||
- NuGet 6.14.0.116
|
||||
- pip 25.2 (python 3.9)
|
||||
- NuGet 7.0.1.1
|
||||
- pip 25.3 (python 3.9)
|
||||
- Pipx 1.8.0
|
||||
- RubyGems 3.5.22
|
||||
- Vcpkg (build from commit 7220a4eebf)
|
||||
- Vcpkg (build from commit 2b6a882f61)
|
||||
- Yarn 1.22.22
|
||||
|
||||
#### Environment variables
|
||||
@@ -51,24 +47,24 @@
|
||||
### Tools
|
||||
- 7zip 25.01
|
||||
- aria2 1.37.0
|
||||
- azcopy 10.30.1
|
||||
- Bazel 8.4.2
|
||||
- azcopy 10.31.0
|
||||
- Bazel 8.5.0
|
||||
- Bazelisk 1.26.0
|
||||
- Bicep 0.38.33
|
||||
- Bicep 0.39.26
|
||||
- Cabal 3.16.0.0
|
||||
- CMake 3.31.6
|
||||
- CodeQL Action Bundle 2.23.3
|
||||
- CodeQL Action Bundle 2.23.8
|
||||
- Docker 27.5.1
|
||||
- Docker Compose v2 2.32.2
|
||||
- Docker-wincred 0.9.4
|
||||
- ghc 9.12.2
|
||||
- Git 2.51.1.windows.1
|
||||
- Git 2.52.0.windows.1
|
||||
- Git LFS 3.7.1
|
||||
- ImageMagick 7.1.2-7
|
||||
- InnoSetup 6.5.4
|
||||
- ImageMagick 7.1.2-10
|
||||
- InnoSetup 6.6.1
|
||||
- jq 1.8.1
|
||||
- Kind 0.30.0
|
||||
- Kubectl 1.34.1
|
||||
- Kubectl 1.34.3
|
||||
- Mercurial 6.3.1
|
||||
- gcc 14.2.0
|
||||
- gdb 16.2
|
||||
@@ -76,9 +72,9 @@
|
||||
- Newman 6.2.1
|
||||
- NSIS 3.10
|
||||
- OpenSSL 3.6.0
|
||||
- Packer 1.12.0
|
||||
- Pulumi 3.203.0
|
||||
- R 4.5.1
|
||||
- Packer 1.14.2
|
||||
- Pulumi 3.211.0
|
||||
- R 4.5.2
|
||||
- Service Fabric SDK 10.1.2493.9590
|
||||
- Stack 3.7.1
|
||||
- Subversion (SVN) 1.14.5
|
||||
@@ -88,40 +84,40 @@
|
||||
- WiX Toolset 3.14.1.8722
|
||||
- yamllint 1.37.1
|
||||
- zstd 1.5.7
|
||||
- Ninja 1.13.1
|
||||
- Ninja 1.13.2
|
||||
|
||||
### CLI Tools
|
||||
- Alibaba Cloud CLI 3.0.307
|
||||
- AWS CLI 2.31.18
|
||||
- AWS SAM CLI 1.145.2
|
||||
- AWS Session Manager CLI 1.2.707.0
|
||||
- Azure CLI 2.78.0
|
||||
- Alibaba Cloud CLI 3.2.2
|
||||
- AWS CLI 2.32.17
|
||||
- AWS SAM CLI 1.150.1
|
||||
- AWS Session Manager CLI 1.2.764.0
|
||||
- Azure CLI 2.81.0
|
||||
- Azure DevOps CLI extension 1.0.2
|
||||
- GitHub CLI 2.82.0
|
||||
- GitHub CLI 2.83.2
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.90.0
|
||||
- Rust 1.90.0
|
||||
- Rustdoc 1.90.0
|
||||
- Cargo 1.92.0
|
||||
- Rust 1.92.0
|
||||
- Rustdoc 1.92.0
|
||||
- Rustup 1.28.2
|
||||
|
||||
#### Packages
|
||||
- bindgen 0.72.1
|
||||
- cargo-audit 0.21.2
|
||||
- cargo-audit 0.22.0
|
||||
- cargo-outdated 0.17.0
|
||||
- cbindgen 0.29.2
|
||||
- Clippy 0.1.90
|
||||
- Clippy 0.1.92
|
||||
- Rustfmt 1.8.0
|
||||
|
||||
### Browsers and Drivers
|
||||
- Google Chrome 141.0.7390.123
|
||||
- Chrome Driver 141.0.7390.122
|
||||
- Microsoft Edge 141.0.3537.92
|
||||
- Microsoft Edge Driver 141.0.3537.92
|
||||
- Mozilla Firefox 144.0
|
||||
- Google Chrome 143.0.7499.110
|
||||
- Chrome Driver 143.0.7499.42
|
||||
- Microsoft Edge 143.0.3650.80
|
||||
- Microsoft Edge Driver 143.0.3650.80
|
||||
- Mozilla Firefox 146.0
|
||||
- Gecko Driver 0.36.0
|
||||
- IE Driver 4.14.0.0
|
||||
- Selenium server 4.37.0
|
||||
- Selenium server 4.39.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -134,11 +130,11 @@
|
||||
### Java
|
||||
| Version | Environment Variable |
|
||||
| ------------------- | -------------------- |
|
||||
| 8.0.462+8 (default) | JAVA_HOME_8_X64 |
|
||||
| 11.0.28+6 | JAVA_HOME_11_X64 |
|
||||
| 17.0.16+8 | JAVA_HOME_17_X64 |
|
||||
| 21.0.8+9.0 | JAVA_HOME_21_X64 |
|
||||
| 25.0.0+36.0 | JAVA_HOME_25_X64 |
|
||||
| 8.0.472+8 (default) | JAVA_HOME_8_X64 |
|
||||
| 11.0.29+7 | JAVA_HOME_11_X64 |
|
||||
| 17.0.17+10 | JAVA_HOME_17_X64 |
|
||||
| 21.0.9+10.0 | JAVA_HOME_21_X64 |
|
||||
| 25.0.1+8.0 | JAVA_HOME_25_X64 |
|
||||
|
||||
### Shells
|
||||
| Name | Target |
|
||||
@@ -162,22 +158,21 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
#### Go
|
||||
- 1.22.12
|
||||
- 1.23.12
|
||||
- 1.24.9
|
||||
- 1.25.3
|
||||
- 1.24.11
|
||||
- 1.25.5
|
||||
|
||||
#### Node.js
|
||||
- 18.20.8
|
||||
- 20.19.5
|
||||
- 22.21.0
|
||||
- 24.10.0
|
||||
- 20.19.6
|
||||
- 22.21.1
|
||||
- 24.12.0
|
||||
|
||||
#### Python
|
||||
- 3.9.13
|
||||
- 3.10.11
|
||||
- 3.11.9
|
||||
- 3.12.10
|
||||
- 3.13.9
|
||||
- 3.14.0
|
||||
- 3.13.11
|
||||
- 3.14.2
|
||||
|
||||
#### PyPy
|
||||
- 2.7.18 [PyPy 7.3.20]
|
||||
@@ -187,9 +182,8 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
- 3.10.16 [PyPy 7.3.19]
|
||||
|
||||
#### Ruby
|
||||
- 3.1.7
|
||||
- 3.2.9
|
||||
- 3.3.9
|
||||
- 3.3.10
|
||||
- 3.4.7
|
||||
|
||||
### Databases
|
||||
@@ -198,7 +192,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Property | Value |
|
||||
| -------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
||||
| ServiceName | postgresql-x64-14 |
|
||||
| Version | 14.19 |
|
||||
| Version | 14.20 |
|
||||
| ServiceStatus | Stopped |
|
||||
| ServiceStartType | Disabled |
|
||||
| EnvironmentVariables | PGBIN=C:\Program Files\PostgreSQL\14\bin <br> PGDATA=C:\PostgreSQL\14\data <br> PGROOT=C:\Program Files\PostgreSQL\14 |
|
||||
@@ -209,7 +203,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
#### MongoDB
|
||||
| Version | ServiceName | ServiceStatus | ServiceStartType |
|
||||
| -------- | ----------- | ------------- | ---------------- |
|
||||
| 7.0.25.0 | MongoDB | Stopped | Disabled |
|
||||
| 7.0.26.0 | MongoDB | Stopped | Disabled |
|
||||
|
||||
### Database tools
|
||||
- Azure CosmosDb Emulator 2.14.25.0
|
||||
@@ -218,18 +212,18 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
- SQL OLEDB Driver 18 18.7.5.0
|
||||
- SQL OLEDB Driver 19 19.4.1.0
|
||||
- SQLPS 1.0
|
||||
- MongoDB Shell (mongosh) 2.5.8
|
||||
- MongoDB Shell (mongosh) 2.5.10
|
||||
|
||||
### Web Servers
|
||||
| Name | Version | ConfigFile | ServiceName | ServiceStatus | ListenPort |
|
||||
| ------ | ------- | ------------------------------------- | ----------- | ------------- | ---------- |
|
||||
| Apache | 2.4.55 | C:\tools\Apache24\conf\httpd.conf | Apache | Stopped | 80 |
|
||||
| Nginx | 1.29.2 | C:\tools\nginx-1.29.2\conf\nginx.conf | nginx | Stopped | 80 |
|
||||
| Nginx | 1.29.4 | C:\tools\nginx-1.29.4\conf\nginx.conf | nginx | Stopped | 80 |
|
||||
|
||||
### Visual Studio Enterprise 2022
|
||||
| Name | Version | Path |
|
||||
| ----------------------------- | -------------- | -------------------------------------------------------- |
|
||||
| Visual Studio Enterprise 2022 | 17.14.36616.10 | C:\Program Files\Microsoft Visual Studio\2022\Enterprise |
|
||||
| Name | Version | Path |
|
||||
| ----------------------------- | ------------- | -------------------------------------------------------- |
|
||||
| Visual Studio Enterprise 2022 | 17.14.36804.6 | C:\Program Files\Microsoft Visual Studio\2022\Enterprise |
|
||||
|
||||
#### Workloads, components and extensions
|
||||
| Package | Version |
|
||||
@@ -240,7 +234,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Component.Dotfuscator | 17.14.36510.44 |
|
||||
| Component.Linux.CMake | 17.14.36510.44 |
|
||||
| Component.Linux.RemoteFileExplorer | 17.14.36510.44 |
|
||||
| Component.MDD.Android | 17.14.36510.44 |
|
||||
| Component.MDD.Android | 17.14.36804.6 |
|
||||
| Component.MDD.Linux | 17.14.36510.44 |
|
||||
| Component.MDD.Linux.GCC.arm | 17.14.36510.44 |
|
||||
| Component.Microsoft.VisualStudio.RazorExtension | 17.14.36510.44 |
|
||||
@@ -248,19 +242,19 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Component.Microsoft.VisualStudio.Web.AzureFunctions | 17.14.36510.44 |
|
||||
| Component.Microsoft.Web.LibraryManager | 17.14.36510.44 |
|
||||
| Component.Microsoft.WebTools.BrowserLink.WebLivePreview | 17.14.2.50506 |
|
||||
| Component.Microsoft.Windows.DriverKit | 10.0.26100.12 |
|
||||
| Component.Microsoft.Windows.DriverKit | 10.0.26100.15 |
|
||||
| Component.OpenJDK | 17.14.36510.44 |
|
||||
| Component.UnityEngine.x64 | 17.14.36510.44 |
|
||||
| Component.Unreal | 17.14.36510.44 |
|
||||
| Component.Unreal.Android | 17.14.36510.44 |
|
||||
| Component.Unreal.Debugger | 17.14.36510.44 |
|
||||
| Component.Unreal.Ide | 17.14.36510.44 |
|
||||
| Component.VisualStudio.GitHub.Copilot | 17.14.36614.30 |
|
||||
| Component.VisualStudio.GitHub.Copilot | 17.14.36804.6 |
|
||||
| Component.VSInstallerProjects2022 | 2.0.1 |
|
||||
| Component.WixToolset.VisualStudioExtension.Dev17 | 1.0.0.22 |
|
||||
| Component.WixToolset.VisualStudioExtension.Schemas3 | 1.0.0.22 |
|
||||
| Component.Xamarin | 17.14.36510.44 |
|
||||
| ComponentGroup.Microsoft.NET.AppModernization | 17.14.36614.33 |
|
||||
| ComponentGroup.Microsoft.NET.AppModernization | 17.14.36705.20 |
|
||||
| ios | 26.0.9752.0 |
|
||||
| maccatalyst | 26.0.9752.0 |
|
||||
| maui.blazor | 9.0.111.6930 |
|
||||
@@ -290,19 +284,19 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Microsoft.Net.ComponentGroup.4.8.DeveloperTools | 17.14.36510.44 |
|
||||
| Microsoft.Net.ComponentGroup.DevelopmentPrerequisites | 17.14.36510.44 |
|
||||
| Microsoft.Net.ComponentGroup.TargetingPacks.Common | 17.14.36510.44 |
|
||||
| microsoft.net.runtime.android | 9.0.1025.47515 |
|
||||
| microsoft.net.runtime.android.aot | 9.0.1025.47515 |
|
||||
| microsoft.net.runtime.android.aot.net8 | 9.0.1025.47515 |
|
||||
| microsoft.net.runtime.android.net8 | 9.0.1025.47515 |
|
||||
| microsoft.net.runtime.ios | 9.0.1025.47515 |
|
||||
| microsoft.net.runtime.maccatalyst | 9.0.1025.47515 |
|
||||
| microsoft.net.runtime.mono.tooling | 9.0.1025.47515 |
|
||||
| microsoft.net.runtime.mono.tooling.net8 | 9.0.1025.47515 |
|
||||
| microsoft.net.sdk.emscripten | 9.0.12.46904 |
|
||||
| microsoft.net.runtime.android | 9.0.1125.51309 |
|
||||
| microsoft.net.runtime.android.aot | 9.0.1125.51309 |
|
||||
| microsoft.net.runtime.android.aot.net8 | 9.0.1125.51309 |
|
||||
| microsoft.net.runtime.android.net8 | 9.0.1125.51309 |
|
||||
| microsoft.net.runtime.ios | 9.0.1125.51309 |
|
||||
| microsoft.net.runtime.maccatalyst | 9.0.1125.51309 |
|
||||
| microsoft.net.runtime.mono.tooling | 9.0.1125.51309 |
|
||||
| microsoft.net.runtime.mono.tooling.net8 | 9.0.1125.51309 |
|
||||
| microsoft.net.sdk.emscripten | 9.0.13.1604 |
|
||||
| Microsoft.NetCore.Component.DevelopmentTools | 17.14.36510.44 |
|
||||
| Microsoft.NetCore.Component.Runtime.8.0 | 17.14.36602.14 |
|
||||
| Microsoft.NetCore.Component.Runtime.9.0 | 17.14.36602.14 |
|
||||
| Microsoft.NetCore.Component.SDK | 17.14.36602.14 |
|
||||
| Microsoft.NetCore.Component.Runtime.8.0 | 17.14.36705.7 |
|
||||
| Microsoft.NetCore.Component.Runtime.9.0 | 17.14.36717.8 |
|
||||
| Microsoft.NetCore.Component.SDK | 17.14.36717.8 |
|
||||
| Microsoft.NetCore.Component.Web | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.AppInsights.Tools | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.AspNet | 17.14.36510.44 |
|
||||
@@ -324,7 +318,6 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Microsoft.VisualStudio.Component.DockerTools | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.DotNetModelBuilder | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.DslTools | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.Embedded | 17.14.36517.7 |
|
||||
| Microsoft.VisualStudio.Component.EntityFramework | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.FSharp | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.FSharp.Desktop | 17.14.36510.44 |
|
||||
@@ -334,7 +327,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Microsoft.VisualStudio.Component.Graphics.Tools | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.HLSL | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.IISExpress | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.IntelliCode | 17.14.36511.5 |
|
||||
| Microsoft.VisualStudio.Component.IntelliCode | 17.14.36621.7 |
|
||||
| Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.JavaScript.Diagnostics | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.JavaScript.TypeScript | 17.14.36510.44 |
|
||||
@@ -403,9 +396,9 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Microsoft.VisualStudio.Component.Web | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.WebDeploy | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.Windows10SDK | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.Windows10SDK.19041 | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.Windows10SDK.19041 | 17.14.36804.6 |
|
||||
| Microsoft.VisualStudio.Component.Windows11SDK.22621 | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.Windows11SDK.26100 | 17.14.36614.30 |
|
||||
| Microsoft.VisualStudio.Component.Windows11SDK.26100 | 17.14.36804.6 |
|
||||
| Microsoft.VisualStudio.Component.Windows11Sdk.WindowsPerformanceToolkit | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.WindowsAppSdkSupport.CSharp | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.Workflow | 17.14.36510.44 |
|
||||
@@ -424,7 +417,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Microsoft.VisualStudio.ComponentGroup.Maui.Windows | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang | 17.14.36802.14 |
|
||||
| Microsoft.VisualStudio.ComponentGroup.UWP.NetCoreAndStandard | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.ComponentGroup.UWP.VC.v142 | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64 | 17.14.36510.44 |
|
||||
@@ -442,10 +435,10 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Microsoft.VisualStudio.Workload.DataScience | 17.14.36015.10 |
|
||||
| Microsoft.VisualStudio.Workload.ManagedDesktop | 17.14.36518.2 |
|
||||
| Microsoft.VisualStudio.Workload.ManagedGame | 17.14.36301.6 |
|
||||
| Microsoft.VisualStudio.Workload.NativeCrossPlat | 17.14.36526.15 |
|
||||
| Microsoft.VisualStudio.Workload.NativeCrossPlat | 17.14.36716.0 |
|
||||
| Microsoft.VisualStudio.Workload.NativeDesktop | 17.14.36517.7 |
|
||||
| Microsoft.VisualStudio.Workload.NativeGame | 17.14.36331.10 |
|
||||
| Microsoft.VisualStudio.Workload.NativeMobile | 17.14.36015.10 |
|
||||
| Microsoft.VisualStudio.Workload.NativeMobile | 17.14.36802.14 |
|
||||
| Microsoft.VisualStudio.Workload.NetCrossPlat | 17.14.36518.2 |
|
||||
| Microsoft.VisualStudio.Workload.NetWeb | 17.14.36518.2 |
|
||||
| Microsoft.VisualStudio.Workload.Node | 17.14.36517.7 |
|
||||
@@ -453,16 +446,16 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Microsoft.VisualStudio.Workload.Python | 17.14.36015.10 |
|
||||
| Microsoft.VisualStudio.Workload.Universal | 17.14.36331.10 |
|
||||
| Microsoft.VisualStudio.Workload.VisualStudioExtension | 17.14.36015.10 |
|
||||
| runtimes.ios | 9.0.1025.47515 |
|
||||
| runtimes.maccatalyst | 9.0.1025.47515 |
|
||||
| wasm.tools | 9.0.1025.47515 |
|
||||
| ProBITools.MicrosoftAnalysisServicesModelingProjects2022 | 3.0.4 |
|
||||
| ProBITools.MicrosoftReportProjectsforVisualStudio2022 | 3.0.1 |
|
||||
| SSIS.MicrosoftDataToolsIntegrationServices | 2.0 |
|
||||
| runtimes.ios | 9.0.1125.51309 |
|
||||
| runtimes.maccatalyst | 9.0.1125.51309 |
|
||||
| wasm.tools | 9.0.1125.51309 |
|
||||
| ProBITools.MicrosoftAnalysisServicesModelingProjects2022 | 4.0.0 |
|
||||
| ProBITools.MicrosoftReportProjectsforVisualStudio2022 | 4.0.0 |
|
||||
| SSIS.MicrosoftDataToolsIntegrationServices | 2.1.2 |
|
||||
| VisualStudioClient.MicrosoftVisualStudio2022InstallerProjects | 2.0.1 |
|
||||
| Windows Driver Kit | 10.1.26100.4202 |
|
||||
| Windows Driver Kit Visual Studio Extension | 10.0.26100.12 |
|
||||
| Windows Software Development Kit | 10.1.26100.6584 |
|
||||
| Windows Driver Kit Visual Studio Extension | 10.0.26100.15 |
|
||||
| Windows Software Development Kit | 10.1.26100.7175 |
|
||||
| WixToolset.WixToolsetVisualStudio2022Extension | 1.0.0.22 |
|
||||
|
||||
#### Microsoft Visual C++
|
||||
@@ -484,22 +477,22 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
- 10.0.26100.0
|
||||
|
||||
### .NET Core 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
|
||||
- .NET Core SDK: 8.0.122, 8.0.206, 8.0.319, 8.0.416, 9.0.112, 9.0.205, 9.0.308, 10.0.101
|
||||
- .NET Framework: 4.7.2, 4.8, 4.8.1
|
||||
- Microsoft.AspNetCore.App: 6.0.40, 8.0.6, 8.0.21, 9.0.6, 9.0.10
|
||||
- Microsoft.NETCore.App: 6.0.40, 8.0.6, 8.0.21, 9.0.6, 9.0.10
|
||||
- Microsoft.WindowsDesktop.App: 8.0.6, 8.0.21, 9.0.6, 9.0.10
|
||||
- nbgv 3.8.118+69b3e0b5a0
|
||||
- Microsoft.AspNetCore.App: 6.0.40, 8.0.6, 8.0.22, 9.0.6, 9.0.11, 10.0.1
|
||||
- Microsoft.NETCore.App: 6.0.40, 8.0.6, 8.0.22, 9.0.6, 9.0.11, 10.0.1
|
||||
- Microsoft.WindowsDesktop.App: 8.0.6, 8.0.22, 9.0.6, 9.0.11, 10.0.1
|
||||
- nbgv 3.9.50+6feeb89450
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.4.13
|
||||
|
||||
#### Powershell Modules
|
||||
- Az: 12.5.0
|
||||
- AWSPowershell: 5.0.79
|
||||
- AWSPowershell: 5.0.117
|
||||
- DockerMsftProvider: 1.0.0.8
|
||||
- MarkdownPS: 1.10
|
||||
- Microsoft.Graph: 2.32.0
|
||||
- Microsoft.Graph: 2.33.0
|
||||
- Pester: 3.4.0, 5.7.1
|
||||
- PowerShellGet: 1.0.0.1, 2.2.5
|
||||
- PSScriptAnalyzer: 1.24.0
|
||||
@@ -511,15 +504,15 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Package Name | Version |
|
||||
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 8.0 |
|
||||
| Android Emulator | 36.2.12 |
|
||||
| Android Emulator | 36.3.10 |
|
||||
| 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 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 SDK Platform-Tools | 36.0.0 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.18.1<br>3.22.1<br>3.31.5 |
|
||||
| CMake | 3.22.1<br>3.31.5<br>4.1.2 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 26.3.11579264<br>27.3.13750724<br>28.2.13676358 |
|
||||
| NDK | 26.3.11579264<br>27.3.13750724<br>28.2.13676358<br>29.0.14206865 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -527,7 +520,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| ANDROID_HOME | C:\Android\android-sdk |
|
||||
| ANDROID_NDK | C:\Android\android-sdk\ndk\27.3.13750724 |
|
||||
| ANDROID_NDK_HOME | C:\Android\android-sdk\ndk\27.3.13750724 |
|
||||
| ANDROID_NDK_LATEST_HOME | C:\Android\android-sdk\ndk\28.2.13676358 |
|
||||
| ANDROID_NDK_LATEST_HOME | C:\Android\android-sdk\ndk\29.0.14206865 |
|
||||
| ANDROID_NDK_ROOT | C:\Android\android-sdk\ndk\27.3.13750724 |
|
||||
| ANDROID_SDK_ROOT | C:\Android\android-sdk |
|
||||
|
||||
@@ -537,6 +530,5 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2022 | sha256:ec04e733695f49a0dc9132184f6b06704866b34f422004093c1972512c86259e | 2025-09-09 |
|
||||
| mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2022 | sha256:3983348680840ca6e53ad641e314c3c9184ca2fd19f88bc467600f7d9f6e9d73 | 2025-09-09 |
|
||||
| mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2022 | sha256:460dedaed73224f73ff10dc3ad754d0ed250aa57bcdf6c5052a811b4b7e29345 | 2025-09-09 |
|
||||
| mcr.microsoft.com/windows/nanoserver:ltsc2022 | sha256:041ef64ff895b23d46eacc8cbfb4d9142f6d23d48967b72a03439ee884355f84 | 2025-10-09 |
|
||||
| mcr.microsoft.com/windows/servercore:ltsc2022 | sha256:418d8d0c6e026e5131e48f4d71ca66e9564c31b50f02b740235d32145a55c6ea | 2025-10-09 |
|
||||
|
||||
| mcr.microsoft.com/windows/nanoserver:ltsc2022 | sha256:643adf84ee2338ee4811fd891adb9e912917dc6c0ca85399982e1bebda4f2295 | 2025-12-05 |
|
||||
| mcr.microsoft.com/windows/servercore:ltsc2022 | sha256:3750d7fcd320130cc2ce61954902b71729e85ec2c07c5a2e83a6d6c7f34a61e5 | 2025-12-05 |
|
||||
|
||||
@@ -1,40 +1,36 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[Ubuntu & Windows] Four tools scheduled for deprecation on November 3, 2025](https://github.com/actions/runner-images/issues/12898) |
|
||||
***
|
||||
# Windows Server 2025
|
||||
- OS Version: 10.0.26100 Build 6899
|
||||
- Image Version: 20251021.67.1
|
||||
- OS Version: 10.0.26100 Build 7462
|
||||
- Image Version: 20251216.149.1
|
||||
|
||||
## Windows features
|
||||
- Windows Subsystem for Linux (WSLv1): Enabled
|
||||
- Windows Subsystem for Linux (Default, WSLv2): 2.6.1.0
|
||||
- Windows Subsystem for Linux (Default, WSLv2): 2.6.2.0
|
||||
|
||||
## Installed Software
|
||||
|
||||
### Language and Runtime
|
||||
- Bash 5.2.37(1)-release
|
||||
- Go 1.24.9
|
||||
- Go 1.24.11
|
||||
- Julia 1.12.0
|
||||
- Kotlin 2.2.20
|
||||
- Kotlin 2.2.21
|
||||
- LLVM 20.1.8
|
||||
- Node 22.21.0
|
||||
- Node 22.21.1
|
||||
- Perl 5.42.0
|
||||
- PHP 8.4.13
|
||||
- PHP 8.4.15
|
||||
- Python 3.9.13
|
||||
- Ruby 3.3.9
|
||||
- Ruby 3.3.10
|
||||
|
||||
### Package Management
|
||||
- Chocolatey 2.5.1
|
||||
- Composer 2.8.12
|
||||
- Helm 3.19.0
|
||||
- Miniconda 25.7.0 (pre-installed on the image but not added to PATH)
|
||||
- Chocolatey 2.6.0
|
||||
- Composer 2.9.2
|
||||
- Helm 4.0.3
|
||||
- Miniconda 25.9.1 (pre-installed on the image but not added to PATH)
|
||||
- NPM 10.9.4
|
||||
- NuGet 6.14.0.116
|
||||
- pip 25.2 (python 3.9)
|
||||
- NuGet 7.0.1.1
|
||||
- pip 25.3 (python 3.9)
|
||||
- Pipx 1.8.0
|
||||
- RubyGems 3.5.22
|
||||
- Vcpkg (build from commit 7220a4eebf)
|
||||
- Vcpkg (build from commit 2b6a882f61)
|
||||
- Yarn 1.22.22
|
||||
|
||||
#### Environment variables
|
||||
@@ -52,32 +48,32 @@
|
||||
### Tools
|
||||
- 7zip 25.01
|
||||
- aria2 1.37.0
|
||||
- azcopy 10.30.1
|
||||
- Bazel 8.4.2
|
||||
- azcopy 10.31.0
|
||||
- Bazel 8.5.0
|
||||
- Bazelisk 1.26.0
|
||||
- Bicep 0.38.33
|
||||
- Bicep 0.39.26
|
||||
- Cabal 3.16.0.0
|
||||
- CMake 3.31.6
|
||||
- CodeQL Action Bundle 2.23.3
|
||||
- CodeQL Action Bundle 2.23.8
|
||||
- Docker 27.5.1
|
||||
- Docker Compose v2 2.32.2
|
||||
- Docker-wincred 0.9.4
|
||||
- ghc 9.12.2
|
||||
- Git 2.51.1.windows.1
|
||||
- Git 2.52.0.windows.1
|
||||
- Git LFS 3.7.1
|
||||
- ImageMagick 7.1.2-7
|
||||
- InnoSetup 6.5.4
|
||||
- ImageMagick 7.1.2-10
|
||||
- InnoSetup 6.6.1
|
||||
- jq 1.8.1
|
||||
- Kind 0.30.0
|
||||
- Kubectl 1.34.1
|
||||
- Kubectl 1.34.3
|
||||
- gcc 15.2.0
|
||||
- gdb 16.3
|
||||
- GNU Binutils 2.45
|
||||
- Newman 6.2.1
|
||||
- OpenSSL 3.6.0
|
||||
- Packer 1.12.0
|
||||
- Pulumi 3.203.0
|
||||
- R 4.5.1
|
||||
- Packer 1.14.2
|
||||
- Pulumi 3.211.0
|
||||
- R 4.5.2
|
||||
- Service Fabric SDK 10.1.2493.9590
|
||||
- Stack 3.7.1
|
||||
- Swig 4.3.1
|
||||
@@ -86,35 +82,35 @@
|
||||
- WiX Toolset 3.14.1.8722
|
||||
- yamllint 1.37.1
|
||||
- zstd 1.5.7
|
||||
- Ninja 1.13.1
|
||||
- Ninja 1.13.2
|
||||
|
||||
### CLI Tools
|
||||
- AWS CLI 2.31.18
|
||||
- AWS SAM CLI 1.145.2
|
||||
- AWS Session Manager CLI 1.2.707.0
|
||||
- Azure CLI 2.78.0
|
||||
- AWS CLI 2.32.17
|
||||
- AWS SAM CLI 1.150.1
|
||||
- AWS Session Manager CLI 1.2.764.0
|
||||
- Azure CLI 2.81.0
|
||||
- Azure DevOps CLI extension 1.0.2
|
||||
- GitHub CLI 2.82.0
|
||||
- GitHub CLI 2.83.2
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.90.0
|
||||
- Rust 1.90.0
|
||||
- Rustdoc 1.90.0
|
||||
- Cargo 1.92.0
|
||||
- Rust 1.92.0
|
||||
- Rustdoc 1.92.0
|
||||
- Rustup 1.28.2
|
||||
|
||||
#### Packages
|
||||
- Clippy 0.1.90
|
||||
- Clippy 0.1.92
|
||||
- Rustfmt 1.8.0
|
||||
|
||||
### Browsers and Drivers
|
||||
- Google Chrome 141.0.7390.123
|
||||
- Chrome Driver 141.0.7390.122
|
||||
- Microsoft Edge 141.0.3537.92
|
||||
- Microsoft Edge Driver 141.0.3537.92
|
||||
- Mozilla Firefox 144.0
|
||||
- Google Chrome 143.0.7499.110
|
||||
- Chrome Driver 143.0.7499.42
|
||||
- Microsoft Edge 143.0.3650.80
|
||||
- Microsoft Edge Driver 143.0.3650.80
|
||||
- Mozilla Firefox 146.0
|
||||
- Gecko Driver 0.36.0
|
||||
- IE Driver 4.14.0.0
|
||||
- Selenium server 4.37.0
|
||||
- Selenium server 4.39.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -125,13 +121,13 @@
|
||||
| SELENIUM_JAR_PATH | C:\selenium\selenium-server.jar |
|
||||
|
||||
### 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 |
|
||||
| 25.0.0+36.0 | JAVA_HOME_25_X64 |
|
||||
| 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.0 | JAVA_HOME_21_X64 |
|
||||
| 25.0.1+8.0 | JAVA_HOME_25_X64 |
|
||||
|
||||
### Shells
|
||||
| Name | Target |
|
||||
@@ -155,31 +151,29 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
#### Go
|
||||
- 1.22.12
|
||||
- 1.23.12
|
||||
- 1.24.9
|
||||
- 1.25.3
|
||||
- 1.24.11
|
||||
- 1.25.5
|
||||
|
||||
#### Node.js
|
||||
- 18.20.8
|
||||
- 20.19.5
|
||||
- 22.21.0
|
||||
- 24.10.0
|
||||
- 20.19.6
|
||||
- 22.21.1
|
||||
- 24.12.0
|
||||
|
||||
#### Python
|
||||
- 3.9.13
|
||||
- 3.10.11
|
||||
- 3.11.9
|
||||
- 3.12.10
|
||||
- 3.13.9
|
||||
- 3.14.0
|
||||
- 3.13.11
|
||||
- 3.14.2
|
||||
|
||||
#### PyPy
|
||||
- 3.9.19 [PyPy 7.3.16]
|
||||
- 3.10.16 [PyPy 7.3.19]
|
||||
|
||||
#### Ruby
|
||||
- 3.1.7
|
||||
- 3.2.9
|
||||
- 3.3.9
|
||||
- 3.3.10
|
||||
- 3.4.7
|
||||
|
||||
### Databases
|
||||
@@ -188,7 +182,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Property | Value |
|
||||
| -------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
||||
| ServiceName | postgresql-x64-17 |
|
||||
| Version | 17.6 |
|
||||
| Version | 17.7 |
|
||||
| ServiceStatus | Stopped |
|
||||
| ServiceStartType | Disabled |
|
||||
| EnvironmentVariables | PGBIN=C:\Program Files\PostgreSQL\17\bin <br> PGDATA=C:\PostgreSQL\17\data <br> PGROOT=C:\Program Files\PostgreSQL\17 |
|
||||
@@ -199,7 +193,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
#### MongoDB
|
||||
| Version | ServiceName | ServiceStatus | ServiceStartType |
|
||||
| -------- | ----------- | ------------- | ---------------- |
|
||||
| 7.0.25.0 | MongoDB | Stopped | Disabled |
|
||||
| 7.0.26.0 | MongoDB | Stopped | Disabled |
|
||||
|
||||
### Database tools
|
||||
- Azure CosmosDb Emulator 2.14.25.0
|
||||
@@ -208,18 +202,18 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
- SQL OLEDB Driver 18 18.7.5.0
|
||||
- SQL OLEDB Driver 19 19.4.1.0
|
||||
- SQLPS 1.0
|
||||
- MongoDB Shell (mongosh) 2.5.8
|
||||
- MongoDB Shell (mongosh) 2.5.10
|
||||
|
||||
### Web Servers
|
||||
| Name | Version | ConfigFile | ServiceName | ServiceStatus | ListenPort |
|
||||
| ------ | ------- | ------------------------------------- | ----------- | ------------- | ---------- |
|
||||
| Apache | 2.4.55 | C:\tools\Apache24\conf\httpd.conf | Apache | Stopped | 80 |
|
||||
| Nginx | 1.29.2 | C:\tools\nginx-1.29.2\conf\nginx.conf | nginx | Stopped | 80 |
|
||||
| Nginx | 1.29.4 | C:\tools\nginx-1.29.4\conf\nginx.conf | nginx | Stopped | 80 |
|
||||
|
||||
### Visual Studio Enterprise 2022
|
||||
| Name | Version | Path |
|
||||
| ----------------------------- | -------------- | -------------------------------------------------------- |
|
||||
| Visual Studio Enterprise 2022 | 17.14.36616.10 | C:\Program Files\Microsoft Visual Studio\2022\Enterprise |
|
||||
| Name | Version | Path |
|
||||
| ----------------------------- | ------------- | -------------------------------------------------------- |
|
||||
| Visual Studio Enterprise 2022 | 17.14.36804.6 | C:\Program Files\Microsoft Visual Studio\2022\Enterprise |
|
||||
|
||||
#### Workloads, components and extensions
|
||||
| Package | Version |
|
||||
@@ -230,7 +224,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Component.Dotfuscator | 17.14.36510.44 |
|
||||
| Component.Linux.CMake | 17.14.36510.44 |
|
||||
| Component.Linux.RemoteFileExplorer | 17.14.36510.44 |
|
||||
| Component.MDD.Android | 17.14.36510.44 |
|
||||
| Component.MDD.Android | 17.14.36804.6 |
|
||||
| Component.MDD.Linux | 17.14.36510.44 |
|
||||
| Component.MDD.Linux.GCC.arm | 17.14.36510.44 |
|
||||
| Component.Microsoft.VisualStudio.RazorExtension | 17.14.36510.44 |
|
||||
@@ -238,16 +232,16 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Component.Microsoft.VisualStudio.Web.AzureFunctions | 17.14.36510.44 |
|
||||
| Component.Microsoft.Web.LibraryManager | 17.14.36510.44 |
|
||||
| Component.Microsoft.WebTools.BrowserLink.WebLivePreview | 17.14.2.50506 |
|
||||
| Component.Microsoft.Windows.DriverKit | 10.0.26100.12 |
|
||||
| Component.Microsoft.Windows.DriverKit | 10.0.26100.15 |
|
||||
| Component.OpenJDK | 17.14.36510.44 |
|
||||
| Component.UnityEngine.x64 | 17.14.36510.44 |
|
||||
| Component.Unreal.Debugger | 17.14.36510.44 |
|
||||
| Component.Unreal.Ide | 17.14.36510.44 |
|
||||
| Component.VisualStudio.GitHub.Copilot | 17.14.36614.30 |
|
||||
| Component.VisualStudio.GitHub.Copilot | 17.14.36804.6 |
|
||||
| Component.VSInstallerProjects2022 | 2.0.1 |
|
||||
| Component.WixToolset.VisualStudioExtension.Dev17 | 1.0.0.22 |
|
||||
| Component.WixToolset.VisualStudioExtension.Schemas3 | 1.0.0.22 |
|
||||
| ComponentGroup.Microsoft.NET.AppModernization | 17.14.36614.33 |
|
||||
| ComponentGroup.Microsoft.NET.AppModernization | 17.14.36705.20 |
|
||||
| ios | 26.0.9752.0 |
|
||||
| maccatalyst | 26.0.9752.0 |
|
||||
| maui.blazor | 9.0.111.6930 |
|
||||
@@ -276,19 +270,19 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Microsoft.Net.ComponentGroup.4.8.DeveloperTools | 17.14.36510.44 |
|
||||
| Microsoft.Net.ComponentGroup.DevelopmentPrerequisites | 17.14.36510.44 |
|
||||
| Microsoft.Net.ComponentGroup.TargetingPacks.Common | 17.14.36510.44 |
|
||||
| microsoft.net.runtime.android | 9.0.1025.47515 |
|
||||
| microsoft.net.runtime.android.aot | 9.0.1025.47515 |
|
||||
| microsoft.net.runtime.android.aot.net8 | 9.0.1025.47515 |
|
||||
| microsoft.net.runtime.android.net8 | 9.0.1025.47515 |
|
||||
| microsoft.net.runtime.ios | 9.0.1025.47515 |
|
||||
| microsoft.net.runtime.maccatalyst | 9.0.1025.47515 |
|
||||
| microsoft.net.runtime.mono.tooling | 9.0.1025.47515 |
|
||||
| microsoft.net.runtime.mono.tooling.net8 | 9.0.1025.47515 |
|
||||
| microsoft.net.sdk.emscripten | 9.0.12.46904 |
|
||||
| microsoft.net.runtime.android | 9.0.1125.51309 |
|
||||
| microsoft.net.runtime.android.aot | 9.0.1125.51309 |
|
||||
| microsoft.net.runtime.android.aot.net8 | 9.0.1125.51309 |
|
||||
| microsoft.net.runtime.android.net8 | 9.0.1125.51309 |
|
||||
| microsoft.net.runtime.ios | 9.0.1125.51309 |
|
||||
| microsoft.net.runtime.maccatalyst | 9.0.1125.51309 |
|
||||
| microsoft.net.runtime.mono.tooling | 9.0.1125.51309 |
|
||||
| microsoft.net.runtime.mono.tooling.net8 | 9.0.1125.51309 |
|
||||
| microsoft.net.sdk.emscripten | 9.0.13.1604 |
|
||||
| Microsoft.NetCore.Component.DevelopmentTools | 17.14.36510.44 |
|
||||
| Microsoft.NetCore.Component.Runtime.8.0 | 17.14.36602.14 |
|
||||
| Microsoft.NetCore.Component.Runtime.9.0 | 17.14.36602.14 |
|
||||
| Microsoft.NetCore.Component.SDK | 17.14.36602.14 |
|
||||
| Microsoft.NetCore.Component.Runtime.8.0 | 17.14.36705.7 |
|
||||
| Microsoft.NetCore.Component.Runtime.9.0 | 17.14.36717.8 |
|
||||
| Microsoft.NetCore.Component.SDK | 17.14.36717.8 |
|
||||
| Microsoft.NetCore.Component.Web | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.AppInsights.Tools | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.AspNet | 17.14.36510.44 |
|
||||
@@ -310,7 +304,6 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Microsoft.VisualStudio.Component.DockerTools | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.DotNetModelBuilder | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.DslTools | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.Embedded | 17.14.36517.7 |
|
||||
| Microsoft.VisualStudio.Component.EntityFramework | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.FSharp | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.FSharp.Desktop | 17.14.36510.44 |
|
||||
@@ -320,7 +313,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Microsoft.VisualStudio.Component.Graphics.Tools | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.HLSL | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.IISExpress | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.IntelliCode | 17.14.36511.5 |
|
||||
| Microsoft.VisualStudio.Component.IntelliCode | 17.14.36621.7 |
|
||||
| Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.JavaScript.Diagnostics | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.JavaScript.TypeScript | 17.14.36510.44 |
|
||||
@@ -389,7 +382,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Microsoft.VisualStudio.Component.Web | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.WebDeploy | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.Windows10SDK | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.Windows11SDK.26100 | 17.14.36614.30 |
|
||||
| Microsoft.VisualStudio.Component.Windows11SDK.26100 | 17.14.36804.6 |
|
||||
| Microsoft.VisualStudio.Component.Windows11Sdk.WindowsPerformanceToolkit | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.WindowsAppSdkSupport.CSharp | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.Component.Workflow | 17.14.36510.44 |
|
||||
@@ -408,7 +401,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Microsoft.VisualStudio.ComponentGroup.Maui.Windows | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.ComponentGroup.MSIX.Packaging | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang | 17.14.36802.14 |
|
||||
| Microsoft.VisualStudio.ComponentGroup.UWP.NetCoreAndStandard | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.ComponentGroup.UWP.VC.v142 | 17.14.36510.44 |
|
||||
| Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64 | 17.14.36510.44 |
|
||||
@@ -426,10 +419,10 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Microsoft.VisualStudio.Workload.DataScience | 17.14.36015.10 |
|
||||
| Microsoft.VisualStudio.Workload.ManagedDesktop | 17.14.36518.2 |
|
||||
| Microsoft.VisualStudio.Workload.ManagedGame | 17.14.36301.6 |
|
||||
| Microsoft.VisualStudio.Workload.NativeCrossPlat | 17.14.36526.15 |
|
||||
| Microsoft.VisualStudio.Workload.NativeCrossPlat | 17.14.36716.0 |
|
||||
| Microsoft.VisualStudio.Workload.NativeDesktop | 17.14.36517.7 |
|
||||
| Microsoft.VisualStudio.Workload.NativeGame | 17.14.36331.10 |
|
||||
| Microsoft.VisualStudio.Workload.NativeMobile | 17.14.36015.10 |
|
||||
| Microsoft.VisualStudio.Workload.NativeMobile | 17.14.36802.14 |
|
||||
| Microsoft.VisualStudio.Workload.NetCrossPlat | 17.14.36518.2 |
|
||||
| Microsoft.VisualStudio.Workload.NetWeb | 17.14.36518.2 |
|
||||
| Microsoft.VisualStudio.Workload.Node | 17.14.36517.7 |
|
||||
@@ -437,15 +430,15 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Microsoft.VisualStudio.Workload.Python | 17.14.36015.10 |
|
||||
| Microsoft.VisualStudio.Workload.Universal | 17.14.36331.10 |
|
||||
| Microsoft.VisualStudio.Workload.VisualStudioExtension | 17.14.36015.10 |
|
||||
| runtimes.ios | 9.0.1025.47515 |
|
||||
| runtimes.maccatalyst | 9.0.1025.47515 |
|
||||
| wasm.tools | 9.0.1025.47515 |
|
||||
| ProBITools.MicrosoftAnalysisServicesModelingProjects2022 | 3.0.4 |
|
||||
| ProBITools.MicrosoftReportProjectsforVisualStudio2022 | 3.0.1 |
|
||||
| SSIS.MicrosoftDataToolsIntegrationServices | 2.0 |
|
||||
| runtimes.ios | 9.0.1125.51309 |
|
||||
| runtimes.maccatalyst | 9.0.1125.51309 |
|
||||
| wasm.tools | 9.0.1125.51309 |
|
||||
| ProBITools.MicrosoftAnalysisServicesModelingProjects2022 | 4.0.0 |
|
||||
| ProBITools.MicrosoftReportProjectsforVisualStudio2022 | 4.0.0 |
|
||||
| SSIS.MicrosoftDataToolsIntegrationServices | 2.1.2 |
|
||||
| VisualStudioClient.MicrosoftVisualStudio2022InstallerProjects | 2.0.1 |
|
||||
| Windows Driver Kit Visual Studio Extension | 10.0.26100.12 |
|
||||
| Windows Software Development Kit | 10.1.26100.6584 |
|
||||
| Windows Driver Kit Visual Studio Extension | 10.0.26100.15 |
|
||||
| Windows Software Development Kit | 10.1.26100.7175 |
|
||||
| WixToolset.WixToolsetVisualStudio2022Extension | 1.0.0.22 |
|
||||
|
||||
#### Microsoft Visual C++
|
||||
@@ -464,22 +457,22 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
- 10.0.26100.0
|
||||
|
||||
### .NET Core 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
|
||||
- .NET Core SDK: 8.0.122, 8.0.206, 8.0.319, 8.0.416, 9.0.112, 9.0.205, 9.0.308, 10.0.101
|
||||
- .NET Framework: 4.8, 4.8.1
|
||||
- Microsoft.AspNetCore.App: 8.0.6, 8.0.21, 9.0.6, 9.0.10
|
||||
- Microsoft.NETCore.App: 8.0.6, 8.0.21, 9.0.6, 9.0.10
|
||||
- Microsoft.WindowsDesktop.App: 8.0.6, 8.0.21, 9.0.6, 9.0.10
|
||||
- nbgv 3.8.118+69b3e0b5a0
|
||||
- Microsoft.AspNetCore.App: 8.0.6, 8.0.22, 9.0.6, 9.0.11, 10.0.1
|
||||
- Microsoft.NETCore.App: 8.0.6, 8.0.22, 9.0.6, 9.0.11, 10.0.1
|
||||
- Microsoft.WindowsDesktop.App: 8.0.6, 8.0.22, 9.0.6, 9.0.11, 10.0.1
|
||||
- nbgv 3.9.50+6feeb89450
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.4.13
|
||||
|
||||
#### Powershell Modules
|
||||
- Az: 12.5.0
|
||||
- AWSPowershell: 5.0.79
|
||||
- AWSPowershell: 5.0.117
|
||||
- DockerMsftProvider: 1.0.0.8
|
||||
- MarkdownPS: 1.10
|
||||
- Microsoft.Graph: 2.32.0
|
||||
- Microsoft.Graph: 2.33.0
|
||||
- Pester: 3.4.0, 5.7.1
|
||||
- PowerShellGet: 1.0.0.1, 2.2.5
|
||||
- PSScriptAnalyzer: 1.24.0
|
||||
@@ -491,15 +484,15 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| Package Name | Version |
|
||||
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 16.0 |
|
||||
| Android Emulator | 36.2.12 |
|
||||
| Android Emulator | 36.3.10 |
|
||||
| Android SDK Build-tools | 36.0.0 36.1.0<br>35.0.0 35.0.1<br>34.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 SDK Platform-Tools | 36.0.0 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.22.1<br>3.30.5<br>3.31.5 |
|
||||
| CMake | 3.30.5<br>3.31.5<br>4.1.2 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 26.3.11579264<br>27.3.13750724<br>28.2.13676358 |
|
||||
| NDK | 26.3.11579264<br>27.3.13750724<br>28.2.13676358<br>29.0.14206865 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -507,7 +500,6 @@ Note: MSYS2 is pre-installed on image but not added to PATH.
|
||||
| ANDROID_HOME | C:\Android\android-sdk |
|
||||
| ANDROID_NDK | C:\Android\android-sdk\ndk\27.3.13750724 |
|
||||
| ANDROID_NDK_HOME | C:\Android\android-sdk\ndk\27.3.13750724 |
|
||||
| ANDROID_NDK_LATEST_HOME | C:\Android\android-sdk\ndk\28.2.13676358 |
|
||||
| ANDROID_NDK_LATEST_HOME | C:\Android\android-sdk\ndk\29.0.14206865 |
|
||||
| ANDROID_NDK_ROOT | C:\Android\android-sdk\ndk\27.3.13750724 |
|
||||
| ANDROID_SDK_ROOT | C:\Android\android-sdk |
|
||||
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
################################################################################
|
||||
## File: Install-Runner.ps1
|
||||
## Desc: Install Runner for GitHub Actions
|
||||
## Supply chain security: none
|
||||
################################################################################
|
||||
|
||||
Write-Host "Download latest Runner for GitHub Actions"
|
||||
$downloadUrl = Resolve-GithubReleaseAssetUrl `
|
||||
-Repo "actions/runner" `
|
||||
-Version "latest" `
|
||||
-UrlMatchPattern "actions-runner-win-x64-*[0-9.].zip"
|
||||
$fileName = Split-Path $downloadUrl -Leaf
|
||||
New-Item -Path "C:\ProgramData\runner" -ItemType Directory
|
||||
Invoke-DownloadWithRetry -Url $downloadUrl -Path "C:\ProgramData\runner\$fileName"
|
||||
|
||||
Invoke-PesterTests -TestFile "RunnerCache"
|
||||
@@ -206,11 +206,11 @@ function Get-VsixInfoFromMarketplace {
|
||||
# ProBITools.MicrosoftReportProjectsforVisualStudio2022 has different URL
|
||||
# https://github.com/actions/runner-images/issues/5340
|
||||
"ProBITools.MicrosoftReportProjectsforVisualStudio2022" {
|
||||
$assetUri = "https://download.microsoft.com/download/b/b/5/bb57be7e-ae72-4fc0-b528-d0ec224997bd"
|
||||
$assetUri = "https://download.microsoft.com/download/1fd275d8-5163-476b-910b-e2f678b3fdbc"
|
||||
$fileName = "Microsoft.DataTools.ReportingServices.vsix"
|
||||
}
|
||||
"ProBITools.MicrosoftAnalysisServicesModelingProjects2022" {
|
||||
$assetUri = "https://download.microsoft.com/download/c/8/9/c896a7f2-d0fd-45ac-90e6-ff61f67523cb"
|
||||
$assetUri = "https://download.microsoft.com/download/7c91cb5c-1e9c-4df7-a053-d2852e22c658"
|
||||
$fileName = "Microsoft.DataTools.AnalysisServices.vsix"
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
Describe "RunnerCache" {
|
||||
Context "runner cache directory not empty" {
|
||||
It "C:\ProgramData\runner" {
|
||||
(Get-ChildItem -Path "C:\ProgramData\runner\*.zip" -Recurse).Count | Should -BeGreaterThan 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -101,7 +101,6 @@ build {
|
||||
"${path.root}/../scripts/build/Install-DockerCompose.ps1",
|
||||
"${path.root}/../scripts/build/Install-PowershellCore.ps1",
|
||||
"${path.root}/../scripts/build/Install-WebPlatformInstaller.ps1",
|
||||
"${path.root}/../scripts/build/Install-Runner.ps1",
|
||||
"${path.root}/../scripts/build/Install-TortoiseSvn.ps1"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -91,7 +91,6 @@ build {
|
||||
"${path.root}/../scripts/build/Install-DockerCompose.ps1",
|
||||
"${path.root}/../scripts/build/Install-PowershellCore.ps1",
|
||||
"${path.root}/../scripts/build/Install-WebPlatformInstaller.ps1",
|
||||
"${path.root}/../scripts/build/Install-Runner.ps1",
|
||||
"${path.root}/../scripts/build/Install-TortoiseSvn.ps1"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -91,8 +91,7 @@ provisioner "powershell" {
|
||||
"${path.root}/../scripts/build/Install-DockerWinCred.ps1",
|
||||
"${path.root}/../scripts/build/Install-DockerCompose.ps1",
|
||||
"${path.root}/../scripts/build/Install-PowershellCore.ps1",
|
||||
"${path.root}/../scripts/build/Install-WebPlatformInstaller.ps1",
|
||||
"${path.root}/../scripts/build/Install-Runner.ps1"
|
||||
"${path.root}/../scripts/build/Install-WebPlatformInstaller.ps1"
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@@ -1,24 +1,19 @@
|
||||
locals {
|
||||
image_properties_map = {
|
||||
"win19" = {
|
||||
publisher = "MicrosoftWindowsServer"
|
||||
offer = "WindowsServer"
|
||||
sku = "2019-Datacenter"
|
||||
os_disk_size_gb = coalesce(var.os_disk_size_gb, 256)
|
||||
source_image_marketplace_sku = "MicrosoftWindowsServer:WindowsServer:2019-Datacenter"
|
||||
os_disk_size_gb = 256
|
||||
},
|
||||
"win22" = {
|
||||
publisher = "MicrosoftWindowsServer"
|
||||
offer = "WindowsServer"
|
||||
sku = "2022-Datacenter"
|
||||
os_disk_size_gb = coalesce(var.os_disk_size_gb, 256)
|
||||
source_image_marketplace_sku = "MicrosoftWindowsServer:WindowsServer:2022-Datacenter"
|
||||
os_disk_size_gb = 256
|
||||
},
|
||||
"win25" = {
|
||||
publisher = "MicrosoftWindowsServer"
|
||||
offer = "WindowsServer"
|
||||
sku = "2025-Datacenter"
|
||||
os_disk_size_gb = coalesce(var.os_disk_size_gb, 150)
|
||||
source_image_marketplace_sku = "MicrosoftWindowsServer:WindowsServer:2025-Datacenter"
|
||||
os_disk_size_gb = 150
|
||||
}
|
||||
}
|
||||
|
||||
image_properties = local.image_properties_map[var.image_os]
|
||||
source_image_marketplace_sku = local.image_properties_map[var.image_os].source_image_marketplace_sku
|
||||
os_disk_size_gb = coalesce(var.os_disk_size_gb, local.image_properties_map[var.image_os].os_disk_size_gb)
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user