Compare commits

..
198 changed files with 3172 additions and 5143 deletions
-3
View File
@@ -38,13 +38,10 @@ body:
options: options:
- label: Ubuntu 20.04 - label: Ubuntu 20.04
- label: Ubuntu 22.04 - label: Ubuntu 22.04
- label: Ubuntu 24.04
- label: macOS 11 - label: macOS 11
- label: macOS 12 - label: macOS 12
- label: macOS 13 - label: macOS 13
- label: macOS 13 Arm64 - label: macOS 13 Arm64
- label: macOS 14
- label: macOS 14 Arm64
- label: Windows Server 2019 - label: Windows Server 2019
- label: Windows Server 2022 - label: Windows Server 2022
- type: textarea - type: textarea
-3
View File
@@ -21,13 +21,10 @@ body:
options: options:
- label: Ubuntu 20.04 - label: Ubuntu 20.04
- label: Ubuntu 22.04 - label: Ubuntu 22.04
- label: Ubuntu 24.04
- label: macOS 11 - label: macOS 11
- label: macOS 12 - label: macOS 12
- label: macOS 13 - label: macOS 13
- label: macOS 13 Arm64 - label: macOS 13 Arm64
- label: macOS 14
- label: macOS 14 Arm64
- label: Windows Server 2019 - label: Windows Server 2019
- label: Windows Server 2022 - label: Windows Server 2022
- type: textarea - type: textarea
-3
View File
@@ -59,13 +59,10 @@ body:
options: options:
- label: Ubuntu 20.04 - label: Ubuntu 20.04
- label: Ubuntu 22.04 - label: Ubuntu 22.04
- label: Ubuntu 24.04
- label: macOS 11 - label: macOS 11
- label: macOS 12 - label: macOS 12
- label: macOS 13 - label: macOS 13
- label: macOS 13 Arm64 - label: macOS 13 Arm64
- label: macOS 14
- label: macOS 14 Arm64
- label: Windows Server 2019 - label: Windows Server 2019
- label: Windows Server 2022 - label: Windows Server 2022
- type: textarea - type: textarea
+4 -4
View File
@@ -40,11 +40,11 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning. # Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@v3 uses: github/codeql-action/init@v2
with: with:
languages: ${{ matrix.language }} languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file. # If you wish to specify custom queries, you can do so here or in a config file.
@@ -55,7 +55,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below) # If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild - name: Autobuild
uses: github/codeql-action/autobuild@v3 uses: github/codeql-action/autobuild@v2
# ️ Command-line programs to run using the OS shell. # ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl # 📚 https://git.io/JvXDl
@@ -69,4 +69,4 @@ jobs:
# make release # make release
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3 uses: github/codeql-action/analyze@v2
+7 -5
View File
@@ -10,13 +10,15 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v3
- name: Create release for ${{ github.event.client_payload.ReleaseBranchName }} - name: Create release for ${{ github.event.client_payload.ReleaseBranchName }}
uses: ncipollo/release-action@v1.14.0 uses: actions/create-release@v1.1.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
tag: ${{ github.event.client_payload.ReleaseBranchName }} tag_name: ${{ github.event.client_payload.ReleaseBranchName }}
name: ${{ github.event.client_payload.ReleaseTitle }} release_name: ${{ github.event.client_payload.ReleaseTitle }}
body: ${{ github.event.client_payload.ReleaseBody }} body: ${{ github.event.client_payload.ReleaseBody }}
prerelease: ${{ github.event.client_payload.Prerelease }} prerelease: ${{ github.event.client_payload.Prerelease }}
commit: ${{ github.event.client_payload.Commitish }} commitish: ${{ github.event.client_payload.Commitish }}
+5 -5
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v3
with: with:
fetch-depth: 0 fetch-depth: 0
@@ -22,11 +22,11 @@ jobs:
- name: Create pull request for ${{ github.event.client_payload.ReleaseBranchName }} - name: Create pull request for ${{ github.event.client_payload.ReleaseBranchName }}
id: create-pr id: create-pr
uses: actions/github-script@v7 uses: actions/github-script@v2
with: with:
github-token: ${{secrets.GITHUB_TOKEN}} github-token: ${{secrets.GITHUB_TOKEN}}
script: | script: |
let response = await github.rest.pulls.create({ let response = await github.pulls.create({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
title: "${{ github.event.client_payload.PullRequestTitle }}", title: "${{ github.event.client_payload.PullRequestTitle }}",
@@ -37,11 +37,11 @@ jobs:
return response.data.number return response.data.number
- name: Request reviewers - name: Request reviewers
uses: actions/github-script@v7 uses: actions/github-script@v2
with: with:
github-token: ${{secrets.PRAPPROVAL_SECRET}} github-token: ${{secrets.PRAPPROVAL_SECRET}}
script: | script: |
github.rest.pulls.requestReviewers({ github.pulls.requestReviewers({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
pull_number: ${{ steps.create-pr.outputs.result }}, pull_number: ${{ steps.create-pr.outputs.result }},
+2 -2
View File
@@ -58,7 +58,7 @@ jobs:
run: curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b D:/syft run: curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b D:/syft
- name: Install SYFT tool on Ubuntu or macOS - name: Install SYFT tool on Ubuntu or macOS
if: ${{ runner.os != 'Windows' }} if: ${{ runner.os != 'Windows' }}
run: curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin v0.100.0 run: curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
#Running section. #Running section.
- name: Run SYFT on Windows - name: Run SYFT on Windows
if: ${{ runner.os == 'Windows' }} if: ${{ runner.os == 'Windows' }}
@@ -74,7 +74,7 @@ jobs:
- name: Compress SBOM file - name: Compress SBOM file
run: Compress-Archive sbom.json sbom.json.zip run: Compress-Archive sbom.json sbom.json.zip
#Upload artifact action #Upload artifact action
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v3
with: with:
name: sbom-${{ github.event.client_payload.agentSpec }}-${{ github.event.client_payload.imageVersion }} name: sbom-${{ github.event.client_payload.agentSpec }}-${{ github.event.client_payload.imageVersion }}
path: sbom.json.zip path: sbom.json.zip
+1 -1
View File
@@ -17,7 +17,7 @@ jobs:
steps: steps:
- name: Checkout Code - name: Checkout Code
uses: actions/checkout@v4 uses: actions/checkout@v3
with: with:
fetch-depth: 0 fetch-depth: 0
+5 -5
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v3
with: with:
fetch-depth: 0 fetch-depth: 0
@@ -24,11 +24,11 @@ jobs:
sleep 30 sleep 30
- name: Approve pull request by GitHub-Actions bot - name: Approve pull request by GitHub-Actions bot
uses: actions/github-script@v7 uses: actions/github-script@v2
with: with:
github-token: ${{secrets.PRAPPROVAL_SECRET}} github-token: ${{secrets.PRAPPROVAL_SECRET}}
script: | script: |
github.rest.pulls.createReview({ github.pulls.createReview({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
pull_number: ${{ github.event.client_payload.PullRequestNumber }}, pull_number: ${{ github.event.client_payload.PullRequestNumber }},
@@ -36,11 +36,11 @@ jobs:
}); });
- name: Merge pull request for ${{ github.event.client_payload.ReleaseBranchName }} - name: Merge pull request for ${{ github.event.client_payload.ReleaseBranchName }}
uses: actions/github-script@v7 uses: actions/github-script@v2
with: with:
github-token: ${{secrets.GITHUB_TOKEN}} github-token: ${{secrets.GITHUB_TOKEN}}
script: | script: |
github.rest.pulls.merge({ github.pulls.merge({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
pull_number: ${{ github.event.client_payload.PullRequestNumber }}, pull_number: ${{ github.event.client_payload.PullRequestNumber }},
+1 -1
View File
@@ -15,7 +15,7 @@ jobs:
steps: steps:
- name: Checkout Repository - name: Checkout Repository
uses: actions/checkout@v4 uses: actions/checkout@v3
- name: Run Software Report module tests - name: Run Software Report module tests
shell: pwsh shell: pwsh
+4 -4
View File
@@ -10,19 +10,19 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v3
- name: Update release for ${{ github.event.client_payload.ReleaseBranchName }} - name: Update release for ${{ github.event.client_payload.ReleaseBranchName }}
uses: actions/github-script@v7 uses: actions/github-script@v2
with: with:
github-token: ${{secrets.GITHUB_TOKEN}} github-token: ${{secrets.GITHUB_TOKEN}}
script: | script: |
const response = await github.rest.repos.getReleaseByTag({ const response = await github.repos.getReleaseByTag({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
tag: "${{ github.event.client_payload.ReleaseBranchName }}" tag: "${{ github.event.client_payload.ReleaseBranchName }}"
}); });
github.rest.repos.updateRelease({ github.repos.updateRelease({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
release_id: response.data.id, release_id: response.data.id,
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2024 GitHub Copyright (c) 2023 GitHub
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
+11 -24
View File
@@ -19,26 +19,21 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
## Available Images ## Available Images
| Image | YAML Label | Included Software | Rollout Status of Latest Image Release | | Image | YAML Label | Included Software | Rollout Progress of Latest Image Release |
| --------------------|---------------------|--------------------|--------------------| | --------------------|---------------------|--------------------|---------------------|
| Ubuntu 24.04 <sup>beta</sup> | `ubuntu-24.04` | [ubuntu-24.04] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fmikhailkoliada%2F35b243dd6e217d041fe3dfa5b4e2e2ed%2Fraw%2Fubuntu24.json) | | Ubuntu 22.04 | `ubuntu-latest` or `ubuntu-22.04` | [ubuntu-22.04] | [![status22](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=ubuntu22&badge=1)](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=ubuntu22&redirect=1)
| Ubuntu 22.04 | `ubuntu-latest` or `ubuntu-22.04` | [ubuntu-22.04] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fmikhailkoliada%2F35b243dd6e217d041fe3dfa5b4e2e2ed%2Fraw%2Fubuntu22.json) | | Ubuntu 20.04 | `ubuntu-20.04` | [ubuntu-20.04] | [![status20](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=ubuntu20&badge=1)](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=ubuntu20&redirect=1)
| Ubuntu 20.04 | `ubuntu-20.04` | [ubuntu-20.04] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fmikhailkoliada%2F35b243dd6e217d041fe3dfa5b4e2e2ed%2Fraw%2Fubuntu20.json) | | macOS 13 [beta] | `macos-13` or `macos-13-xl`| [macOS-13] | [![statusumac13](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=macos-13&badge=1)](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=macos-13&redirect=1)
| macOS 14 | `macos-latest-large` or `macos-14-large`| [macOS-14] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fmikhailkoliada%2F35b243dd6e217d041fe3dfa5b4e2e2ed%2Fraw%2Fmacos-14.json) | | macOS 12 | `macos-latest`, `macos-latest-xl`, `macos-12`, or `macos-12-xl`| [macOS-12] | [![statusumac12](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=macos-12&badge=1)](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=macos-12&redirect=1)
| macOS 14 Arm64 |`macos-latest`, `macos-14`, `macos-latest-xlarge` or `macos-14-xlarge`| [macOS-14-arm64] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fmikhailkoliada%2F35b243dd6e217d041fe3dfa5b4e2e2ed%2Fraw%2Fmacos-14-arm64.json) | | macOS 11 | `macos-11`| [macOS-11] | [![statusmac11](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=macos-11&badge=1)](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=macos-11&redirect=1)
| macOS 13 | `macos-13` or `macos-13-large` | [macOS-13] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fmikhailkoliada%2F35b243dd6e217d041fe3dfa5b4e2e2ed%2Fraw%2Fmacos-13.json) | | Windows Server 2022 | `windows-latest` or `windows-2022` | [windows-2022] | [![statuswin22](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=windows-2022&badge=1)](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=windows-2022&redirect=1) |
| macOS 13 Arm64 | `macos-13-xlarge` | [macOS-13-arm64] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fmikhailkoliada%2F35b243dd6e217d041fe3dfa5b4e2e2ed%2Fraw%2Fmacos-13-arm64.json) | | Windows Server 2019 | `windows-2019` | [windows-2019] | [![statuswin19](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=windows-2019&badge=1)](https://gh-runnerimagesdeploymentstatus.azurewebsites.net/api/status?imageName=windows-2019&redirect=1)
| macOS 12 | `macos-12` or `macos-12-large`| [macOS-12] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fmikhailkoliada%2F35b243dd6e217d041fe3dfa5b4e2e2ed%2Fraw%2Fmacos-12.json) |
| macOS 11 <sup>deprecated</sup> | `macos-11`| [macOS-11] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fmikhailkoliada%2F35b243dd6e217d041fe3dfa5b4e2e2ed%2Fraw%2FmacOS-11.json) |
| Windows Server 2022 | `windows-latest` or `windows-2022` | [windows-2022] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fmikhailkoliada%2F35b243dd6e217d041fe3dfa5b4e2e2ed%2Fraw%2Fwin22.json) |
| Windows Server 2019 | `windows-2019` | [windows-2019] | ![Endpoint Badge](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2Fmikhailkoliada%2F35b243dd6e217d041fe3dfa5b4e2e2ed%2Fraw%2Fwin19.json) |
### Label scheme ### Label scheme
- In general the `-latest` label is used for the latest OS image version that is GA - In general the `-latest` label is used for the latest OS image version that is GA
- Before moving the`-latest` label to a new OS version we will announce the change and give sufficient lead time for users to update their workflows - Before moving the`-latest` label to a new OS version we will announce the change and give sufficient lead time for users to update their workflows
[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-22.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md
[ubuntu-20.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2004-Readme.md [ubuntu-20.04]: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2004-Readme.md
[windows-2022]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md [windows-2022]: https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md
@@ -46,9 +41,6 @@ To build a VM machine from this repo's source, see the [instructions](docs/creat
[macOS-11]: https://github.com/actions/runner-images/blob/main/images/macos/macos-11-Readme.md [macOS-11]: https://github.com/actions/runner-images/blob/main/images/macos/macos-11-Readme.md
[macOS-12]: https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md [macOS-12]: https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md
[macOS-13]: https://github.com/actions/runner-images/blob/main/images/macos/macos-13-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
[self-hosted runners]: https://help.github.com/en/actions/hosting-your-own-runners [self-hosted runners]: https://help.github.com/en/actions/hosting-your-own-runners
## Announcements ## Announcements
@@ -83,6 +75,7 @@ GitHub Actions and Azure DevOps use the `-latest` YAML label (ex: `ubuntu-latest
The `-latest` migration process is gradual and happens over 1-2 months in order to allow customers to adapt their workflows to the newest OS version. During this process, any workflow using the `-latest` label, may see changes in the OS version in their workflows or pipelines. To avoid unwanted migration, users can specify a specific OS version in the yaml file (ex: macos-12, windows-2022, ubuntu-22.04). The `-latest` migration process is gradual and happens over 1-2 months in order to allow customers to adapt their workflows to the newest OS version. During this process, any workflow using the `-latest` label, may see changes in the OS version in their workflows or pipelines. To avoid unwanted migration, users can specify a specific OS version in the yaml file (ex: macos-12, windows-2022, ubuntu-22.04).
## Image Releases ## Image Releases
*How to best follow along with changes* *How to best follow along with changes*
@@ -129,7 +122,7 @@ We use third-party package managers to install software during the image generat
| Operating system | Package manager | Third-party repos and packages | | Operating system | Package manager | Third-party repos and packages |
| :--- | :---: | ---: | | :--- | :---: | ---: |
| Ubuntu | [APT](https://wiki.debian.org/Apt) | [containers](https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) (Ubuntu 20 only) <br/> [docker](https://download.docker.com/linux/ubuntu) (Ubuntu20 0nly) <br/> [Eclipse-Temurin (Adoptium)](https://packages.adoptium.net/artifactory/deb/) <br/> [Erlang](https://packages.erlang-solutions.com/ubuntu) <br/> [Firefox](http://ppa.launchpad.net/mozillateam/ppa/ubuntu) <br/> [git-lfs](https://packagecloud.io/install/repositories/github/git-lfs) <br/> [git](https://launchpad.net/~git-core/+archive/ubuntu/ppa) <br/> [Google Cloud CLI](https://packages.cloud.google.com/apt) <br/> [Heroku](https://cli-assets.heroku.com/channels/stable/apt) <br/> [HHvm](https://dl.hhvm.com/ubuntu) <br/> [MongoDB](https://repo.mongodb.org/apt/ubuntu) <br/> [Mono](https://download.mono-project.com/repo/ubuntu) <br/> [MS Edge](https://packages.microsoft.com/repos/edge) <br/> [PostgreSQL](https://apt.postgresql.org/pub/repos/apt/) <br/> [R](https://cloud.r-project.org/bin/linux/ubuntu) | | Ubuntu | [APT](https://wiki.debian.org/Apt) | [containers](https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable) (Ubuntu 20 only) <br/> [docker](https://download.docker.com/linux/ubuntu) <br/> [Eclipse-Temurin (Adoptium)](https://packages.adoptium.net/artifactory/deb/) <br/> [Erlang](https://packages.erlang-solutions.com/ubuntu) <br/> [Firefox](http://ppa.launchpad.net/mozillateam/ppa/ubuntu) <br/> [gcc, gfortran](https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test) <br/> [git-lfs](https://packagecloud.io/install/repositories/github/git-lfs) <br/> [git](https://launchpad.net/~git-core/+archive/ubuntu/ppa) <br/> [Google Cloud CLI](https://packages.cloud.google.com/apt) <br/> [Heroku](https://cli-assets.heroku.com/channels/stable/apt) <br/> [HHvm](https://dl.hhvm.com/ubuntu) <br/> [MongoDB](https://repo.mongodb.org/apt/ubuntu) <br/> [Mono](https://download.mono-project.com/repo/ubuntu) <br/> [MS Edge](https://packages.microsoft.com/repos/edge) <br/> [PostgreSQL](https://apt.postgresql.org/pub/repos/apt/) <br/> [R](https://cloud.r-project.org/bin/linux/ubuntu) |
| | [pipx](https://pypa.github.io/pipx) | ansible-core <br/>yamllint | | | [pipx](https://pypa.github.io/pipx) | ansible-core <br/>yamllint |
| Windows | [Chocolatey](https://chocolatey.org) | No third-party repos installed | | Windows | [Chocolatey](https://chocolatey.org) | No third-party repos installed |
| macOS | [Homebrew](https://brew.sh) | [aws-cli v2](https://github.com/aws/homebrew-tap) </br> [azure/bicep](https://github.com/Azure/homebrew-bicep) </br> [mongodb/brew](https://github.com/mongodb/homebrew-brew) | | macOS | [Homebrew](https://brew.sh) | [aws-cli v2](https://github.com/aws/homebrew-tap) </br> [azure/bicep](https://github.com/Azure/homebrew-bicep) </br> [mongodb/brew](https://github.com/mongodb/homebrew-brew) |
@@ -206,9 +199,3 @@ For some tools, we always install the latest at the time of the deployment; for
<summary><b><i>How do I request that a new tool be pre-installed on the image?</b></i></summary> <summary><b><i>How do I request that a new tool be pre-installed on the image?</b></i></summary>
Please create an issue and get an approval from us to add this tool to the image before creating the pull request. Please create an issue and get an approval from us to add this tool to the image before creating the pull request.
</details> </details>
<details>
<summary><b><i>What branch should I use to build custom image?</b></i></summary>
We strongly encourage customers to build their own images using the main branch.
This repository contains multiple branches and releases that serve as document milestones to reflect what software is installed in the images at certain point of time. Current builds are not idempotent and if one tries to build a runner image using the specific tag it is not guaranteed that the build will succeed.
</details>
+26
View File
@@ -0,0 +1,26 @@
# Debugging Failed Packer Builds
## Step 1: Run packer build `-on-error=ask`
When you run the `packer build` command, give it the `-on-error=ask` flag.
By default, `packer build` will delete the resource group as soon as the build fails.
`-on-error=ask` will pause it and wait for your input so you have time to remote in to the VM and diagnose the failure.
When the build fails, you will see this:
![Ask on error screenshot](/docs/resources/askOnError.png "Ask on error screenshot")
## Step 2: Find the resource group name in the build log
At the beginning of the build log (written to console), find the resource group name for the VM:
![Resource group from log screenshot](/docs/resources/resourceGroupName.png "Resource group from log screenshot")
Log into the Azure Portal. Find that resource group under `Resource groups`. You should see the resources for the Packer build:
![Packer resource group in Azure screenshot](/docs/resources/packerResourceGroup.png "Packer resource group in Azure screenshot")
## Step 3: Connect to the VM
Select the VM in the resource group. Click `Connect:`
This will download an RDP file. Open that and enter the credentials found in the HCL2 file you pass to `packer build`:
![VM credentials screenshot](/docs/resources/vmCredentials.png "VM credentials screenshot")
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

+1 -1
View File
@@ -28,7 +28,7 @@ Function CreateAzureVMFromPackerTemplate {
The location where the Azure virtual machine will be provisioned. Example: "eastus" The location where the Azure virtual machine will be provisioned. Example: "eastus"
.EXAMPLE .EXAMPLE
CreateAzureVMFromPackerTemplate -SubscriptionId {SubscriptionId} -ResourceGroupName {ResourceGroupName} -VirtualMachineName "testvm1" -ManagedImageName {ManagedImageName} -AdminUsername "shady1" -AdminPassword "SomeSecurePassword1" -AzureLocation "eastus" CreateAzureVMFromPackerTemplate -SubscriptionId {YourSubscriptionId} -ResourceGroupName {ResourceGroupName} -TemplateFile "C:\BuildVmImages\temporaryTemplate.json" -VirtualMachineName "testvm1" -AdminUsername "shady1" -AdminPassword "SomeSecurePassword1" -AzureLocation "eastus"
#> #>
param ( param (
[Parameter(Mandatory = $True)] [Parameter(Mandatory = $True)]
+30 -14
View File
@@ -5,8 +5,7 @@ enum ImageType {
Windows2022 = 2 Windows2022 = 2
Ubuntu2004 = 3 Ubuntu2004 = 3
Ubuntu2204 = 4 Ubuntu2204 = 4
Ubuntu2404 = 5 UbuntuMinimal = 5
UbuntuMinimal = 6
} }
Function Get-PackerTemplatePath { Function Get-PackerTemplatePath {
@@ -31,9 +30,6 @@ Function Get-PackerTemplatePath {
([ImageType]::Ubuntu2204) { ([ImageType]::Ubuntu2204) {
$relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "ubuntu-22.04.pkr.hcl" $relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "ubuntu-22.04.pkr.hcl"
} }
([ImageType]::Ubuntu2404) {
$relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "ubuntu-24.04.pkr.hcl"
}
([ImageType]::UbuntuMinimal) { ([ImageType]::UbuntuMinimal) {
$relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "ubuntu-minimal.pkr.hcl" $relativeTemplatePath = Join-Path (Join-Path "ubuntu" "templates") "ubuntu-minimal.pkr.hcl"
} }
@@ -180,20 +176,30 @@ Function GenerateResourcesAndImage {
} }
Write-Host "Access to packer generated VM will be restricted to agent IP Address: $AgentIp." Write-Host "Access to packer generated VM will be restricted to agent IP Address: $AgentIp."
if ($PSVersionTable.PSVersion.Major -eq 5) { if ($TemplatePath.Contains("pkr.hcl")) {
Write-Verbose "PowerShell 5 detected. Replacing double quotes with escaped double quotes in allowed inbound IP addresses." if ($PSVersionTable.PSVersion.Major -eq 5) {
$AllowedInboundIpAddresses = '[\"{0}\"]' -f $AgentIp Write-Verbose "PowerShell 5 detected. Replacing double quotes with escaped double quotes in allowed inbound IP addresses."
} $AllowedInboundIpAddresses = '[\"{0}\"]' -f $AgentIp
elseif ($PSVersionTable.PSVersion.Major -eq 7 -and $PSVersionTable.PSVersion.Minor -le 2) { }
Write-Verbose "PowerShell 7.0-7.2 detected. Replacing double quotes with escaped double quotes in allowed inbound IP addresses." elseif ($PSVersionTable.PSVersion.Major -eq 7 -and $PSVersionTable.PSVersion.Minor -le 2) {
$AllowedInboundIpAddresses = '[\"{0}\"]' -f $AgentIp Write-Verbose "PowerShell 7.0-7.2 detected. Replacing double quotes with escaped double quotes in allowed inbound IP addresses."
$AllowedInboundIpAddresses = '[\"{0}\"]' -f $AgentIp
}
else {
$AllowedInboundIpAddresses = '["{0}"]' -f $AgentIp
}
} }
else { else {
$AllowedInboundIpAddresses = '["{0}"]' -f $AgentIp $AllowedInboundIpAddresses = $AgentIp
} }
} }
else { else {
$AllowedInboundIpAddresses = "[]" if ($TemplatePath.Contains("pkr.hcl")) {
$AllowedInboundIpAddresses = "[]"
}
else {
$AllowedInboundIpAddresses = ""
}
} }
Write-Debug "Allowed inbound IP addresses: $AllowedInboundIpAddresses." Write-Debug "Allowed inbound IP addresses: $AllowedInboundIpAddresses."
@@ -210,6 +216,16 @@ Function GenerateResourcesAndImage {
$TagsJson = $TagsJson -replace '"', '\"' $TagsJson = $TagsJson -replace '"', '\"'
} }
Write-Debug "Tags JSON: $TagsJson." Write-Debug "Tags JSON: $TagsJson."
if ($TemplatePath.Contains(".json")) {
Write-Verbose "Injecting tags into packer template."
if ($Tags) {
$BuilderScriptPathInjected = $TemplatePath.Replace(".json", "-temp.json")
$PackerTemplateContent = Get-Content -Path $TemplatePath | ConvertFrom-Json
$PackerTemplateContent.builders | Add-Member -Name "azure_tags" -Value $Tags -MemberType NoteProperty
$PackerTemplateContent | ConvertTo-Json -Depth 3 | Out-File -Encoding Ascii $BuilderScriptPathInjected
$TemplatePath = $BuilderScriptPathInjected
}
}
$InstallPassword = $env:UserName + [System.GUID]::NewGuid().ToString().ToUpper() $InstallPassword = $env:UserName + [System.GUID]::NewGuid().ToString().ToUpper()
@@ -13,15 +13,15 @@ class BaseNode {
} }
[String] ToMarkdown([Int32] $Level) { [String] ToMarkdown([Int32] $Level) {
throw "Abstract method 'ToMarkdown(level)' is not implemented for '$($this.GetType().Name)'" throw "Abtract method 'ToMarkdown(level)' is not implemented for '$($this.GetType().Name)'"
} }
[Boolean] IsSimilarTo([BaseNode] $OtherNode) { [Boolean] IsSimilarTo([BaseNode] $OtherNode) {
throw "Abstract method 'IsSimilarTo' is not implemented for '$($this.GetType().Name)'" throw "Abtract method 'IsSimilarTo' is not implemented for '$($this.GetType().Name)'"
} }
[Boolean] IsIdenticalTo([BaseNode] $OtherNode) { [Boolean] IsIdenticalTo([BaseNode] $OtherNode) {
throw "Abstract method 'IsIdenticalTo' is not implemented for '$($this.GetType().Name)'" throw "Abtract method 'IsIdenticalTo' is not implemented for '$($this.GetType().Name)'"
} }
} }
@@ -39,7 +39,7 @@ class BaseToolNode: BaseNode {
} }
[String] GetValue() { [String] GetValue() {
throw "Abstract method 'GetValue' is not implemented for '$($this.GetType().Name)'" throw "Abtract method 'GetValue' is not implemented for '$($this.GetType().Name)'"
} }
[Boolean] IsSimilarTo([BaseNode] $OtherNode) { [Boolean] IsSimilarTo([BaseNode] $OtherNode) {
@@ -53,4 +53,4 @@ class BaseToolNode: BaseNode {
[Boolean] IsIdenticalTo([BaseNode] $OtherNode) { [Boolean] IsIdenticalTo([BaseNode] $OtherNode) {
return $this.IsSimilarTo($OtherNode) -and ($this.GetValue() -eq $OtherNode.GetValue()) return $this.IsSimilarTo($OtherNode) -and ($this.GetValue() -eq $OtherNode.GetValue())
} }
} }
@@ -59,19 +59,24 @@ jobs:
arguments: -RepoUrl $(CUSTOM_REPOSITORY_URL) ` arguments: -RepoUrl $(CUSTOM_REPOSITORY_URL) `
-RepoBranch $(CUSTOM_REPOSITORY_BRANCH) -RepoBranch $(CUSTOM_REPOSITORY_BRANCH)
- task: AzureCLI@2 - task: PowerShell@2
displayName: 'Set variables' displayName: 'Set variables'
inputs: inputs:
azureSubscription: 'spn-hosted-runners' targetType: 'inline'
scriptType: 'pscore' script: |
scriptLocation: 'inlineScript'
inlineScript: |
$ImageType = "${{ parameters.image_type }}" $ImageType = "${{ parameters.image_type }}"
$TemplateDirectoryName = if ($ImageType.StartsWith("ubuntu")) { "ubuntu/templates" } else { "windows/templates" } $TemplateDirectoryName = if ($ImageType.StartsWith("ubuntu")) { "ubuntu/templates" } else { "windows/templates" }
$TemplateDirectoryPath = Join-Path "images" $TemplateDirectoryName | Resolve-Path $TemplateDirectoryPath = Join-Path "images" $TemplateDirectoryName | Resolve-Path
$TemplateFileName = "${{ parameters.image_template_name }}" $TemplateFileName = "${{ parameters.image_template_name }}"
$TemplatePath = Join-Path $TemplateDirectoryPath $TemplateFileName if ($TemplateFileName) {
$TemplatePath = Join-Path $TemplateDirectoryPath $TemplateFileName
} else {
$TemplatePath = Join-Path $TemplateDirectoryPath "$ImageType.pkr.hcl"
if ( -not (Test-Path $TemplatePath) ) {
$TemplatePath = Join-Path $TemplateDirectoryPath "$ImageType.json"
}
}
Write-Host "##vso[task.setvariable variable=TemplateDirectoryPath;]$TemplateDirectoryPath" Write-Host "##vso[task.setvariable variable=TemplateDirectoryPath;]$TemplateDirectoryPath"
Write-Host "##vso[task.setvariable variable=TemplatePath;]$TemplatePath" Write-Host "##vso[task.setvariable variable=TemplatePath;]$TemplatePath"
@@ -81,16 +86,13 @@ jobs:
$TempResourceGroupName = "packer-temp-$ManagedImageName" $TempResourceGroupName = "packer-temp-$ManagedImageName"
Write-Host "##vso[task.setvariable variable=TempResourceGroupName;]$TempResourceGroupName" Write-Host "##vso[task.setvariable variable=TempResourceGroupName;]$TempResourceGroupName"
$clientSecret = $(az keyvault secret show --name "spnhostedrunners" --vault-name "gh-imagegeneration" --query value -o tsv)
Write-Host "##vso[task.setvariable variable=ClientSecret;issecret=true]$clientSecret"
- task: PowerShell@2 - task: PowerShell@2
displayName: 'Build VM' displayName: 'Build VM'
inputs: inputs:
targetType: filePath targetType: filePath
filePath: ./images.CI/linux-and-win/build-image.ps1 filePath: ./images.CI/linux-and-win/build-image.ps1
arguments: -ClientId $(CLIENT_ID) ` arguments: -ClientId $(CLIENT_ID) `
-ClientSecret "$(ClientSecret)" ` -ClientSecret $(CLIENT_SECRET) `
-TemplatePath $(TemplatePath) ` -TemplatePath $(TemplatePath) `
-ImageName "$(ManagedImageName)" ` -ImageName "$(ManagedImageName)" `
-ImageResourceGroupName $(AZURE_RESOURCE_GROUP) ` -ImageResourceGroupName $(AZURE_RESOURCE_GROUP) `
@@ -177,5 +179,5 @@ jobs:
arguments: -TempResourceGroupName "$(TempResourceGroupName)" ` arguments: -TempResourceGroupName "$(TempResourceGroupName)" `
-SubscriptionId $(AZURE_SUBSCRIPTION) ` -SubscriptionId $(AZURE_SUBSCRIPTION) `
-ClientId $(CLIENT_ID) ` -ClientId $(CLIENT_ID) `
-ClientSecret "$(ClientSecret)" ` -ClientSecret $(CLIENT_SECRET) `
-TenantId $(AZURE_TENANT) -TenantId $(AZURE_TENANT)
@@ -1,21 +0,0 @@
schedules:
- cron: "0 0 * * *"
displayName: Daily
branches:
include:
- main
always: true
trigger: none
pr:
autoCancel: true
branches:
include:
- main
jobs:
- template: image-generation.yml
parameters:
image_type: ubuntu2404
image_readme_name: Ubuntu2404-Readme.md
image_template_name: ubuntu-24.04.pkr.hcl
+1 -1
View File
@@ -13,7 +13,7 @@ function Push-AnkaTemplateToRegistry {
[string] $TemplateName [string] $TemplateName
) )
# if registry uuid doesn't match then delete an image in registry # if registry uuid doesn't match than delete an image in registry
$AnkaCaCrtPath="$HOME/.config/anka/certs/anka-ca-crt.pem" $AnkaCaCrtPath="$HOME/.config/anka/certs/anka-ca-crt.pem"
$images = anka --machine-readable registry --cacert $AnkaCaCrtPath --registry-path $RegistryUrl list | ConvertFrom-Json | ForEach-Object body $images = anka --machine-readable registry --cacert $AnkaCaCrtPath --registry-path $RegistryUrl list | ConvertFrom-Json | ForEach-Object body
$images | Where-Object name -eq $TemplateName | ForEach-Object { $images | Where-Object name -eq $TemplateName | ForEach-Object {
@@ -76,7 +76,7 @@ function Invoke-SoftwareUpdate {
$ipAddress = Get-AnkaVMIPAddress -VMName $TemplateName $ipAddress = Get-AnkaVMIPAddress -VMName $TemplateName
# Unenroll Seed # Unenroll Seed
Write-Host "`t[*] Resetting the seed before requesting stable versions" Write-Host "`t[*] Reseting the seed before requesting stable versions"
Remove-CurrentBetaSeed -HostName $ipAddress | Show-StringWithFormat Remove-CurrentBetaSeed -HostName $ipAddress | Show-StringWithFormat
# Install Software Updates # Install Software Updates
+2 -2
View File
@@ -171,11 +171,11 @@ function Get-MacOSInstaller {
Write-Host "`t[*] Beta Version requested. Enrolling machine to DeveloperSeed" Write-Host "`t[*] Beta Version requested. Enrolling machine to DeveloperSeed"
sudo $seedutil enroll DeveloperSeed | Out-Null sudo $seedutil enroll DeveloperSeed | Out-Null
} else { } else {
Write-Host "`t[*] Resetting the seed before requesting stable versions" Write-Host "`t[*] Reseting the seed before requesting stable versions"
sudo $seedutil unenroll | Out-Null sudo $seedutil unenroll | Out-Null
} }
# Validate there is no software update at the moment # Validate there is no softwareupdate at the moment
Test-SoftwareUpdate Test-SoftwareUpdate
# Validate availability OSVersion # Validate availability OSVersion
@@ -4,10 +4,8 @@ jobs:
timeoutInMinutes: 1200 timeoutInMinutes: 1200
pool: pool:
name: Mac-Cloud Image Generation name: Mac-Cloud Image Generation
demands:
- PrimaryRackAgent -equals ${{ parameters.primary_agent }}
variables: variables:
- group: ${{ parameters.variable_group_name }} - group: Mac-Cloud Image Generation
steps: steps:
- pwsh: | - pwsh: |
@@ -14,9 +14,6 @@ pr:
include: include:
- main - main
variables:
- group: Mac-Cloud Image Generation
jobs: jobs:
- template: image-generation.yml - template: image-generation.yml
parameters: parameters:
@@ -24,5 +21,3 @@ jobs:
base_image_name: 'clean-macOS-11-380Gb-runner' base_image_name: 'clean-macOS-11-380Gb-runner'
template_path: 'templates/macOS-11.pkr.hcl' template_path: 'templates/macOS-11.pkr.hcl'
target_datastore: 'ds-image' target_datastore: 'ds-image'
variable_group_name: 'Mac-Cloud Image Generation'
primary_agent: 'true'
@@ -14,9 +14,6 @@ pr:
include: include:
- main - main
variables:
- group: Mac-Cloud Image Generation
jobs: jobs:
- template: image-generation.yml - template: image-generation.yml
parameters: parameters:
@@ -24,5 +21,3 @@ jobs:
base_image_name: 'clean-macOS-12-380Gb-runner' base_image_name: 'clean-macOS-12-380Gb-runner'
template_path: 'templates/macOS-12.pkr.hcl' template_path: 'templates/macOS-12.pkr.hcl'
target_datastore: 'ds-image' target_datastore: 'ds-image'
variable_group_name: 'Mac-Cloud Image Generation'
primary_agent: 'true'
@@ -1,23 +0,0 @@
name: macOS-11_$(date:yyyyMMdd)$(rev:.r)_unstable
schedules:
- cron: '45 0 * * 1'
displayName: Weekly
branches:
include:
- main
always: true
trigger: none
variables:
- group: Mac-Cloud Image Generation
jobs:
- template: image-generation.yml
parameters:
image_label: 'macOS Big Sur'
base_image_name: 'clean-macOS-11-380Gb-runner'
template_path: 'templates/macOS-11.pkr.hcl'
target_datastore: 'ds-image'
variable_group_name: 'Mac-Cloud Secondary Image Generation'
primary_agent: 'false'
@@ -1,23 +0,0 @@
name: macOS-12_$(date:yyyyMMdd)$(rev:.r)_unstable
schedules:
- cron: '45 1 * * 1'
displayName: Weekly
branches:
include:
- main
always: true
trigger: none
variables:
- group: Mac-Cloud Image Generation
jobs:
- template: image-generation.yml
parameters:
image_label: 'macOS Monterey'
base_image_name: 'clean-macOS-12-380Gb-runner'
template_path: 'templates/macOS-12.pkr.hcl'
target_datastore: 'ds-image'
variable_group_name: 'Mac-Cloud Secondary Image Generation'
primary_agent: 'false'
@@ -11,7 +11,7 @@ LICENSE_BLOCK
USERNAME="${1}" USERNAME="${1}"
PW="${2}" PW="${2}"
kcpasswordEncode() { function kcpasswordEncode {
#ascii string #ascii string
local thisString="${1}" local thisString="${1}"
local i local i
@@ -23,7 +23,7 @@ change_framework_version() {
echo "Select $framework $version" echo "Select $framework $version"
local countDigit=$(echo "${version}" | grep -o "\." | grep -c "\.") local countDigit=$(echo "${version}" | grep -o "\." | grep -c "\.")
if [[ countDigit -gt 1 ]]; then if [[ countDigit -gt 1 ]]; then
echo "[WARNING] It is not recommended to specify the exact framework version because your build can be broken with the next patch update. Consider using "major.minor" only format." echo "[WARNING] It is not recommended to specify the exact framework version because your build can be broken with the next patch update. Consider using "major.minor" only format."
fi fi
@@ -31,7 +31,7 @@ change_framework_version() {
local framework_path=$(get_framework_path "$framework") local framework_path=$(get_framework_path "$framework")
if [ -d "${framework_path}/${version}" ]; then if [ -d "${framework_path}/${version}" ]; then
sudo rm -f ${framework_path}/Current sudo rm -f "${framework_path}/Current"
sudo ln -s "${framework_path}/${version}" "${framework_path}/Current" sudo ln -s "${framework_path}/${version}" "${framework_path}/Current"
else else
echo "Invalid framework version ${framework_path}/${version}" echo "Invalid framework version ${framework_path}/${version}"
@@ -46,7 +46,7 @@ for arg in "$@"; do
case $key in case $key in
--mono | --ios | --android | --mac) change_framework_version $key $value ;; --mono | --ios | --android | --mac) change_framework_version $key $value ;;
*) *)
echo "Invalid parameter <${key}>" echo "Invalid parameter <${key}>"
exit 1 exit 1
;; ;;
esac esac
+74 -70
View File
@@ -1,16 +1,17 @@
| Announcements | | Announcements |
|-| |-|
| [[All OSes] Powershell Core will be updated to 7.4.x LTS on January, 28](https://github.com/actions/runner-images/issues/9115) | | [Old versions of Android SDK & tools will be removed from images on January, 8](https://github.com/actions/runner-images/issues/8952) |
| [Major Refactoring of GitHub Actions Runner Images Repository](https://github.com/actions/runner-images/issues/8706) |
*** ***
# macOS 11 # macOS 11
- OS Version: macOS 11.7.10 (20G1427) - OS Version: macOS 11.7.10 (20G1427)
- Kernel Version: Darwin 20.6.0 - Kernel Version: Darwin 20.6.0
- Image Version: 20240127.1 - Image Version: 20231216.1
## Installed Software ## Installed Software
### Language and Runtime ### Language and Runtime
- .NET Core SDK: 6.0.418, 7.0.102, 7.0.202, 7.0.306, 7.0.405, 8.0.101 - .NET Core SDK: 6.0.417, 7.0.102, 7.0.202, 7.0.306, 7.0.404, 8.0.100
- Bash 3.2.57(1)-release - Bash 3.2.57(1)-release
- Clang/LLVM 13.0.0 - Clang/LLVM 13.0.0
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang` - Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
@@ -20,15 +21,16 @@
- GNU Fortran 10 (Homebrew GCC 10.5.0) - available by `gfortran-10` alias - GNU Fortran 10 (Homebrew GCC 10.5.0) - available by `gfortran-10` alias
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias - GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
- GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias - GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias
- Julia 1.10.0 - Julia 1.9.4
- Kotlin 1.9.22-release-704 - Kotlin 1.9.21-release-633
- Go 1.20.13 - Go 1.20.12
- Mono 6.12.0.188 - Mono 6.12.0.188
- Node.js 18.19.0 - Node.js 18.19.0
- MSBuild 16.10.1.51301 (Mono 6.12.0.188) - MSBuild 16.10.1.51301 (Mono 6.12.0.188)
- NVM 0.39.7 - NVM 0.39.7
- NVM - Cached node versions: 16.20.2, 18.19.0, 20.11.0 - NVM - Cached node versions: 16.20.2, 18.19.0, 20.10.0
- Perl 5.38.2 - Perl 5.38.2
- PHP 8.3.0
- Python 2.7.18 - Python 2.7.18
- Python3 3.12.1 - Python3 3.12.1
- R 4.3.2 - R 4.3.2
@@ -38,15 +40,16 @@
- Bundler 2.4.22 - Bundler 2.4.22
- Carthage 0.39.1 - Carthage 0.39.1
- CocoaPods 1.14.3 - CocoaPods 1.14.3
- Homebrew 4.2.5 - Composer 2.6.6
- Miniconda 23.11.0 - Homebrew 4.1.25
- Miniconda 23.10.0
- NPM 10.2.3 - NPM 10.2.3
- NuGet 6.3.1.1 - NuGet 6.3.1.1
- Pip 20.3.4 (python 2.7) - Pip 20.3.4 (python 2.7)
- Pip3 23.3.2 (python 3.12) - Pip3 23.3.1 (python 3.12)
- Pipx 1.4.3 - Pipx 1.3.3
- RubyGems 3.4.10 - RubyGems 3.4.10
- Vcpkg 2024 (build from commit 7032c5759) - Vcpkg 2023 (build from commit 0e47c1985)
- Yarn 1.22.19 - Yarn 1.22.19
#### Environment variables #### Environment variables
@@ -64,52 +67,53 @@
### Utilities ### Utilities
- 7-Zip 17.05 - 7-Zip 17.05
- aria2 1.37.0 - aria2 1.37.0
- azcopy 10.22.2 - azcopy 10.21.2
- bazel 7.0.2 - bazel 7.0.0
- bazelisk 1.19.0 - bazelisk 1.19.0
- bsdtar 3.3.2 - available by 'tar' alias - bsdtar 3.3.2 - available by 'tar' alias
- Curl 8.5.0 - Curl 8.5.0
- Git 2.43.0 - Git 2.43.0
- Git LFS 3.4.1 - Git LFS 3.4.1
- GitHub CLI 2.42.1 - GitHub CLI 2.40.1
- GNU Tar 1.35 - available by 'gtar' alias - GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.21.4 - GNU Wget 1.21.4
- gpg (GnuPG) 2.4.4 - gpg (GnuPG) 2.4.3
- helm v3.14.0+g3fc9f4b - helm v3.13.3+gc8b9489
- ImageMagick 7.1.1-23
- jq 1.7.1 - jq 1.7.1
- mongo 5.0.21 - mongo 5.0.21
- mongod 5.0.21 - mongod 5.0.21
- Newman 6.1.0 - Newman 6.0.0
- OpenSSL 1.1.1w 11 Sep 2023 - OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.9.4 - Packer 1.9.4
- pkg-config 0.29.2 - pkg-config 0.29.2
- PostgreSQL 14.10 (Homebrew) - PostgreSQL 14.10 (Homebrew)
- psql (PostgreSQL) 14.10 (Homebrew) - psql (PostgreSQL) 14.10 (Homebrew)
- Sox 14.4.2 - Sox 14.4.2
- Subversion (SVN) 1.14.3 - Subversion (SVN) 1.14.2
- Switchaudio-osx 1.2.2 - Switchaudio-osx 1.2.2
- yq 4.40.5 - yq 4.40.5
- zstd 1.5.5 - zstd 1.5.5
### Tools ### Tools
- Aliyun CLI 3.0.197 - Aliyun CLI 3.0.189
- App Center CLI 2.14.0 - App Center CLI 2.14.0
- AWS CLI 2.15.15 - AWS CLI 2.15.2
- AWS SAM CLI 1.108.0 - AWS SAM CLI 1.105.0
- AWS Session Manager CLI 1.2.553.0 - AWS Session Manager CLI 1.2.536.0
- Azure CLI 2.56.0 - Azure CLI 2.55.0
- Azure CLI (azure-devops) 0.26.0 - Azure CLI (azure-devops) 0.26.0
- Bicep CLI 0.24.24 - Bicep CLI 0.24.24
- Cabal 3.10.2.1 - Cabal 3.6.2.0
- Cmake 3.28.1 - Cmake 3.28.0
- CodeQL Action Bundle 2.16.1 - CodeQL Action Bundle 2.15.4
- Fastlane 2.219.0 - Fastlane 2.217.0
- GHC 9.8.1 - GHC 9.8.1
- GHCup 0.1.20.0 - GHCup 0.1.20.0
- Jazzy 0.14.4 - Jazzy 0.14.4
- Stack 2.13.1 - Stack 2.13.1
- SwiftFormat 0.53.0 - SwiftFormat 0.52.11
- Swig 4.2.0 - Swig 4.1.1
- Xcode Command Line Tools 13.2.0.0.1.1638488800 - Xcode Command Line Tools 13.2.0.0.1.1638488800
### Linters ### Linters
@@ -119,14 +123,14 @@
### Browsers ### Browsers
- Safari 16.6.1 (16615.3.12.11.5) - Safari 16.6.1 (16615.3.12.11.5)
- SafariDriver 16.6.1 (16615.3.12.11.5) - SafariDriver 16.6.1 (16615.3.12.11.5)
- Google Chrome 121.0.6167.85 - Google Chrome 120.0.6099.109
- Google Chrome for Testing 121.0.6167.85 - Google Chrome for Testing 120.0.6099.71
- ChromeDriver 121.0.6167.85 - ChromeDriver 120.0.6099.71
- Microsoft Edge 121.0.2277.83 - Microsoft Edge 120.0.2210.77
- Microsoft Edge WebDriver 121.0.2277.83 - Microsoft Edge WebDriver 120.0.2210.77
- Mozilla Firefox 122.0 - Mozilla Firefox 120.0.1
- geckodriver 0.34.0 - geckodriver 0.33.0
- Selenium server 4.17.0 - Selenium server 4.15.0
#### Environment variables #### Environment variables
| Name | Value | | Name | Value |
@@ -138,10 +142,10 @@
### Java ### Java
| Version | Environment Variable | | Version | Environment Variable |
| ------------------- | -------------------- | | ------------------- | -------------------- |
| 8.0.402+6 (default) | JAVA_HOME_8_X64 | | 8.0.392+8 (default) | JAVA_HOME_8_X64 |
| 11.0.22+7 | JAVA_HOME_11_X64 | | 11.0.21+9 | JAVA_HOME_11_X64 |
| 17.0.10+7 | JAVA_HOME_17_X64 | | 17.0.9+9 | JAVA_HOME_17_X64 |
| 21.0.2+13.0 | JAVA_HOME_21_X64 | | 21.0.1+12.0 | JAVA_HOME_21_X64 |
### Cached Tools ### Cached Tools
@@ -153,11 +157,11 @@
- 3.1.4 - 3.1.4
#### PyPy #### PyPy
- 2.7.18 [PyPy 7.3.15] - 2.7.18 [PyPy 7.3.13]
- 3.7.13 [PyPy 7.3.9] - 3.7.13 [PyPy 7.3.9]
- 3.8.16 [PyPy 7.3.11] - 3.8.16 [PyPy 7.3.11]
- 3.9.18 [PyPy 7.3.15] - 3.9.18 [PyPy 7.3.13]
- 3.10.13 [PyPy 7.3.15] - 3.10.13 [PyPy 7.3.13]
#### Python #### Python
- 3.7.17 - 3.7.17
@@ -170,32 +174,32 @@
#### Node.js #### Node.js
- 16.20.2 - 16.20.2
- 18.19.0 - 18.19.0
- 20.11.0 - 20.10.0
#### Go #### Go
- 1.19.13 - 1.19.13
- 1.20.13 - 1.20.12
- 1.21.6 - 1.21.5
### Rust Tools ### Rust Tools
- Cargo 1.75.0 - Cargo 1.74.1
- Rust 1.75.0 - Rust 1.74.1
- Rustdoc 1.75.0 - Rustdoc 1.74.1
- Rustup 1.26.0 - Rustup 1.26.0
#### Packages #### Packages
- Bindgen 0.69.2 - Bindgen 0.69.1
- Cargo-audit 0.18.3 - Cargo-audit 0.18.3
- Cargo-outdated 0.14.0 - Cargo-outdated 0.14.0
- Cbindgen 0.26.0 - Cbindgen 0.26.0
- Clippy 0.1.75 - Clippy 0.1.74
- Rustfmt 1.7.0-stable - Rustfmt 1.6.0-stable
### PowerShell Tools ### PowerShell Tools
- PowerShell 7.4.1 - PowerShell 7.2.17
#### PowerShell Modules #### PowerShell Modules
- Az: 11.2.0 - Az: 11.1.0
- MarkdownPS: 1.9 - MarkdownPS: 1.9
- Pester: 5.5.0 - Pester: 5.5.0
- PSScriptAnalyzer: 1.21.0 - PSScriptAnalyzer: 1.21.0
@@ -212,7 +216,7 @@
| Version | Build | Path | | Version | Build | Path |
| -------------- | ---------- | ------------------------------------ | | -------------- | ---------- | ------------------------------------ |
| 2019 | 8.10.25.2 | /Applications/Visual Studio 2019.app | | 2019 | 8.10.25.2 | /Applications/Visual Studio 2019.app |
| 2022 (default) | 17.6.8.400 | /Applications/Visual Studio.app | | 2022 (default) | 17.6.7.417 | /Applications/Visual Studio.app |
##### Notes ##### Notes
``` ```
@@ -325,18 +329,18 @@ mv "/Applications/Visual Studio 2019.app" "/Applications/Visual Studio.app"
| watchOS 8.3 | 13.2.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<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 | | watchOS 8.3 | 13.2.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<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 |
### Android ### Android
| Package Name | Version | | Package Name | Version |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 8.0 | | Android Command Line Tools | 8.0 |
| Android Emulator | 33.1.24 | | Android Emulator | 33.1.23 |
| Android SDK Build-tools | 34.0.0<br>33.0.0 33.0.1 33.0.2<br>32.0.0<br>31.0.0 | | Android SDK Build-tools | 34.0.0<br>33.0.0 33.0.1 33.0.2<br>32.0.0<br>31.0.0<br>30.0.0 30.0.1 30.0.2 30.0.3<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3 |
| Android SDK Platforms | android-34-ext8 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 2)<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 Platforms | android-34-ext8 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 2)<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)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3) |
| Android SDK Platform-Tools | 34.0.5 | | Android SDK Platform-Tools | 34.0.5 |
| Android Support Repository | 47.0.0 | | Android Support Repository | 47.0.0 |
| CMake | 3.10.2<br>3.18.1<br>3.22.1 | | CMake | 3.10.2<br>3.18.1<br>3.22.1 |
| Google Play services | 49 | | Google Play services | 49 |
| Google Repository | 58 | | Google Repository | 58 |
| NDK | 24.0.8215888<br>25.2.9519653 (default)<br>26.1.10909125 | | NDK | 24.0.8215888<br>25.2.9519653 (default)<br>26.1.10909125 |
#### Environment variables #### Environment variables
| Name | Value | | Name | Value |
@@ -352,5 +356,5 @@ mv "/Applications/Visual Studio 2019.app" "/Applications/Visual Studio.app"
- libXext 1.3.5 - libXext 1.3.5
- libXft 2.3.8 - libXft 2.3.8
- Tcl/Tk 8.6.13_5 - Tcl/Tk 8.6.13_5
- Zlib 1.3.1 - Zlib 1.3
+134 -128
View File
@@ -1,12 +1,17 @@
| Announcements |
|-|
| [Old versions of Android SDK & tools will be removed from images on January, 8](https://github.com/actions/runner-images/issues/8952) |
| [Major Refactoring of GitHub Actions Runner Images Repository](https://github.com/actions/runner-images/issues/8706) |
***
# macOS 12 # macOS 12
- OS Version: macOS 12.7.4 (21H1123) - OS Version: macOS 12.7.2 (21G1974)
- Kernel Version: Darwin 21.6.0 - Kernel Version: Darwin 21.6.0
- Image Version: 20240514.3 - Image Version: 20231216.1
## Installed Software ## Installed Software
### Language and Runtime ### Language and Runtime
- .NET Core SDK: 6.0.422, 7.0.102, 7.0.202, 7.0.306, 7.0.409, 8.0.101, 8.0.204, 8.0.300 - .NET Core SDK: 6.0.417, 7.0.102, 7.0.202, 7.0.306, 7.0.404, 8.0.100
- Bash 3.2.57(1)-release - Bash 3.2.57(1)-release
- Clang/LLVM 14.0.0 - Clang/LLVM 14.0.0
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang` - Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
@@ -16,35 +21,35 @@
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias - GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
- GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias - GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.2.0) - available by `gfortran-13` alias - GNU Fortran 13 (Homebrew GCC 13.2.0) - available by `gfortran-13` alias
- Julia 1.10.3 - Julia 1.9.4
- Kotlin 1.9.24-release-822 - Kotlin 1.9.21-release-633
- Go 1.21.10 - Go 1.20.12
- Mono 6.12.0.188 - Mono 6.12.0.188
- Node.js 18.20.2 - Node.js 18.19.0
- MSBuild 16.10.1.51301 (Mono 6.12.0.188) - MSBuild 16.10.1.51301 (Mono 6.12.0.188)
- NVM 0.39.7 - NVM 0.39.7
- NVM - Cached node versions: 16.20.2, 18.20.2, 20.13.1 - NVM - Cached node versions: 16.20.2, 18.19.0, 20.10.0
- Perl 5.38.2 - Perl 5.38.2
- PHP 8.3.7 - PHP 8.3.0
- Python 2.7.18 - Python 2.7.18
- Python3 3.12.3 - Python3 3.12.1
- R 4.4.0 - R 4.3.2
- Ruby 3.0.7p220 - Ruby 3.0.6p216
### Package Management ### Package Management
- Bundler 2.5.10 - Bundler 2.5.1
- Carthage 0.39.1 - Carthage 0.39.1
- CocoaPods 1.15.2 - CocoaPods 1.14.3
- Composer 2.7.6 - Composer 2.6.6
- Homebrew 4.3.0 - Homebrew 4.1.25
- Miniconda 24.3.0 - Miniconda 23.10.0
- NPM 10.5.0 - NPM 10.2.3
- NuGet 6.3.1.1 - NuGet 6.3.1.1
- Pip 20.3.4 (python 2.7) - Pip 20.3.4 (python 2.7)
- Pip3 24.0 (python 3.12) - Pip3 23.3.1 (python 3.12)
- Pipx 1.5.0 - Pipx 1.3.3
- RubyGems 3.5.10 - RubyGems 3.5.1
- Vcpkg 2024 (build from commit bd2b54836) - Vcpkg 2023 (build from commit 0e47c1985)
- Yarn 1.22.19 - Yarn 1.22.19
#### Environment variables #### Environment variables
@@ -56,78 +61,78 @@
### Project Management ### Project Management
- Apache Ant 1.10.14 - Apache Ant 1.10.14
- Apache Maven 3.9.6 - Apache Maven 3.9.6
- Gradle 8.7 - Gradle 8.5
- Sbt 1.10.0 - Sbt 1.9.8
### Utilities ### Utilities
- 7-Zip 17.05 - 7-Zip 17.05
- aria2 1.37.0 - aria2 1.37.0
- azcopy 10.24.0 - azcopy 10.21.2
- bazel 7.1.2 - bazel 7.0.0
- bazelisk 1.20.0 - bazelisk 1.19.0
- bsdtar 3.5.1 - available by 'tar' alias - bsdtar 3.5.1 - available by 'tar' alias
- Curl 8.7.1 - Curl 8.5.0
- Git 2.45.1 - Git 2.43.0
- Git LFS 3.5.1 - Git LFS 3.4.1
- GitHub CLI 2.49.2 - GitHub CLI 2.40.1
- GNU Tar 1.35 - available by 'gtar' alias - GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.24.5 - GNU Wget 1.21.4
- gpg (GnuPG) 2.4.5 - gpg (GnuPG) 2.4.3
- ImageMagick 7.1.1-32 - ImageMagick 7.1.1-23
- jq 1.7.1 - jq 1.7.1
- mongo 5.0.26 - mongo 5.0.21
- mongod 5.0.26 - mongod 5.0.21
- OpenSSL 1.1.1w 11 Sep 2023 - OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.9.4 - Packer 1.9.4
- pkg-config 0.29.2 - pkg-config 0.29.2
- PostgreSQL 14.12 (Homebrew) - PostgreSQL 14.10 (Homebrew)
- psql (PostgreSQL) 14.12 (Homebrew) - psql (PostgreSQL) 14.10 (Homebrew)
- Sox 14.4.2 - Sox 14.4.2
- Subversion (SVN) 1.14.3 - Subversion (SVN) 1.14.2
- Switchaudio-osx 1.2.2 - Switchaudio-osx 1.2.2
- Vagrant 2.4.1 - Vagrant 2.4.0
- VirtualBox 6.1.38r153438 - VirtualBox 6.1.38r153438
- yq 4.44.1 - yq 4.40.5
- zstd 1.5.6 - zstd 1.5.5
### Tools ### Tools
- App Center CLI 3.0.0 - App Center CLI 2.14.0
- AWS CLI 2.15.50 - AWS CLI 2.15.2
- AWS SAM CLI 1.116.0 - AWS SAM CLI 1.105.0
- AWS Session Manager CLI 1.2.553.0 - AWS Session Manager CLI 1.2.536.0
- Azure CLI 2.60.0 - Azure CLI 2.55.0
- Azure CLI (azure-devops) 1.0.0 - Azure CLI (azure-devops) 0.26.0
- Bicep CLI 0.27.1 - Bicep CLI 0.24.24
- Cabal 3.10.3.0 - Cabal 3.6.2.0
- Cmake 3.29.3 - Cmake 3.28.0
- CodeQL Action Bundle 2.17.2 - CodeQL Action Bundle 2.15.4
- Colima 0.6.8 - Colima 0.6.7
- Fastlane 2.220.0 - Fastlane 2.217.0
- GHC 9.10.1 - GHC 9.8.1
- GHCup 0.1.22.0 - GHCup 0.1.20.0
- Jazzy 0.15.0 - Jazzy 0.14.4
- Stack 2.15.5 - Stack 2.13.1
- SwiftFormat 0.53.9 - SwiftFormat 0.52.11
- Swig 4.2.1 - Swig 4.1.1
- Xcbeautify 1.6.0 - Xcbeautify 1.1.1
- Xcode Command Line Tools 14.2.0.0.1.1668646533 - Xcode Command Line Tools 14.2.0.0.1.1668646533
- Xcodes 1.4.1 - Xcodes 1.4.1
### Linters ### Linters
- SwiftLint 0.53.0 - SwiftLint 0.53.0
- Yamllint 1.35.1 - Yamllint 1.33.0
### Browsers ### Browsers
- Safari 17.4.1 (17618.1.15.111.8) - Safari 17.2 (17617.1.17.11.11)
- SafariDriver 17.4.1 (17618.1.15.111.8) - SafariDriver 17.2 (17617.1.17.11.11)
- Google Chrome 124.0.6367.208 - Google Chrome 120.0.6099.109
- Google Chrome for Testing 124.0.6367.207 - Google Chrome for Testing 120.0.6099.71
- ChromeDriver 124.0.6367.207 - ChromeDriver 120.0.6099.71
- Microsoft Edge 124.0.2478.105 - Microsoft Edge 120.0.2210.77
- Microsoft Edge WebDriver 124.0.2478.105 - Microsoft Edge WebDriver 120.0.2210.77
- Mozilla Firefox 126.0 - Mozilla Firefox 120.0.1
- geckodriver 0.34.0 - geckodriver 0.33.0
- Selenium server 4.20.0 - Selenium server 4.15.0
#### Environment variables #### Environment variables
| Name | Value | | Name | Value |
@@ -139,78 +144,79 @@
### Java ### Java
| Version | Environment Variable | | Version | Environment Variable |
| ------------------- | -------------------- | | ------------------- | -------------------- |
| 8.0.412+8 (default) | JAVA_HOME_8_X64 | | 8.0.392+8 (default) | JAVA_HOME_8_X64 |
| 11.0.23+9 | JAVA_HOME_11_X64 | | 11.0.21+9 | JAVA_HOME_11_X64 |
| 17.0.11+9 | JAVA_HOME_17_X64 | | 17.0.9+9 | JAVA_HOME_17_X64 |
| 21.0.3+9.0 | JAVA_HOME_21_X64 | | 21.0.1+12.0 | JAVA_HOME_21_X64 |
### Cached Tools ### Cached Tools
#### Ruby
- 2.7.8
- 3.0.6
- 3.1.4
#### PyPy #### PyPy
- 2.7.18 [PyPy 7.3.16] - 2.7.18 [PyPy 7.3.13]
- 3.7.13 [PyPy 7.3.9] - 3.7.13 [PyPy 7.3.9]
- 3.8.16 [PyPy 7.3.11] - 3.8.16 [PyPy 7.3.11]
- 3.9.19 [PyPy 7.3.16] - 3.9.18 [PyPy 7.3.13]
- 3.10.14 [PyPy 7.3.16] - 3.10.13 [PyPy 7.3.13]
#### Ruby
- 3.0.7
- 3.1.5
#### Python #### Python
- 3.7.17 - 3.7.17
- 3.8.18 - 3.8.18
- 3.9.19 - 3.9.18
- 3.10.14 - 3.10.13
- 3.11.9 - 3.11.7
- 3.12.3 - 3.12.1
#### Node.js #### Node.js
- 16.20.2 - 16.20.2
- 18.20.2 - 18.19.0
- 20.13.1 - 20.10.0
#### Go #### Go
- 1.20.14 - 1.19.13
- 1.21.10 - 1.20.12
- 1.22.3 - 1.21.5
### Rust Tools ### Rust Tools
- Cargo 1.78.0 - Cargo 1.74.1
- Rust 1.78.0 - Rust 1.74.1
- Rustdoc 1.78.0 - Rustdoc 1.74.1
- Rustup 1.27.1 - Rustup 1.26.0
#### Packages #### Packages
- Bindgen 0.69.4 - Bindgen 0.69.1
- Cargo-audit 0.20.0 - Cargo-audit 0.18.3
- Cargo-outdated 0.15.0 - Cargo-outdated 0.14.0
- Cbindgen 0.26.0 - Cbindgen 0.26.0
- Clippy 0.1.78 - Clippy 0.1.74
- Rustfmt 1.7.0-stable - Rustfmt 1.6.0-stable
### PowerShell Tools ### PowerShell Tools
- PowerShell 7.4.2 - PowerShell 7.2.17
#### PowerShell Modules #### PowerShell Modules
- Az: 11.6.0 - Az: 11.1.0
- MarkdownPS: 1.9 - MarkdownPS: 1.9
- Pester: 5.5.0 - Pester: 5.5.0
- PSScriptAnalyzer: 1.22.0 - PSScriptAnalyzer: 1.21.0
### Web Servers ### Web Servers
| Name | Version | ConfigFile | ServiceStatus | ListenPort | | Name | Version | ConfigFile | ServiceStatus | ListenPort |
| ----- | ------- | ------------------------------- | ------------- | ---------- | | ----- | ------- | ------------------------------- | ------------- | ---------- |
| httpd | 2.4.59 | /usr/local/etc/httpd/httpd.conf | none | 80 | | httpd | 2.4.58 | /usr/local/etc/httpd/httpd.conf | none | 80 |
| nginx | 1.25.5 | /usr/local/etc/nginx/nginx.conf | none | 80 | | nginx | 1.25.3 | /usr/local/etc/nginx/nginx.conf | none | 80 |
### Xamarin ### Xamarin
#### Visual Studio for Mac #### Visual Studio for Mac
| Version | Build | Path | | Version | Build | Path |
| -------------- | ----------- | ------------------------------------ | | -------------- | ---------- | ------------------------------------ |
| 2019 | 8.10.25.2 | /Applications/Visual Studio 2019.app | | 2019 | 8.10.25.2 | /Applications/Visual Studio 2019.app |
| 2022 (default) | 17.6.12.410 | /Applications/Visual Studio.app | | 2022 (default) | 17.6.7.417 | /Applications/Visual Studio.app |
##### Notes ##### Notes
``` ```
@@ -222,7 +228,6 @@ mv "/Applications/Visual Studio 2019.app" "/Applications/Visual Studio.app"
#### Xamarin bundles #### Xamarin bundles
| symlink | Xamarin.Mono | Xamarin.iOS | Xamarin.Mac | Xamarin.Android | | symlink | Xamarin.Mono | Xamarin.iOS | Xamarin.Mac | Xamarin.Android |
| ----------------- | ------------ | ----------- | ----------- | --------------- | | ----------------- | ------------ | ----------- | ----------- | --------------- |
| 6_12_25 | 6.12 | 16.4 | 9.3 | 13.2 |
| 6_12_24 | 6.12 | 16.2 | 9.1 | 13.2 | | 6_12_24 | 6.12 | 16.2 | 9.1 | 13.2 |
| 6_12_23 | 6.12 | 16.2 | 9.1 | 13.1 | | 6_12_23 | 6.12 | 16.2 | 9.1 | 13.1 |
| 6_12_22 | 6.12 | 16.1 | 9.0 | 13.1 | | 6_12_22 | 6.12 | 16.1 | 9.0 | 13.1 |
@@ -327,18 +332,18 @@ mv "/Applications/Visual Studio 2019.app" "/Applications/Visual Studio.app"
| watchOS 9.1 | 13.1<br>13.2.1<br>13.3.1<br>13.4.1<br>14.0.1<br>14.1<br>14.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) | | watchOS 9.1 | 13.1<br>13.2.1<br>13.3.1<br>13.4.1<br>14.0.1<br>14.1<br>14.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
### Android ### Android
| Package Name | Version | | Package Name | Version |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 8.0 | | Android Command Line Tools | 8.0 |
| Android Emulator | 34.2.13 | | Android Emulator | 33.1.23 |
| Android SDK Build-tools | 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 Build-tools | 34.0.0<br>33.0.0 33.0.1 33.0.2<br>32.0.0<br>31.0.0<br>30.0.0 30.0.1 30.0.2 30.0.3<br>29.0.0 29.0.1 29.0.2 29.0.3<br>28.0.0 28.0.1 28.0.2 28.0.3<br>27.0.0 27.0.1 27.0.2 27.0.3 |
| Android SDK Platforms | android-34-ext8 (rev 1)<br>android-34-ext11 (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 Platforms | android-34-ext8 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 2)<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)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3) |
| Android SDK Platform-Tools | 35.0.1 | | Android SDK Platform-Tools | 34.0.5 |
| Android Support Repository | 47.0.0 | | Android Support Repository | 47.0.0 |
| CMake | 3.18.1<br>3.22.1 | | CMake | 3.18.1<br>3.22.1 |
| Google Play services | 49 | | Google Play services | 49 |
| Google Repository | 58 | | Google Repository | 58 |
| NDK | 24.0.8215888<br>25.2.9519653 (default)<br>26.3.11579264 | | NDK | 24.0.8215888<br>25.2.9519653 (default)<br>26.1.10909125 |
#### Environment variables #### Environment variables
| Name | Value | | Name | Value |
@@ -346,23 +351,24 @@ mv "/Applications/Visual Studio 2019.app" "/Applications/Visual Studio.app"
| ANDROID_HOME | /Users/runner/Library/Android/sdk | | ANDROID_HOME | /Users/runner/Library/Android/sdk |
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/25.2.9519653 | | ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/25.2.9519653 |
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/25.2.9519653 | | ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/25.2.9519653 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 | | ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/25.2.9519653 | | ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/25.2.9519653 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk | | ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
### Miscellaneous ### Miscellaneous
- libXext 1.3.6 - libXext 1.3.5
- libXft 2.3.8 - libXft 2.3.8
- Tcl/Tk 8.6.14 - Tcl/Tk 8.6.13_5
- Zlib 1.3.1 - Zlib 1.3
#### Environment variables #### Environment variables
| Name | Value | | Name | Value |
| ----------------- | ----------------------------------------------------------------------------------------- | | ----------------- | ----------------------------------------------------------------------------------------- |
| PARALLELS_DMG_URL | https://download.parallels.com/desktop/v19/19.3.1-54941/ParallelsDesktop-19.3.1-54941.dmg | | PARALLELS_DMG_URL | https://download.parallels.com/desktop/v19/19.2.0-54827/ParallelsDesktop-19.2.0-54827.dmg |
##### Notes ##### Notes
``` ```
If you want to use Parallels Desktop you should download a package from URL stored in If you want to use Parallels Desktop you should download a package from URL stored in
PARALLELS_DMG_URL environment variable. A system extension is allowed for this version. PARALLELS_DMG_URL environment variable. A system extension is allowed for this version.
``` ```
+128 -120
View File
@@ -1,14 +1,19 @@
| Announcements |
|-|
| [Old versions of Android SDK & tools will be removed from images on January, 8](https://github.com/actions/runner-images/issues/8952) |
| [Major Refactoring of GitHub Actions Runner Images Repository](https://github.com/actions/runner-images/issues/8706) |
***
# macOS 13 # macOS 13
- OS Version: macOS 13.6.6 (22G630) - OS Version: macOS 13.6.3 (22G436)
- Kernel Version: Darwin 22.6.0 - Kernel Version: Darwin 22.6.0
- Image Version: 20240514.3 - Image Version: 20231218.2
## Installed Software ## Installed Software
### Language and Runtime ### Language and Runtime
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.409, 8.0.101, 8.0.204, 8.0.300 - .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.404, 8.0.100
- Bash 3.2.57(1)-release - Bash 3.2.57(1)-release
- Clang/LLVM 14.0.0 - Clang/LLVM 14.0.3
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang` - Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
- GCC 11 (Homebrew GCC 11.4.0) - available by `gcc-11` alias - GCC 11 (Homebrew GCC 11.4.0) - available by `gcc-11` alias
- GCC 12 (Homebrew GCC 12.3.0) - available by `gcc-12` alias - GCC 12 (Homebrew GCC 12.3.0) - available by `gcc-12` alias
@@ -16,83 +21,85 @@
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias - GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
- GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias - GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.2.0) - available by `gfortran-13` alias - GNU Fortran 13 (Homebrew GCC 13.2.0) - available by `gfortran-13` alias
- Kotlin 1.9.24-release-822 - Julia 1.9.4
- Kotlin 1.9.21-release-633
- Mono 6.12.0.188 - Mono 6.12.0.188
- Node.js 20.13.1 - Node.js 18.19.0
- Perl 5.38.2 - Perl 5.38.2
- PHP 8.3.7 - PHP 8.3.0
- Python3 3.12.3 - Python3 3.12.1
- Ruby 3.0.7p220 - R 4.3.2
- Ruby 3.0.6p216
### Package Management ### Package Management
- Bundler 2.5.10 - Bundler 2.5.1
- Carthage 0.39.1 - Carthage 0.39.1
- CocoaPods 1.15.2 - CocoaPods 1.14.3
- Composer 2.7.6 - Composer 2.6.6
- Homebrew 4.3.0 - Homebrew 4.1.25
- NPM 10.5.2 - NPM 10.2.3
- NuGet 6.3.1.1 - NuGet 6.3.1.1
- Pip3 24.0 (python 3.12) - Pip3 23.3.2 (python 3.12)
- Pipx 1.5.0 - Pipx 1.3.3
- RubyGems 3.5.10 - RubyGems 3.5.1
- Vcpkg 2024 (build from commit bd2b54836) - Vcpkg 2023 (build from commit 0e47c1985)
- Yarn 1.22.19 - Yarn 1.22.19
### Project Management ### Project Management
- Apache Ant 1.10.14 - Apache Ant 1.10.14
- Apache Maven 3.9.6 - Apache Maven 3.9.6
- Gradle 8.7 - Gradle 8.5
### Utilities ### Utilities
- 7-Zip 17.05 - 7-Zip 17.05
- aria2 1.37.0 - aria2 1.37.0
- azcopy 10.24.0 - azcopy 10.21.2
- bazel 7.1.2 - bazel 7.0.0
- bazelisk 1.20.0 - bazelisk 1.19.0
- bsdtar 3.5.3 - available by 'tar' alias - bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.7.1 - Curl 8.5.0
- Git 2.45.1 - Git 2.43.0
- Git LFS 3.5.1 - Git LFS 3.4.1
- GitHub CLI 2.49.2 - GitHub CLI 2.40.1
- GNU Tar 1.35 - available by 'gtar' alias - GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.24.5 - GNU Wget 1.21.4
- gpg (GnuPG) 2.4.5 - gpg (GnuPG) 2.4.3
- jq 1.7.1 - jq 1.7.1
- OpenSSL 1.1.1w 11 Sep 2023 - OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.9.4 - Packer 1.9.4
- pkg-config 0.29.2 - pkg-config 0.29.2
- yq 4.44.1 - yq 4.40.5
- zstd 1.5.6 - zstd 1.5.5
### Tools ### Tools
- AWS CLI 2.15.50 - AWS CLI 2.15.2
- AWS SAM CLI 1.116.0 - AWS SAM CLI 1.105.0
- AWS Session Manager CLI 1.2.553.0 - AWS Session Manager CLI 1.2.536.0
- Azure CLI 2.60.0 - Azure CLI 2.55.0
- Azure CLI (azure-devops) 1.0.0 - Azure CLI (azure-devops) 0.26.0
- Bicep CLI 0.27.1 - Bicep CLI 0.24.24
- Cmake 3.29.3 - Cmake 3.28.1
- CodeQL Action Bundle 2.17.2 - CodeQL Action Bundle 2.15.4
- Fastlane 2.220.0 - Fastlane 2.217.0
- SwiftFormat 0.53.9 - SwiftFormat 0.52.11
- Xcbeautify 2.3.1 - Xcbeautify 1.1.1
- Xcode Command Line Tools 14.3.1.0.1.1683849156 - Xcode Command Line Tools 15.1.0.0.1.1700200546
- Xcodes 1.4.1 - Xcodes 1.4.1
### Linters ### Linters
- SwiftLint 0.53.0 - SwiftLint 0.53.0
### Browsers ### Browsers
- Safari 17.4.1 (18618.1.15.111.8) - Safari 17.2 (18617.1.17.11.11)
- SafariDriver 17.4.1 (18618.1.15.111.8) - SafariDriver 17.2 (18617.1.17.11.11)
- Google Chrome 124.0.6367.208 - Google Chrome 120.0.6099.109
- Google Chrome for Testing 124.0.6367.207 - Google Chrome for Testing 120.0.6099.71
- ChromeDriver 124.0.6367.207 - ChromeDriver 120.0.6099.71
- Microsoft Edge 124.0.2478.105 - Microsoft Edge 120.0.2210.77
- Microsoft Edge WebDriver 124.0.2478.105 - Microsoft Edge WebDriver 120.0.2210.77
- Mozilla Firefox 126.0 - Mozilla Firefox 120.0.1
- geckodriver 0.34.0 - geckodriver 0.33.0
- Selenium server 4.20.0 - Selenium server 4.15.0
#### Environment variables #### Environment variables
| Name | Value | | Name | Value |
@@ -102,71 +109,73 @@
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin | | GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
### Java ### Java
| Version | Environment Variable | | Version | Environment Variable |
| ------------------- | -------------------- | | ------------------ | -------------------- |
| 8.0.412+8 | JAVA_HOME_8_X64 | | 8.0.392+8 | JAVA_HOME_8_X64 |
| 11.0.23+9 | JAVA_HOME_11_X64 | | 11.0.21+9 | JAVA_HOME_11_X64 |
| 17.0.11+9 (default) | JAVA_HOME_17_X64 | | 17.0.9+9 (default) | JAVA_HOME_17_X64 |
| 21.0.3+9.0 | JAVA_HOME_21_X64 | | 21.0.1+12.0 | JAVA_HOME_21_X64 |
### Cached Tools ### Cached Tools
#### Ruby
- 3.0.6
- 3.1.4
#### PyPy #### PyPy
- 2.7.18 [PyPy 7.3.16] - 2.7.18 [PyPy 7.3.13]
- 3.7.13 [PyPy 7.3.9] - 3.7.13 [PyPy 7.3.9]
- 3.8.16 [PyPy 7.3.11] - 3.8.16 [PyPy 7.3.11]
- 3.9.19 [PyPy 7.3.16] - 3.9.18 [PyPy 7.3.13]
- 3.10.14 [PyPy 7.3.16] - 3.10.13 [PyPy 7.3.13]
#### Ruby
- 3.0.7
- 3.1.5
#### Python #### Python
- 3.8.18 - 3.8.18
- 3.9.19 - 3.9.18
- 3.10.14 - 3.10.13
- 3.11.9 - 3.11.7
- 3.12.3 - 3.12.1
#### Node.js #### Node.js
- 16.20.2 - 16.20.2
- 18.20.2 - 18.19.0
- 20.13.1 - 20.10.0
#### Go #### Go
- 1.20.14 - 1.19.13
- 1.21.10 - 1.20.12
- 1.22.3 - 1.21.5
### Rust Tools ### Rust Tools
- Cargo 1.78.0 - Cargo 1.74.1
- Rust 1.78.0 - Rust 1.74.1
- Rustdoc 1.78.0 - Rustdoc 1.74.1
- Rustup 1.27.1 - Rustup 1.26.0
#### Packages #### Packages
- Clippy 0.1.78 - Clippy 0.1.74
- Rustfmt 1.7.0-stable - Rustfmt 1.6.0-stable
### PowerShell Tools ### PowerShell Tools
- PowerShell 7.4.2 - PowerShell 7.2.17
#### PowerShell Modules #### PowerShell Modules
- Az: 11.6.0 - Az: 11.1.0
- Pester: 5.5.0 - Pester: 5.5.0
- PSScriptAnalyzer: 1.22.0 - PSScriptAnalyzer: 1.21.0
### Xcode ### Xcode
| Version | Build | Path | | Version | Build | Path |
| ---------------- | ------- | ------------------------------ | | ---------------- | ------- | ------------------------------ |
| 15.2 | 15C500b | /Applications/Xcode_15.2.app |
| 15.1 | 15C65 | /Applications/Xcode_15.1.app | | 15.1 | 15C65 | /Applications/Xcode_15.1.app |
| 15.0.1 (default) | 15A507 | /Applications/Xcode_15.0.1.app | | 15.0.1 | 15A507 | /Applications/Xcode_15.0.1.app |
| 14.3.1 | 14E300c | /Applications/Xcode_14.3.1.app | | 14.3.1 (default) | 14E300c | /Applications/Xcode_14.3.1.app |
| 14.2 | 14C18 | /Applications/Xcode_14.2.app | | 14.2 | 14C18 | /Applications/Xcode_14.2.app |
| 14.1 | 14B47b | /Applications/Xcode_14.1.app | | 14.1 | 14B47b | /Applications/Xcode_14.1.app |
#### Xcode Support Tools
- xcpretty 0.3.0
#### Installed SDKs #### Installed SDKs
| SDK | SDK Name | Xcode Version | | SDK | SDK Name | Xcode Version |
| ------------------------------------------------------- | --------------------------------------------- | ------------- | | ------------------------------------------------------- | --------------------------------------------- | ------------- |
@@ -174,35 +183,33 @@
| macOS 13.1 | macosx13.1 | 14.2 | | macOS 13.1 | macosx13.1 | 14.2 |
| macOS 13.3 | macosx13.3 | 14.3.1 | | macOS 13.3 | macosx13.3 | 14.3.1 |
| macOS 14.0 | macosx14.0 | 15.0.1 | | macOS 14.0 | macosx14.0 | 15.0.1 |
| macOS 14.2 | macosx14.2 | 15.1, 15.2 | | macOS 14.2 | macosx14.2 | 15.1 |
| iOS 16.1 | iphoneos16.1 | 14.1 | | iOS 16.1 | iphoneos16.1 | 14.1 |
| iOS 16.2 | iphoneos16.2 | 14.2 | | iOS 16.2 | iphoneos16.2 | 14.2 |
| iOS 16.4 | iphoneos16.4 | 14.3.1 | | iOS 16.4 | iphoneos16.4 | 14.3.1 |
| iOS 17.0 | iphoneos17.0 | 15.0.1 | | iOS 17.0 | iphoneos17.0 | 15.0.1 |
| iOS 17.2 | iphoneos17.2 | 15.1, 15.2 | | iOS 17.2 | iphoneos17.2 | 15.1 |
| Simulator - iOS 16.1 | iphonesimulator16.1 | 14.1 | | Simulator - iOS 16.1 | iphonesimulator16.1 | 14.1 |
| Simulator - iOS 16.2 | iphonesimulator16.2 | 14.2 | | Simulator - iOS 16.2 | iphonesimulator16.2 | 14.2 |
| Simulator - iOS 16.4 | iphonesimulator16.4 | 14.3.1 | | Simulator - iOS 16.4 | iphonesimulator16.4 | 14.3.1 |
| Simulator - iOS 17.0 | iphonesimulator17.0 | 15.0.1 | | Simulator - iOS 17.0 | iphonesimulator17.0 | 15.0.1 |
| Simulator - iOS 17.2 | iphonesimulator17.2 | 15.1, 15.2 | | Simulator - iOS 17.2 | iphonesimulator17.2 | 15.1 |
| tvOS 16.1 | appletvos16.1 | 14.1, 14.2 | | tvOS 16.1 | appletvos16.1 | 14.1, 14.2 |
| tvOS 16.4 | appletvos16.4 | 14.3.1 | | tvOS 16.4 | appletvos16.4 | 14.3.1 |
| tvOS 17.0 | appletvos17.0 | 15.0.1 | | tvOS 17.0 | appletvos17.0 | 15.0.1 |
| tvOS 17.2 | appletvos17.2 | 15.1, 15.2 | | tvOS 17.2 | appletvos17.2 | 15.1 |
| Simulator - tvOS 16.1 | appletvsimulator16.1 | 14.1, 14.2 | | Simulator - tvOS 16.1 | appletvsimulator16.1 | 14.1, 14.2 |
| Simulator - tvOS 16.4 | appletvsimulator16.4 | 14.3.1 | | Simulator - tvOS 16.4 | appletvsimulator16.4 | 14.3.1 |
| Simulator - tvOS 17.0 | appletvsimulator17.0 | 15.0.1 | | Simulator - tvOS 17.0 | appletvsimulator17.0 | 15.0.1 |
| Simulator - tvOS 17.2 | appletvsimulator17.2 | 15.1, 15.2 | | Simulator - tvOS 17.2 | appletvsimulator17.2 | 15.1 |
| watchOS 9.1 | watchos9.1 | 14.1, 14.2 | | watchOS 9.1 | watchos9.1 | 14.1, 14.2 |
| watchOS 9.4 | watchos9.4 | 14.3.1 | | watchOS 9.4 | watchos9.4 | 14.3.1 |
| watchOS 10.0 | watchos10.0 | 15.0.1 | | watchOS 10.0 | watchos10.0 | 15.0.1 |
| watchOS 10.2 | watchos10.2 | 15.1, 15.2 | | watchOS 10.2 | watchos10.2 | 15.1 |
| Simulator - watchOS 9.1 | watchsimulator9.1 | 14.1, 14.2 | | Simulator - watchOS 9.1 | watchsimulator9.1 | 14.1, 14.2 |
| Simulator - watchOS 9.4 | watchsimulator9.4 | 14.3.1 | | Simulator - watchOS 9.4 | watchsimulator9.4 | 14.3.1 |
| Simulator - watchOS 10.0 | watchsimulator10.0 | 15.0.1 | | Simulator - watchOS 10.0 | watchsimulator10.0 | 15.0.1 |
| Simulator - watchOS 10.2 | watchsimulator10.2 | 15.1, 15.2 | | Simulator - watchOS 10.2 | watchsimulator10.2 | 15.1 |
| Simulator - visionOS 1.0 | xrsimulator1.0 | 15.2 |
| visionOS 1.0 | xros1.0 | 15.2 |
| Asset Runtime SDK for macOS hosts targeting watchOS 9.4 | assetruntime.host.macosx.target.watchos9.4 | 14.3.1 | | Asset Runtime SDK for macOS hosts targeting watchOS 9.4 | assetruntime.host.macosx.target.watchos9.4 | 14.3.1 |
| Asset Runtime SDK for macOS hosts targeting tvOS 16.4 | assetruntime.host.macosx.target.appletvos16.4 | 14.3.1 | | Asset Runtime SDK for macOS hosts targeting tvOS 16.4 | assetruntime.host.macosx.target.appletvos16.4 | 14.3.1 |
| Asset Runtime SDK for macOS hosts targeting iOS 16.4 | assetruntime.host.macosx.target.iphoneos16.4 | 14.3.1 | | Asset Runtime SDK for macOS hosts targeting iOS 16.4 | assetruntime.host.macosx.target.iphoneos16.4 | 14.3.1 |
@@ -210,45 +217,46 @@
| DriverKit 22.2 | driverkit22.2 | 14.2 | | DriverKit 22.2 | driverkit22.2 | 14.2 |
| DriverKit 22.4 | driverkit22.4 | 14.3.1 | | DriverKit 22.4 | driverkit22.4 | 14.3.1 |
| DriverKit 23.0 | driverkit23.0 | 15.0.1 | | DriverKit 23.0 | driverkit23.0 | 15.0.1 |
| DriverKit 23.2 | driverkit23.2 | 15.1, 15.2 | | DriverKit 23.2 | driverkit23.2 | 15.1 |
#### Installed Simulators #### Installed Simulators
| OS | Xcode Version | Simulators | | OS | Xcode Version | Simulators |
| ------------ | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------ | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 16.1 | 14.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 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 16.1 | 14.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 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 16.2 | 14.2 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 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 16.2 | 14.2 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 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 16.4 | 14.3.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 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 16.4 | 14.3.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 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.0 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>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.0 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>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 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>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 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>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) |
| tvOS 16.1 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) | | tvOS 16.1 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 16.4 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) | | tvOS 16.4 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.0 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) | | tvOS 17.0 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.2 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) | | tvOS 17.2 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 9.1 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) | | watchOS 9.1 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
| watchOS 9.4 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) | | watchOS 9.4 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
| watchOS 10.0 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) | | watchOS 10.0 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.2 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1<br>15.2 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) | | watchOS 10.2 | 14.1<br>14.2<br>14.3.1<br>15.0.1<br>15.1 | Apple Watch SE (40mm) (2nd generation)<br>Apple Watch SE (44mm) (2nd generation)<br>Apple Watch Series 5 (40mm)<br>Apple Watch Series 5 (44mm)<br>Apple Watch Series 6 (40mm)<br>Apple Watch Series 6 (44mm)<br>Apple Watch Series 7 (41mm)<br>Apple Watch Series 7 (45mm)<br>Apple Watch Series 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
### Android ### Android
| Package Name | Version | | Package Name | Version |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 | | Android Command Line Tools | 11.0 |
| Android Emulator | 34.2.13 | | Android Emulator | 33.1.23 |
| Android SDK Build-tools | 34.0.0<br>33.0.2 33.0.3 | | Android SDK Build-tools | 34.0.0<br>33.0.2 |
| Android SDK Platforms | android-34-ext8 (rev 1)<br>android-34-ext11 (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 Platforms | android-34-ext8 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 2)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 35.0.1 | | Android SDK Platform-Tools | 34.0.5 |
| Android Support Repository | 47.0.0 | | Android Support Repository | 47.0.0 |
| CMake | 3.22.1 | | CMake | 3.22.1 |
| Google Play services | 49 | | Google Play services | 49 |
| Google Repository | 58 | | Google Repository | 58 |
| NDK | 24.0.8215888<br>25.2.9519653<br>26.3.11579264 (default) | | NDK | 24.0.8215888<br>25.2.9519653<br>26.1.10909125 (default) |
#### Environment variables #### Environment variables
| Name | Value | | Name | Value |
| ----------------------- | --------------------------------------------------- | | ----------------------- | --------------------------------------------------- |
| ANDROID_HOME | /Users/runner/Library/Android/sdk | | ANDROID_HOME | /Users/runner/Library/Android/sdk |
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 | | ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 | | ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 | | ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 | | ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk | | ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
+91 -84
View File
@@ -1,14 +1,20 @@
| Announcements |
|-|
| [[All OSes] Powershell Core will be updated to 7.4.x LTS on January, 28](https://github.com/actions/runner-images/issues/9115) |
| [Old versions of Android SDK & tools will be removed from images on January, 8](https://github.com/actions/runner-images/issues/8952) |
| [Major Refactoring of GitHub Actions Runner Images Repository](https://github.com/actions/runner-images/issues/8706) |
***
# macOS 13 # macOS 13
- OS Version: macOS 13.6.6 (22G630) - OS Version: macOS 13.6.3 (22G436)
- Kernel Version: Darwin 22.6.0 - Kernel Version: Darwin 22.6.0
- Image Version: 20240514.3 - Image Version: 20240107.1
## Installed Software ## Installed Software
### Language and Runtime ### Language and Runtime
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.409, 8.0.101, 8.0.204, 8.0.300 - .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.404, 8.0.100
- Bash 3.2.57(1)-release - Bash 3.2.57(1)-release
- Clang/LLVM 14.0.0 - Clang/LLVM 14.0.3
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang` - Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
- GCC 11 (Homebrew GCC 11.4.0) - available by `gcc-11` alias - GCC 11 (Homebrew GCC 11.4.0) - available by `gcc-11` alias
- GCC 12 (Homebrew GCC 12.3.0) - available by `gcc-12` alias - GCC 12 (Homebrew GCC 12.3.0) - available by `gcc-12` alias
@@ -16,75 +22,74 @@
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias - GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
- GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias - GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.2.0) - available by `gfortran-13` alias - GNU Fortran 13 (Homebrew GCC 13.2.0) - available by `gfortran-13` alias
- Kotlin 1.9.24-release-822 - Julia 1.10.0
- Kotlin 1.9.22-release-704
- Mono 6.12.0.188 - Mono 6.12.0.188
- Node.js 20.13.1 - Node.js 18.19.0
- Perl 5.38.2 - Perl 5.38.2
- Python3 3.12.3 - R 4.3.2
- Ruby 3.0.7p220 - Ruby 3.0.6p216
### Package Management ### Package Management
- Bundler 2.5.10 - Bundler 2.5.4
- Carthage 0.39.1 - Carthage 0.39.1
- CocoaPods 1.15.2 - CocoaPods 1.14.3
- Homebrew 4.3.0 - Homebrew 4.2.2
- NPM 10.5.2 - NPM 10.2.3
- NuGet 6.3.1.1 - NuGet 6.3.1.1
- Pip3 24.0 (python 3.12) - RubyGems 3.5.4
- Pipx 1.5.0
- RubyGems 3.5.10
- Yarn 1.22.19 - Yarn 1.22.19
### Project Management ### Project Management
- Apache Ant 1.10.14 - Apache Ant 1.10.14
- Apache Maven 3.9.6 - Apache Maven 3.9.6
- Gradle 8.7 - Gradle 8.5
### Utilities ### Utilities
- 7-Zip 17.05 - 7-Zip 17.05
- aria2 1.37.0 - aria2 1.37.0
- azcopy 10.24.0 - azcopy 10.21.2
- bazel 7.1.2 - bazel 7.0.0
- bazelisk 1.20.0 - bazelisk 1.19.0
- bsdtar 3.5.3 - available by 'tar' alias - bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.4.0 - Curl 8.1.2
- Git 2.45.1 - Git 2.43.0
- Git LFS 3.5.1 - Git LFS 3.4.1
- GitHub CLI 2.49.2 - GitHub CLI 2.40.1
- GNU Tar 1.35 - available by 'gtar' alias - GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.24.5 - GNU Wget 1.21.4
- gpg (GnuPG) 2.4.5 - gpg (GnuPG) 2.4.3
- jq 1.7.1 - jq 1.7.1
- OpenSSL 1.1.1w 11 Sep 2023 - OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.9.4 - Packer 1.9.4
- pkg-config 0.29.2 - pkg-config 0.29.2
- yq 4.44.1 - yq 4.40.5
- zstd 1.5.6 - zstd 1.5.5
### Tools ### Tools
- AWS CLI 2.15.50 - AWS CLI 2.15.8
- AWS SAM CLI 1.116.0 - AWS SAM CLI 1.106.0
- AWS Session Manager CLI 1.2.553.0 - AWS Session Manager CLI 1.2.536.0
- Azure CLI 2.60.0 - Azure CLI 2.55.0
- Azure CLI (azure-devops) 1.0.0 - Azure CLI (azure-devops) 0.26.0
- Bicep CLI 0.27.1 - Bicep CLI 0.24.24
- Cmake 3.29.3 - Cmake 3.28.1
- CodeQL Action Bundle 2.17.2 - CodeQL Action Bundle 2.15.5
- Fastlane 2.220.0 - Fastlane 2.219.0
- SwiftFormat 0.53.9 - SwiftFormat 0.52.11
- Xcbeautify 2.3.1 - Xcbeautify 1.3.0
- Xcode Command Line Tools 14.3.1.0.1.1683849156 - Xcode Command Line Tools 15.1.0.0.1.1700200546
- Xcodes 1.4.1 - Xcodes 1.4.1
### Linters ### Linters
### Browsers ### Browsers
- Safari 17.4.1 (18618.1.15.111.8) - Safari 17.2.1 (18617.1.17.11.12)
- SafariDriver 17.4.1 (18618.1.15.111.8) - SafariDriver 17.2.1 (18617.1.17.11.12)
- Google Chrome 124.0.6367.208 - Google Chrome 120.0.6099.199
- Google Chrome for Testing 124.0.6367.207 - Google Chrome for Testing 120.0.6099.109
- ChromeDriver 124.0.6367.207 - ChromeDriver 120.0.6099.109
- Selenium server 4.20.0 - Selenium server 4.16.1
#### Environment variables #### Environment variables
| Name | Value | | Name | Value |
@@ -94,57 +99,58 @@
| GECKOWEBDRIVER | | | GECKOWEBDRIVER | |
### Java ### Java
| Version | Environment Variable | | Version | Environment Variable |
| ------------------- | -------------------- | | ------------------ | -------------------- |
| 11.0.23+9 | JAVA_HOME_11_arm64 | | 11.0.21+9 | JAVA_HOME_11_arm64 |
| 17.0.11+9 (default) | JAVA_HOME_17_arm64 | | 17.0.9+9 (default) | JAVA_HOME_17_arm64 |
| 21.0.3+9.0 | JAVA_HOME_21_arm64 | | 21.0.1+12.0 | JAVA_HOME_21_arm64 |
### Cached Tools ### Cached Tools
#### Python #### Python
- 3.9.13 - 3.11.7
- 3.10.11 - 3.12.1
- 3.11.9
- 3.12.3
#### Node.js #### Node.js
- 16.20.1 - 16.20.1
- 18.20.2 - 18.19.0
- 20.13.1 - 20.10.0
#### Go #### Go
- 1.20.14 - 1.19.13
- 1.21.10 - 1.20.12
- 1.22.3 - 1.21.5
### Rust Tools ### Rust Tools
- Cargo 1.78.0 - Cargo 1.75.0
- Rust 1.78.0 - Rust 1.75.0
- Rustdoc 1.78.0 - Rustdoc 1.75.0
- Rustup 1.27.1 - Rustup 1.26.0
#### Packages #### Packages
- Clippy 0.1.78 - Clippy 0.1.75
- Rustfmt 1.7.0-stable - Rustfmt 1.7.0-stable
### PowerShell Tools ### PowerShell Tools
- PowerShell 7.4.2 - PowerShell 7.2.17
#### PowerShell Modules #### PowerShell Modules
- Az: 11.6.0 - Az: 11.1.0
- Pester: 5.5.0 - Pester: 5.5.0
- PSScriptAnalyzer: 1.22.0 - PSScriptAnalyzer: 1.21.0
### Xcode ### Xcode
| Version | Build | Path | | Version | Build | Path |
| ---------------- | ------- | ------------------------------ | | ---------------- | -------- | ------------------------------ |
| 15.2 | 15C500b | /Applications/Xcode_15.2.app | | 15.2 (beta) | 15C5500c | /Applications/Xcode_15.2.app |
| 15.1 | 15C65 | /Applications/Xcode_15.1.app | | 15.1 | 15C65 | /Applications/Xcode_15.1.app |
| 15.0.1 (default) | 15A507 | /Applications/Xcode_15.0.1.app | | 15.0.1 | 15A507 | /Applications/Xcode_15.0.1.app |
| 14.3.1 | 14E300c | /Applications/Xcode_14.3.1.app | | 14.3.1 (default) | 14E300c | /Applications/Xcode_14.3.1.app |
| 14.2 | 14C18 | /Applications/Xcode_14.2.app | | 14.2 | 14C18 | /Applications/Xcode_14.2.app |
| 14.1 | 14B47b | /Applications/Xcode_14.1.app | | 14.1 | 14B47b | /Applications/Xcode_14.1.app |
#### Xcode Support Tools
- xcpretty 0.3.0
#### Installed SDKs #### Installed SDKs
| SDK | SDK Name | Xcode Version | | SDK | SDK Name | Xcode Version |
@@ -213,22 +219,23 @@
| Package Name | Version | | Package Name | Version |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 | | Android Command Line Tools | 11.0 |
| Android Emulator | 34.2.13 | | Android Emulator | 33.1.24 |
| Android SDK Build-tools | 34.0.0<br>33.0.2 33.0.3 | | Android SDK Build-tools | 34.0.0<br>33.0.2 |
| Android SDK Platforms | android-34-ext8 (rev 1)<br>android-34-ext11 (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 Platforms | android-34-ext8 (rev 1)<br>android-34-ext10 (rev 1)<br>android-34 (rev 2)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 35.0.1 | | Android SDK Platform-Tools | 34.0.5 |
| Android Support Repository | 47.0.0 | | Android Support Repository | 47.0.0 |
| CMake | 3.22.1 | | CMake | 3.22.1 |
| Google Play services | 49 | | Google Play services | 49 |
| Google Repository | 58 | | Google Repository | 58 |
| NDK | 24.0.8215888<br>25.2.9519653<br>26.3.11579264 (default) | | NDK | 24.0.8215888<br>25.2.9519653<br>26.1.10909125 (default) |
#### Environment variables #### Environment variables
| Name | Value | | Name | Value |
| ----------------------- | --------------------------------------------------- | | ----------------------- | --------------------------------------------------- |
| ANDROID_HOME | /Users/runner/Library/Android/sdk | | ANDROID_HOME | /Users/runner/Library/Android/sdk |
| ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 | | ANDROID_NDK | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 | | ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 | | ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 | | ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.1.10909125 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk | | ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
-254
View File
@@ -1,254 +0,0 @@
# macOS 14
- OS Version: macOS 14.4.1 (23E224)
- Kernel Version: Darwin 23.4.0
- Image Version: 20240514.3
## Installed Software
### Language and Runtime
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.409, 8.0.101, 8.0.204, 8.0.300
- Bash 3.2.57(1)-release
- Clang/LLVM 14.0.3
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
- GCC 11 (Homebrew GCC 11.4.0) - available by `gcc-11` alias
- GCC 12 (Homebrew GCC 12.3.0) - available by `gcc-12` alias
- GCC 13 (Homebrew GCC 13.2.0) - available by `gcc-13` alias
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
- GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.2.0) - available by `gfortran-13` alias
- Kotlin 1.9.24-release-822
- Mono 6.12.0.188
- Node.js 20.13.1
- Perl 5.38.2
- PHP 8.3.7
- Python3 3.12.3
- Ruby 3.0.7p220
### Package Management
- Bundler 2.5.10
- Carthage 0.39.1
- CocoaPods 1.15.2
- Composer 2.7.6
- Homebrew 4.3.0
- NPM 10.5.2
- NuGet 6.3.1.1
- Pip3 24.0 (python 3.12)
- Pipx 1.5.0
- RubyGems 3.5.10
- Yarn 1.22.19
### Project Management
- Apache Ant 1.10.14
- Apache Maven 3.9.6
- Gradle 8.7
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.24.0
- bazel 7.1.2
- bazelisk 1.20.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.7.1
- Git 2.45.1
- Git LFS 3.5.1
- GitHub CLI 2.49.2
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.24.5
- gpg (GnuPG) 2.4.5
- jq 1.7.1
- OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.9.4
- pkg-config 0.29.2
- yq 4.44.1
- zstd 1.5.6
### Tools
- AWS CLI 2.15.50
- AWS SAM CLI 1.116.0
- AWS Session Manager CLI 1.2.553.0
- Azure CLI 2.60.0
- Azure CLI (azure-devops) 1.0.0
- Bicep CLI 0.27.1
- Cmake 3.29.3
- CodeQL Action Bundle 2.17.2
- Fastlane 2.220.0
- SwiftFormat 0.53.9
- Xcbeautify 2.3.1
- Xcode Command Line Tools 15.3.0.0.1.1708646388
- Xcodes 1.4.1
### Linters
- SwiftLint 0.53.0
### Browsers
- Safari 17.4.1 (19618.1.15.11.14)
- SafariDriver 17.4.1 (19618.1.15.11.14)
- Google Chrome 124.0.6367.208
- Google Chrome for Testing 124.0.6367.207
- ChromeDriver 124.0.6367.207
- Microsoft Edge 124.0.2478.105
- Microsoft Edge WebDriver 124.0.2478.97
- Mozilla Firefox 126.0
- geckodriver 0.34.0
- Selenium server 4.20.0
#### Environment variables
| Name | Value |
| --------------- | ------------------------------------- |
| CHROMEWEBDRIVER | /usr/local/share/chromedriver-mac-x64 |
| EDGEWEBDRIVER | /usr/local/share/edge_driver |
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
### Java
| Version | Environment Variable |
| -------------------- | -------------------- |
| 8.0.412+8 | JAVA_HOME_8_X64 |
| 11.0.23+9 | JAVA_HOME_11_X64 |
| 17.0.11+9 | JAVA_HOME_17_X64 |
| 21.0.3+9.0 (default) | JAVA_HOME_21_X64 |
### Cached Tools
#### Ruby
- 3.0.7
- 3.1.5
#### Python
- 3.9.19
- 3.10.14
- 3.11.9
- 3.12.3
#### Node.js
- 18.20.2
- 20.13.1
#### Go
- 1.20.14
- 1.21.10
- 1.22.3
### Rust Tools
- Cargo 1.78.0
- Rust 1.78.0
- Rustdoc 1.78.0
- Rustup 1.27.1
#### Packages
- Clippy 0.1.78
- Rustfmt 1.7.0-stable
### PowerShell Tools
- PowerShell 7.4.2
#### PowerShell Modules
- Az: 11.6.0
- Pester: 5.5.0
- PSScriptAnalyzer: 1.22.0
### Xcode
| Version | Build | Path |
| ---------------- | ------- | ------------------------------ |
| 15.4 | 15F31c | /Applications/Xcode_15.4.app |
| 15.3 | 15E204a | /Applications/Xcode_15.3.app |
| 15.2 | 15C500b | /Applications/Xcode_15.2.app |
| 15.1 | 15C65 | /Applications/Xcode_15.1.app |
| 15.0.1 (default) | 15A507 | /Applications/Xcode_15.0.1.app |
| 14.3.1 | 14E300c | /Applications/Xcode_14.3.1.app |
#### Installed SDKs
| SDK | SDK Name | Xcode Version |
| ------------------------------------------------------- | --------------------------------------------- | ------------- |
| macOS 13.3 | macosx13.3 | 14.3.1 |
| macOS 14.0 | macosx14.0 | 15.0.1 |
| macOS 14.2 | macosx14.2 | 15.1, 15.2 |
| macOS 14.4 | macosx14.4 | 15.3 |
| macOS 14.5 | macosx14.5 | 15.4 |
| iOS 16.4 | iphoneos16.4 | 14.3.1 |
| iOS 17.0 | iphoneos17.0 | 15.0.1 |
| iOS 17.2 | iphoneos17.2 | 15.1, 15.2 |
| iOS 17.4 | iphoneos17.4 | 15.3 |
| iOS 17.5 | iphoneos17.5 | 15.4 |
| Simulator - iOS 16.4 | iphonesimulator16.4 | 14.3.1 |
| Simulator - iOS 17.0 | iphonesimulator17.0 | 15.0.1 |
| Simulator - iOS 17.2 | iphonesimulator17.2 | 15.1, 15.2 |
| Simulator - iOS 17.4 | iphonesimulator17.4 | 15.3 |
| Simulator - iOS 17.5 | iphonesimulator17.5 | 15.4 |
| tvOS 16.4 | appletvos16.4 | 14.3.1 |
| tvOS 17.0 | appletvos17.0 | 15.0.1 |
| tvOS 17.2 | appletvos17.2 | 15.1, 15.2 |
| tvOS 17.4 | appletvos17.4 | 15.3 |
| tvOS 17.5 | appletvos17.5 | 15.4 |
| Simulator - tvOS 16.4 | appletvsimulator16.4 | 14.3.1 |
| Simulator - tvOS 17.0 | appletvsimulator17.0 | 15.0.1 |
| Simulator - tvOS 17.2 | appletvsimulator17.2 | 15.1, 15.2 |
| Simulator - tvOS 17.4 | appletvsimulator17.4 | 15.3 |
| Simulator - tvOS 17.5 | appletvsimulator17.5 | 15.4 |
| watchOS 9.4 | watchos9.4 | 14.3.1 |
| watchOS 10.0 | watchos10.0 | 15.0.1 |
| watchOS 10.2 | watchos10.2 | 15.1, 15.2 |
| watchOS 10.4 | watchos10.4 | 15.3 |
| watchOS 10.5 | watchos10.5 | 15.4 |
| Simulator - watchOS 9.4 | watchsimulator9.4 | 14.3.1 |
| Simulator - watchOS 10.0 | watchsimulator10.0 | 15.0.1 |
| Simulator - watchOS 10.2 | watchsimulator10.2 | 15.1, 15.2 |
| Simulator - watchOS 10.4 | watchsimulator10.4 | 15.3 |
| Simulator - watchOS 10.5 | watchsimulator10.5 | 15.4 |
| visionOS 1.0 | xros1.0 | 15.2 |
| Simulator - visionOS 1.0 | xrsimulator1.0 | 15.2 |
| Simulator - visionOS 1.1 | xrsimulator1.1 | 15.3 |
| visionOS 1.1 | xros1.1 | 15.3 |
| Simulator - visionOS 1.2 | xrsimulator1.2 | 15.4 |
| visionOS 1.2 | xros1.2 | 15.4 |
| Asset Runtime SDK for macOS hosts targeting watchOS 9.4 | assetruntime.host.macosx.target.watchos9.4 | 14.3.1 |
| Asset Runtime SDK for macOS hosts targeting tvOS 16.4 | assetruntime.host.macosx.target.appletvos16.4 | 14.3.1 |
| Asset Runtime SDK for macOS hosts targeting iOS 16.4 | assetruntime.host.macosx.target.iphoneos16.4 | 14.3.1 |
| DriverKit 22.4 | driverkit22.4 | 14.3.1 |
| DriverKit 23.0 | driverkit23.0 | 15.0.1 |
| DriverKit 23.2 | driverkit23.2 | 15.1, 15.2 |
| DriverKit 23.4 | driverkit23.4 | 15.3 |
| DriverKit 23.5 | driverkit23.5 | 15.4 |
#### Installed Simulators
| OS | Xcode Version | Simulators |
| ------------ | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 16.4 | 14.3.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 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.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>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 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>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 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>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 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>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) |
| tvOS 16.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.2 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.5 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 9.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.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 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
| watchOS 10.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.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 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.2 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.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 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.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 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.5 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.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 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
### Android
| Package Name | Version |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 34.2.13 |
| Android SDK Build-tools | 34.0.0<br>33.0.2 33.0.3 |
| Android SDK Platforms | android-34-ext8 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 35.0.1 |
| Android Support Repository | 47.0.0 |
| CMake | 3.22.1 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 24.0.8215888<br>25.2.9519653<br>26.3.11579264 (default) |
#### Environment variables
| Name | Value |
| ----------------------- | --------------------------------------------------- |
| 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/26.3.11579264 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
-245
View File
@@ -1,245 +0,0 @@
# macOS 14
- OS Version: macOS 14.5 (23F79)
- Kernel Version: Darwin 23.5.0
- Image Version: 20240526.2
## Installed Software
### Language and Runtime
- .NET Core SDK: 7.0.102, 7.0.202, 7.0.306, 7.0.409, 8.0.101, 8.0.204, 8.0.300
- Bash 3.2.57(1)-release
- Clang/LLVM 14.0.3
- Clang/LLVM (Homebrew) 15.0.7 - available on `$(brew --prefix llvm@15)/bin/clang`
- GCC 11 (Homebrew GCC 11.4.0) - available by `gcc-11` alias
- GCC 12 (Homebrew GCC 12.3.0) - available by `gcc-12` alias
- GCC 13 (Homebrew GCC 13.3.0) - available by `gcc-13` alias
- GNU Fortran 11 (Homebrew GCC 11.4.0) - available by `gfortran-11` alias
- GNU Fortran 12 (Homebrew GCC 12.3.0) - available by `gfortran-12` alias
- GNU Fortran 13 (Homebrew GCC 13.3.0) - available by `gfortran-13` alias
- Kotlin 2.0.0-release-341
- Mono 6.12.0.188
- Node.js 20.13.1
- Perl 5.38.2
- Python3 3.12.3
- Ruby 3.0.7p220
### Package Management
- Bundler 2.5.10
- Carthage 0.39.1
- CocoaPods 1.15.2
- Homebrew 4.3.1
- NPM 10.5.2
- NuGet 6.3.1.1
- Pip3 24.0 (python 3.12)
- Pipx 1.5.0
- RubyGems 3.5.10
- Yarn 1.22.22
### Project Management
- Apache Ant 1.10.14
- Apache Maven 3.9.7
- Gradle 8.7
### Utilities
- 7-Zip 17.05
- aria2 1.37.0
- azcopy 10.24.0
- bazel 7.1.2
- bazelisk 1.20.0
- bsdtar 3.5.3 - available by 'tar' alias
- Curl 8.6.0
- Git 2.45.1
- Git LFS 3.5.1
- GitHub CLI 2.49.2
- GNU Tar 1.35 - available by 'gtar' alias
- GNU Wget 1.24.5
- gpg (GnuPG) 2.4.5
- jq 1.7.1
- OpenSSL 1.1.1w 11 Sep 2023
- Packer 1.9.4
- pkg-config 0.29.2
- yq 4.44.1
- zstd 1.5.6
### Tools
- AWS CLI 2.15.58
- AWS SAM CLI 1.117.0
- AWS Session Manager CLI 1.2.553.0
- Azure CLI 2.61.0
- Azure CLI (azure-devops) 1.0.1
- Bicep CLI 0.27.1
- Cmake 3.29.3
- CodeQL Action Bundle 2.17.3
- Fastlane 2.220.0
- SwiftFormat 0.53.10
- Xcbeautify 2.3.1
- Xcode Command Line Tools 15.3.0.0.1.1708646388
- Xcodes 1.4.1
### Linters
### Browsers
- Safari 17.5 (19618.2.12.11.6)
- SafariDriver 17.5 (19618.2.12.11.6)
- Google Chrome 125.0.6422.113
- Google Chrome for Testing 125.0.6422.78
- ChromeDriver 125.0.6422.78
- Selenium server 4.21.0
#### Environment variables
| Name | Value |
| --------------- | --------------------------------------- |
| CHROMEWEBDRIVER | /usr/local/share/chromedriver-mac-arm64 |
| EDGEWEBDRIVER | |
| GECKOWEBDRIVER | |
### Java
| Version | Environment Variable |
| -------------------- | -------------------- |
| 11.0.23+9 | JAVA_HOME_11_arm64 |
| 17.0.11+9 | JAVA_HOME_17_arm64 |
| 21.0.3+9.0 (default) | JAVA_HOME_21_arm64 |
### Cached Tools
#### Python
- 3.9.13
- 3.10.11
- 3.11.9
- 3.12.3
#### Node.js
- 18.20.3
- 20.13.1
#### Go
- 1.20.14
- 1.21.10
- 1.22.3
### Rust Tools
- Cargo 1.78.0
- Rust 1.78.0
- Rustdoc 1.78.0
- Rustup 1.27.1
#### Packages
- Clippy 0.1.78
- Rustfmt 1.7.0-stable
### PowerShell Tools
- PowerShell 7.4.2
#### PowerShell Modules
- Az: 12.0.0
- Pester: 5.5.0
- PSScriptAnalyzer: 1.22.0
### Xcode
| Version | Build | Path |
| ---------------- | ------- | ------------------------------ |
| 15.4 | 15F31d | /Applications/Xcode_15.4.app |
| 15.3 | 15E204a | /Applications/Xcode_15.3.app |
| 15.2 | 15C500b | /Applications/Xcode_15.2.app |
| 15.1 | 15C65 | /Applications/Xcode_15.1.app |
| 15.0.1 (default) | 15A507 | /Applications/Xcode_15.0.1.app |
| 14.3.1 | 14E300c | /Applications/Xcode_14.3.1.app |
#### Installed SDKs
| SDK | SDK Name | Xcode Version |
| ------------------------------------------------------- | --------------------------------------------- | ------------- |
| macOS 13.3 | macosx13.3 | 14.3.1 |
| macOS 14.0 | macosx14.0 | 15.0.1 |
| macOS 14.2 | macosx14.2 | 15.1, 15.2 |
| macOS 14.4 | macosx14.4 | 15.3 |
| macOS 14.5 | macosx14.5 | 15.4 |
| iOS 16.4 | iphoneos16.4 | 14.3.1 |
| iOS 17.0 | iphoneos17.0 | 15.0.1 |
| iOS 17.2 | iphoneos17.2 | 15.1, 15.2 |
| iOS 17.4 | iphoneos17.4 | 15.3 |
| iOS 17.5 | iphoneos17.5 | 15.4 |
| Simulator - iOS 16.4 | iphonesimulator16.4 | 14.3.1 |
| Simulator - iOS 17.0 | iphonesimulator17.0 | 15.0.1 |
| Simulator - iOS 17.2 | iphonesimulator17.2 | 15.1, 15.2 |
| Simulator - iOS 17.4 | iphonesimulator17.4 | 15.3 |
| Simulator - iOS 17.5 | iphonesimulator17.5 | 15.4 |
| tvOS 16.4 | appletvos16.4 | 14.3.1 |
| tvOS 17.0 | appletvos17.0 | 15.0.1 |
| tvOS 17.2 | appletvos17.2 | 15.1, 15.2 |
| tvOS 17.4 | appletvos17.4 | 15.3 |
| tvOS 17.5 | appletvos17.5 | 15.4 |
| Simulator - tvOS 16.4 | appletvsimulator16.4 | 14.3.1 |
| Simulator - tvOS 17.0 | appletvsimulator17.0 | 15.0.1 |
| Simulator - tvOS 17.2 | appletvsimulator17.2 | 15.1, 15.2 |
| Simulator - tvOS 17.4 | appletvsimulator17.4 | 15.3 |
| Simulator - tvOS 17.5 | appletvsimulator17.5 | 15.4 |
| watchOS 9.4 | watchos9.4 | 14.3.1 |
| watchOS 10.0 | watchos10.0 | 15.0.1 |
| watchOS 10.2 | watchos10.2 | 15.1, 15.2 |
| watchOS 10.4 | watchos10.4 | 15.3 |
| watchOS 10.5 | watchos10.5 | 15.4 |
| Simulator - watchOS 9.4 | watchsimulator9.4 | 14.3.1 |
| Simulator - watchOS 10.0 | watchsimulator10.0 | 15.0.1 |
| Simulator - watchOS 10.2 | watchsimulator10.2 | 15.1, 15.2 |
| Simulator - watchOS 10.4 | watchsimulator10.4 | 15.3 |
| Simulator - watchOS 10.5 | watchsimulator10.5 | 15.4 |
| visionOS 1.0 | xros1.0 | 15.2 |
| Simulator - visionOS 1.0 | xrsimulator1.0 | 15.2 |
| Simulator - visionOS 1.1 | xrsimulator1.1 | 15.3 |
| visionOS 1.1 | xros1.1 | 15.3 |
| Simulator - visionOS 1.2 | xrsimulator1.2 | 15.4 |
| visionOS 1.2 | xros1.2 | 15.4 |
| Asset Runtime SDK for macOS hosts targeting watchOS 9.4 | assetruntime.host.macosx.target.watchos9.4 | 14.3.1 |
| Asset Runtime SDK for macOS hosts targeting tvOS 16.4 | assetruntime.host.macosx.target.appletvos16.4 | 14.3.1 |
| Asset Runtime SDK for macOS hosts targeting iOS 16.4 | assetruntime.host.macosx.target.iphoneos16.4 | 14.3.1 |
| DriverKit 22.4 | driverkit22.4 | 14.3.1 |
| DriverKit 23.0 | driverkit23.0 | 15.0.1 |
| DriverKit 23.2 | driverkit23.2 | 15.1, 15.2 |
| DriverKit 23.4 | driverkit23.4 | 15.3 |
| DriverKit 23.5 | driverkit23.5 | 15.4 |
#### Installed Simulators
| OS | Xcode Version | Simulators |
| ------------ | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| iOS 16.4 | 14.3.1 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 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.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>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 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>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 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>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 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | iPhone 14<br>iPhone 14 Plus<br>iPhone 14 Pro<br>iPhone 14 Pro Max<br>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) |
| tvOS 16.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.2 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| tvOS 17.5 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | Apple TV<br>Apple TV 4K (3rd generation)<br>Apple TV 4K (3rd generation) (at 1080p) |
| watchOS 9.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.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 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Ultra (49mm) |
| watchOS 10.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.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 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.2 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.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 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.4 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.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 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
| watchOS 10.5 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.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 8 (41mm)<br>Apple Watch Series 8 (45mm)<br>Apple Watch Series 9 (41mm)<br>Apple Watch Series 9 (45mm)<br>Apple Watch Ultra (49mm)<br>Apple Watch Ultra 2 (49mm) |
| visionOS 1.0 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | Apple Vision Pro |
| visionOS 1.1 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | Apple Vision Pro |
| visionOS 1.2 | 14.3.1<br>15.0.1<br>15.1<br>15.2<br>15.3<br>15.4 | Apple Vision Pro |
### Android
| Package Name | Version |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| Android Command Line Tools | 11.0 |
| Android Emulator | 34.2.14 |
| Android SDK Build-tools | 34.0.0<br>33.0.2 33.0.3 |
| Android SDK Platforms | android-34-ext8 (rev 1)<br>android-34-ext11 (rev 1)<br>android-34 (rev 3)<br>android-33-ext5 (rev 1)<br>android-33-ext4 (rev 1)<br>android-33 (rev 3) |
| Android SDK Platform-Tools | 35.0.1 |
| Android Support Repository | 47.0.0 |
| CMake | 3.22.1 |
| Google Play services | 49 |
| Google Repository | 58 |
| NDK | 24.0.8215888<br>25.2.9519653<br>26.3.11579264 (default) |
#### Environment variables
| Name | Value |
| ----------------------- | --------------------------------------------------- |
| 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/26.3.11579264 |
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk/26.3.11579264 |
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
@@ -1,68 +0,0 @@
################################################################################
## File: Configure-Xcode-Simulators.ps1
## Team: CI-Build
## Desc: CHeck and remove duplicate simulators
################################################################################
Import-Module "~/image-generation/helpers/Common.Helpers.psm1"
Import-Module "~/image-generation/helpers/Xcode.Helpers.psm1"
$arch = Get-Architecture
$xcodeVersions = (Get-ToolsetContent).xcode.${arch}.versions
# Switch to each Xcode version
foreach ($xcodeVersion in $xcodeVersions.link) {
write-host "Switching to Xcode $xcodeVersion"
Switch-Xcode -Version $XcodeVersion
# Make object of all simulators
$devicesList = $(xcrun simctl list -j devices | ConvertFrom-Json)
$devicesObject = [System.Collections.ArrayList]@()
foreach ($runtime in $devicesList.devices.psobject.Properties.name) {
foreach ($device in $devicesList.devices.$runtime) {
$devicesObject += [PSCustomObject]@{
runtime = $runtime
DeviceName = $($device.name)
DeviceId = $($device.udid)
DeviceCreationTime = (Get-Item $HOME/Library/Developer/CoreSimulator/Devices/$($device.udid)).CreationTime
}
}
}
# Remove duplicates
foreach ($simRuntume in $devicesObject.runtime | Sort-Object -Unique) {
[System.Collections.ArrayList]$sameRuntimeDevices = [array]$($devicesObject | Where-Object {$_.runtime -eq $simRuntume} | Sort-Object -Property DeviceName)
Write-Host "///////////////////////////////////////////////////////////////////"
Write-Host "// Checking for duplicates in $simRuntume "
$devicesAsHashTable = $sameRuntimeDevices | Group-Object -Property DeviceName -AsHashTable -AsString
foreach ($key in $devicesAsHashTable.Keys) {
if ( $devicesAsHashTable[$key].count -gt 1) {
Write-Host "// Duplicates for $key - $($devicesAsHashTable[$key].count)"
}
}
Write-Host "///////////////////////////////////////////////////////////////////"
for ($i = 0; $i -lt $sameRuntimeDevices.Count; $i++) {
if ( [string]::IsNullOrEmpty($($sameRuntimeDevices[$i+1].DeviceName)) ){
Write-Host "No more devices to compare in $simRuntume"
Write-Host "-------------------------------------------------------------------"
continue
}
Write-Host "$($sameRuntimeDevices[$i].DeviceName) - DeviceId $($sameRuntimeDevices[$i].DeviceId) comparing with"
Write-Host "$($sameRuntimeDevices[$i+1].DeviceName) - DeviceId $($sameRuntimeDevices[$i+1].DeviceId)"
Write-Host "-------------------------------------------------------------------"
if ($sameRuntimeDevices[$i].DeviceName -eq $sameRuntimeDevices[$i+1].DeviceName) {
write-host "*******************************************************************"
write-host "** Duplicate found"
if ($sameRuntimeDevices[$i].DeviceCreationTime -lt $sameRuntimeDevices[$i+1].DeviceCreationTime) {
Write-Host "** will be removed $($sameRuntimeDevices[$i+1].DeviceName) with id $($sameRuntimeDevices[$i+1].DeviceId)"
xcrun simctl delete $sameRuntimeDevices[$i+1].DeviceId
$sameRuntimeDevices.RemoveAt($i+1)
} else {
Write-Host "** will be removed $($sameRuntimeDevices[$i].DeviceName) with id $($sameRuntimeDevices[$i].DeviceId)"
xcrun simctl delete $sameRuntimeDevices[$i].DeviceId
$sameRuntimeDevices.RemoveAt($i)
}
write-host "*******************************************************************"
}
}
}
}
@@ -14,7 +14,7 @@ scutil --set LocalHostName $name
scutil --set ComputerName "${name}.local" scutil --set ComputerName "${name}.local"
EOF EOF
chmod +x /usr/local/bin/change_hostname.sh chmod +x "/usr/local/bin/change_hostname.sh"
sudo tee -a /Library/LaunchDaemons/change_hostname.plist > /dev/null <<\EOF sudo tee -a /Library/LaunchDaemons/change_hostname.plist > /dev/null <<\EOF
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
@@ -22,7 +22,7 @@ if is_Veertu; then
fi fi
# Change screen resolution to the maximum supported for 4Mb video memory # Change screen resolution to the maximum supported for 4Mb video memory
if [[ -d "/Library/Application Support/VMware Tools" ]]; then if [ -d "/Library/Application Support/VMware Tools" ]; then
sudo "/Library/Application Support/VMware Tools/vmware-resolutionSet" 1176 885 sudo "/Library/Application Support/VMware Tools/vmware-resolutionSet" 1176 885
fi fi
@@ -60,7 +60,7 @@ rm -f ./add-certificate
# enable-automationmode-without-authentication # enable-automationmode-without-authentication
if ! is_BigSur; then if ! is_BigSur; then
retry=10 retry=10
while [[ $retry -gt 0 ]]; do while [ $retry -gt 0 ]; do
{ {
osascript <<EOF osascript <<EOF
tell application "Terminal" tell application "Terminal"
@@ -77,7 +77,7 @@ EOF
} && break } && break
retry=$((retry-1)) retry=$((retry-1))
if [[ $retry -eq 0 ]]; then if [ $retry -eq 0 ]; then
echo "No retry attempts left" echo "No retry attempts left"
exit 1 exit 1
fi fi
@@ -97,12 +97,9 @@ done
fi fi
# Create symlink for tests running # Create symlink for tests running
if [[ ! -d "/usr/local/bin" ]];then if [ ! -d "/usr/local/bin" ];then
sudo mkdir -p -m 775 /usr/local/bin sudo mkdir -p -m 775 /usr/local/bin
sudo chown $USER:admin /usr/local/bin sudo chown $USER:admin /usr/local/bin
fi fi
chmod +x $HOME/utils/invoke-tests.sh chmod +x $HOME/utils/invoke-tests.sh
sudo ln -s $HOME/utils/invoke-tests.sh /usr/local/bin/invoke_tests sudo ln -s $HOME/utils/invoke-tests.sh /usr/local/bin/invoke_tests
# Revert to the old behaviour and avoid the Git LFS problems (https://github.blog/2024-05-14-securing-git-addressing-5-new-vulnerabilities/)
echo "export GIT_CLONE_PROTECTION_ACTIVE=false" >> $HOME/.bashrc
@@ -8,7 +8,7 @@ Launch_Daemons="/Library/LaunchDaemons"
# EOF in quotes to disable variable expansion # EOF in quotes to disable variable expansion
echo "Creating limit.maxfiles.plist" echo "Creating limit.maxfiles.plist"
cat > ${Launch_Daemons}/limit.maxfiles.plist << EOF cat > "${Launch_Daemons}/limit.maxfiles.plist" << EOF
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd"> "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@@ -28,17 +28,17 @@ EOF
# Creating script for applying workaround https://developer.apple.com/forums/thread/735798 # Creating script for applying workaround https://developer.apple.com/forums/thread/735798
cat > /Users/runner/limit-maxfiles.sh << EOF cat > "/Users/runner/limit-maxfiles.sh" << EOF
#!/bin/bash #!/bin/bash
sudo launchctl limit maxfiles 256 unlimited sudo launchctl limit maxfiles 256 unlimited
sudo launchctl limit maxfiles 65536 524288 sudo launchctl limit maxfiles 65536 524288
EOF EOF
echo "limit.maxfiles.sh permissions changing" echo "limit.maxfiles.sh permissions changing"
chmod +x /Users/runner/limit-maxfiles.sh chmod +x "/Users/runner/limit-maxfiles.sh"
echo "limit.maxfiles.plist permissions changing" echo "limit.maxfiles.plist permissions changing"
chown root:wheel "${Launch_Daemons}/limit.maxfiles.plist" chown root:wheel "${Launch_Daemons}/limit.maxfiles.plist"
chmod 0644 ${Launch_Daemons}/limit.maxfiles.plist chmod 0644 "${Launch_Daemons}/limit.maxfiles.plist"
echo "Done, limit.maxfiles has been updated" echo "Done, limit.maxfiles has been updated"
@@ -7,7 +7,7 @@
################################################################################ ################################################################################
PLIST=/Library/LaunchDaemons/sonoma.detectnewhardware.plist PLIST=/Library/LaunchDaemons/sonoma.detectnewhardware.plist
cat <<EOF > ${PLIST} cat <<EOF > "${PLIST}"
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
@@ -27,8 +27,8 @@ EOF
# These should be already set as follows, but since they're required # These should be already set as follows, but since they're required
# in order to load properly, we set them explicitly. # in order to load properly, we set them explicitly.
/bin/chmod 644 ${PLIST} /bin/chmod 644 "${PLIST}"
/usr/sbin/chown root:wheel ${PLIST} /usr/sbin/chown root:wheel "${PLIST}"
: ' : '
The MIT License (MIT) The MIT License (MIT)
@@ -15,5 +15,5 @@ server time.windows.com
EOF EOF
# Set the timezone to UTC. # Set the timezone to UTC.
echo "The Timezone setting to UTC..." echo The Timezone setting to UTC...
ln -sf /usr/share/zoneinfo/UTC /etc/localtime ln -sf /usr/share/zoneinfo/UTC /etc/localtime
@@ -21,7 +21,7 @@ else
fi fi
release_label="macOS-${label_version}" release_label="macOS-${label_version}"
if is_Ventura || is_Sonoma || is_Monterey; then if is_VenturaX64 || is_SonomaX64; then
software_url="https://github.com/actions/runner-images/blob/${image_label}/${image_version}/images/macos/${image_label}-Readme.md" 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}" releaseUrl="https://github.com/actions/runner-images/releases/tag/${image_label}%2F${image_version}"
else else
@@ -5,7 +5,7 @@
################################################################################ ################################################################################
# set screensaver idleTime to 0, to prevent turning screensaver on # set screensaver idleTime to 0, to prevent turning screensaver on
macUUID=$(ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-62) macUUID=`ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-62`
rm -rf /Users/$USERNAME/Library/Preferences/com.apple.screensaver.$macUUID.plist rm -rf /Users/$USERNAME/Library/Preferences/com.apple.screensaver.$macUUID.plist
rm -rf /Users/$USERNAME/Library/Preferences/ByHost/com.apple.screensaver.$macUUID.plist rm -rf /Users/$USERNAME/Library/Preferences/ByHost/com.apple.screensaver.$macUUID.plist
@@ -24,19 +24,19 @@ while [[ $retry -gt 0 ]]; do
done done
IFS=',' read -r -a windowslist <<< "$openwindows" IFS=',' read -r -a windowslist <<< "$openwindows"
if [[ -n ${openwindows} ]]; then if [ -n "${openwindows}" ]; then
echo "Found opened window:" echo "Found opened window:"
fi fi
for key in ${!windowslist[@]}; do for window in "${windowslist[@]}"; do
if [[ ${windowslist[$key]} =~ "NotificationCenter" ]]; then if [[ $window =~ "NotificationCenter" ]]; then
echo "[Warning] ${windowslist[$key]}" echo "[Warning] $window"
else else
echo " - ${windowslist[$key]}" | xargs echo " - ${window}" | xargs
scripterror=true scripterror=true
fi fi
done done
if [[ ${scripterror} = true ]]; then if [ "${scripterror}" = true ]; then
exit 1 exit 1
fi fi
@@ -0,0 +1,19 @@
#!/bin/bash -e -o pipefail
################################################################################
## File: configure-xcode-symlinks.sh
## Desc: Link the existing Xcodes into the correct location for provisionator.
## This is maintained for backwards compatibility only. Do not add new xcodes here.
################################################################################
source ~/utils/utils.sh
ln -sf /Applications/Xcode_8.app /Applications/Xcode8.app
ln -sf /Applications/Xcode_8.1.app /Applications/Xcode81.app
ln -sf /Applications/Xcode_9.app /Applications/Xcode9.app
ln -sf /Applications/Xcode_9.1.app /Applications/Xcode91.app
ln -sf /Applications/Xcode_9.2.app /Applications/Xcode92.app
ln -sf /Applications/Xcode_9.3.app /Applications/Xcode93.app
ln -sf /Applications/Xcode_9.3.app /Applications/Xcode_9.3_beta.app
ln -sf /Applications/Xcode_9.4.app /Applications/Xcode_9.4-beta.app
ln -sf /Applications/Xcode_9.4.app /Applications/Xcode_9.4_beta.app
ln -sf /Applications/Xcode_9.4.app /Applications/Xcode_9.4_beta_2.app
@@ -13,14 +13,15 @@ DEFAULT_XCODE_VERSION=$(get_toolset_value '.xcode.default')
# Assets.xcassets : error : CoreData: error: (6922) I/O error for database # Assets.xcassets : error : CoreData: error: (6922) I/O error for database
# at $HOME/Library/Developer/Xcode/UserData/IB Support/Simulator Devices/{GUID} # at $HOME/Library/Developer/Xcode/UserData/IB Support/Simulator Devices/{GUID}
echo "Erase a device's contents and settings:" echo "Erase a device's contents and settings:"
for XCODE_VERSION in ${XCODE_LIST[@]}; do for XCODE_VERSION in "${XCODE_LIST[@]}"
do
echo " Xcode Version: ${XCODE_VERSION}" echo " Xcode Version: ${XCODE_VERSION}"
launchctl remove com.apple.CoreSimulator.CoreSimulatorService || true launchctl remove com.apple.CoreSimulator.CoreSimulatorService || true
#add sleep to let CoreSimulatorService to exit #add sleep to let CoreSimulatorService to exit
sleep 3 sleep 3
# Select xcode version by default # Select xcode version by default
sudo xcode-select -s /Applications/Xcode_${XCODE_VERSION}.app/Contents/Developer sudo xcode-select -s "/Applications/Xcode_${XCODE_VERSION}.app/Contents/Developer"
# Erase a device's contents and settings # Erase a device's contents and settings
xcrun simctl erase all xcrun simctl erase all
@@ -31,4 +32,4 @@ done
# Select xcode version by default # Select xcode version by default
echo "Setting Xcode ${DEFAULT_XCODE_VERSION} as default" echo "Setting Xcode ${DEFAULT_XCODE_VERSION} as default"
sudo xcode-select -s /Applications/Xcode_${DEFAULT_XCODE_VERSION}.app/Contents/Developer sudo xcode-select -s "/Applications/Xcode_${DEFAULT_XCODE_VERSION}.app/Contents/Developer"
@@ -8,13 +8,13 @@
source ~/utils/utils.sh source ~/utils/utils.sh
echo "Check if ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE folder exist..." echo "Check if ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE folder exist..."
if [[ ! -d $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE ]]; then if [ ! -d $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE ]; then
mkdir -p $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE mkdir -p $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE
fi fi
download_url=$(resolve_github_release_asset_url "actions/action-versions" "contains(\"action-versions.tar.gz\")" "latest") download_url=$(resolve_github_release_asset_url "actions/action-versions" "contains(\"action-versions.tar.gz\")" "latest")
echo "Downloading action-versions $download_url" echo "Downloading action-versions $download_url"
archive_path=$(download_with_retry $download_url) archive_path=$(download_with_retry "$download_url")
tar -xzf $archive_path -C $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE tar -xzf "$archive_path" -C "$ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE"
invoke_tests "ActionArchiveCache" invoke_tests "ActionArchiveCache"
@@ -6,37 +6,39 @@
source ~/utils/utils.sh source ~/utils/utils.sh
add_filtered_installation_components() { function filter_components_by_version {
local minimum_version=$1 minimumVersion=$1
shift shift
local tools_array=("$@") toolsArr=("$@")
for item in ${tools_array[@]}; do for item in ${toolsArr[@]}
# take the last argument after splitting string by ';'' and '-'' do
# take the last argument after spliting string by ';'' and '-''
version=$(echo "${item##*[-;]}") version=$(echo "${item##*[-;]}")
if [[ "$(printf "${minimum_version}\n${version}\n" | sort -V | head -n1)" == "$minimum_version" ]]; then if verlte $minimumVersion $version
then
components+=($item) components+=($item)
fi fi
done done
} }
get_full_ndk_version() { function get_full_ndk_version {
local majorVersion=$1 majorVersion=$1
ndkVersion=$(${SDKMANAGER} --list | grep "ndk;${majorVersion}.*" | awk '{gsub("ndk;", ""); print $1}' | sort -V | tail -n1) ndkVersion=$(${SDKMANAGER} --list | grep "ndk;${majorVersion}.*" | awk '{gsub("ndk;", ""); print $1}' | sort -V | tail -n1)
echo "$ndkVersion" echo "$ndkVersion"
} }
components=() components=()
android_platform=$(get_toolset_value '.android.platform_min_version') ANDROID_PLATFORM=$(get_toolset_value '.android.platform_min_version')
android_build_tool=$(get_toolset_value '.android.build_tools_min_version') ANDROID_BUILD_TOOL=$(get_toolset_value '.android.build_tools_min_version')
android_extra_list=($(get_toolset_value '.android."extras"[]')) ANDROID_EXTRA_LIST=($(get_toolset_value '.android."extras"[]'))
android_addon_list=($(get_toolset_value '.android."addons"[]')) ANDROID_ADDON_LIST=($(get_toolset_value '.android."addons"[]'))
android_additional_tools=($(get_toolset_value '.android."additional_tools"[]')) ANDROID_ADDITIONAL_TOOLS=($(get_toolset_value '.android."additional_tools"[]'))
android_ndk_major_versions=($(get_toolset_value '.android.ndk."versions"[]')) ANDROID_NDK_MAJOR_VERSIONS=($(get_toolset_value '.android.ndk."versions"[]'))
android_ndk_major_default=$(get_toolset_value '.android.ndk.default') ANDROID_NDK_MAJOR_DEFAULT=$(get_toolset_value '.android.ndk.default')
android_ndk_major_latest=$(get_toolset_value '.android.ndk."versions"[-1]') ANDROID_NDK_MAJOR_LATEST=$(get_toolset_value '.android.ndk."versions"[-1]')
# Get the latest command line tools from https://developer.android.com/studio#cmdline-tools # Get the latest command line tools from https://developer.android.com/studio#cmdline-tools
# Newer version(s) require Java 11 by default # Newer version(s) require Java 11 by default
# See https://github.com/actions/runner-images/issues/6960 # See https://github.com/actions/runner-images/issues/6960
@@ -79,15 +81,15 @@ echo "Installing latest tools & platform tools..."
echo y | $SDKMANAGER "tools" "platform-tools" echo y | $SDKMANAGER "tools" "platform-tools"
echo "Installing latest ndk..." echo "Installing latest ndk..."
for ndk_version in "${android_ndk_major_versions[@]}" for ndk_version in "${ANDROID_NDK_MAJOR_VERSIONS[@]}"
do do
ndk_full_version=$(get_full_ndk_version $ndk_version) ndk_full_version=$(get_full_ndk_version $ndk_version)
echo y | $SDKMANAGER "ndk;$ndk_full_version" echo y | $SDKMANAGER "ndk;$ndk_full_version"
done done
ndkDefault=$(get_full_ndk_version $android_ndk_major_default) ndkDefault=$(get_full_ndk_version $ANDROID_NDK_MAJOR_DEFAULT)
ANDROID_NDK_HOME=$ANDROID_HOME/ndk/$ndkDefault ANDROID_NDK_HOME=$ANDROID_HOME/ndk/$ndkDefault
ndkLatest=$(get_full_ndk_version $android_ndk_major_latest) ndkLatest=$(get_full_ndk_version $ANDROID_NDK_MAJOR_LATEST)
ANDROID_NDK_LATEST_HOME=$ANDROID_HOME/ndk/$ndkLatest ANDROID_NDK_LATEST_HOME=$ANDROID_HOME/ndk/$ndkLatest
# ANDROID_NDK, ANDROID_NDK_HOME, and ANDROID_NDK_ROOT variables should be set as many customer builds depend on them https://github.com/actions/runner-images/issues/5879 # ANDROID_NDK, ANDROID_NDK_HOME, and ANDROID_NDK_ROOT variables should be set as many customer builds depend on them https://github.com/actions/runner-images/issues/5879
echo "export ANDROID_NDK=$ANDROID_NDK_HOME" >> "${HOME}/.bashrc" echo "export ANDROID_NDK=$ANDROID_NDK_HOME" >> "${HOME}/.bashrc"
@@ -96,27 +98,27 @@ echo "export ANDROID_NDK_ROOT=$ANDROID_NDK_HOME" >> "${HOME}/.bashrc"
echo "export ANDROID_NDK_LATEST_HOME=$ANDROID_NDK_LATEST_HOME" >> "${HOME}/.bashrc" echo "export ANDROID_NDK_LATEST_HOME=$ANDROID_NDK_LATEST_HOME" >> "${HOME}/.bashrc"
availablePlatforms=($($SDKMANAGER --list | grep "platforms;android-[0-9]" | cut -d"|" -f 1 | sort -u)) availablePlatforms=($($SDKMANAGER --list | grep "platforms;android-[0-9]" | cut -d"|" -f 1 | sort -u))
add_filtered_installation_components $android_platform "${availablePlatforms[@]}" filter_components_by_version $ANDROID_PLATFORM "${availablePlatforms[@]}"
allBuildTools=($($SDKMANAGER --list --include_obsolete | grep "build-tools;" | cut -d"|" -f 1 | sort -u)) allBuildTools=($($SDKMANAGER --list --include_obsolete | grep "build-tools;" | cut -d"|" -f 1 | sort -u))
availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/}) availableBuildTools=$(echo ${allBuildTools[@]//*rc[0-9]/})
add_filtered_installation_components $android_build_tool "${availableBuildTools[@]}" filter_components_by_version $ANDROID_BUILD_TOOL "${availableBuildTools[@]}"
echo "y" | $SDKMANAGER ${components[@]} echo "y" | $SDKMANAGER ${components[@]}
for extra_name in "${android_extra_list[@]}" for extra_name in "${ANDROID_EXTRA_LIST[@]}"
do do
echo "Installing extra $extra_name ..." echo "Installing extra $extra_name ..."
echo y | $SDKMANAGER "extras;$extra_name" echo y | $SDKMANAGER "extras;$extra_name"
done done
for addon_name in "${android_addon_list[@]}" for addon_name in "${ANDROID_ADDON_LIST[@]}"
do do
echo "Installing add-on $addon_name ..." echo "Installing add-on $addon_name ..."
echo y | $SDKMANAGER "add-ons;$addon_name" echo y | $SDKMANAGER "add-ons;$addon_name"
done done
for tool_name in "${android_additional_tools[@]}" for tool_name in "${ANDROID_ADDITIONAL_TOOLS[@]}"
do do
echo "Installing additional tool $tool_name ..." echo "Installing additional tool $tool_name ..."
echo y | $SDKMANAGER "$tool_name" echo y | $SDKMANAGER "$tool_name"
@@ -12,4 +12,14 @@ brew_smart_install "switchaudio-osx"
echo "install sox" echo "install sox"
brew_smart_install "sox" brew_smart_install "sox"
# Big Sur doesn't support soundflower installation without user interaction https://github.com/mattingalls/Soundflower/releases/tag/2.0b2
# Install blackhole-2ch for Big Sur instead
echo "install blackhole-2ch"
brew_smart_install "blackhole-2ch"
echo "set BlackHole 2ch as input/output device"
SwitchAudioSource -s "BlackHole 2ch" -t input
SwitchAudioSource -s "BlackHole 2ch" -t output
invoke_tests "System" "Audio Device" invoke_tests "System" "Audio Device"
@@ -6,15 +6,13 @@
source ~/utils/utils.sh source ~/utils/utils.sh
echo "Installing aws..." echo Installing aws...
awscliv2_pkg_path=$(download_with_retry "https://awscli.amazonaws.com/AWSCLIV2.pkg") awscliv2_pkg_path=$(download_with_retry "https://awscli.amazonaws.com/AWSCLIV2.pkg")
sudo installer -pkg "$awscliv2_pkg_path" -target / sudo installer -pkg "$awscliv2_pkg_path" -target /
if ! is_BigSur; then echo Installing aws sam cli...
echo "Installing aws sam cli..." brew tap aws/tap
brew tap aws/tap brew_smart_install aws-sam-cli
brew_smart_install aws-sam-cli
fi
echo "Install aws cli session manager" echo "Install aws cli session manager"
brew install --cask session-manager-plugin brew install --cask session-manager-plugin
+8 -6
View File
@@ -7,17 +7,19 @@
source ~/utils/utils.sh source ~/utils/utils.sh
if is_Arm64; then if is_Arm64; then
url="https://aka.ms/downloadazcopy-v10-mac-arm64" # latest is available by https://aka.ms/downloadazcopy-v10-mac-arm64
url="https://azcopyvnext.azureedge.net/releases/release-10.21.2-20231106/azcopy_darwin_arm64_10.21.2.zip"
else else
url="https://aka.ms/downloadazcopy-v10-mac" # latest is available by https://aka.ms/downloadazcopy-v10-mac
url="https://azcopyvnext.azureedge.net/releases/release-10.21.2-20231106/azcopy_darwin_amd64_10.21.2.zip"
fi fi
# Install AzCopy # Install AzCopy
archive_path=$(download_with_retry ${url}) archive_path=$(download_with_retry "${url}")
unzip -qq $archive_path -d /tmp/azcopy unzip -qq "$archive_path" -d /tmp/azcopy
extract_path=$(echo /tmp/azcopy/azcopy*) extract_path=$(echo /tmp/azcopy/azcopy*)
cp $extract_path/azcopy /usr/local/bin/azcopy cp "$extract_path/azcopy" "/usr/local/bin/azcopy"
chmod +x /usr/local/bin/azcopy chmod +x "/usr/local/bin/azcopy"
invoke_tests "Common" "AzCopy" invoke_tests "Common" "AzCopy"
+1 -1
View File
@@ -6,7 +6,7 @@
source ~/utils/utils.sh source ~/utils/utils.sh
echo "Installing bicep cli..." echo Installing bicep cli...
brew tap azure/bicep brew tap azure/bicep
brew_smart_install bicep brew_smart_install bicep
+14 -14
View File
@@ -19,32 +19,32 @@ echo "Google Chrome version is $full_chrome_version"
# Get Google Chrome versions information # Get Google Chrome versions information
chrome_platform="mac-$arch" chrome_platform="mac-$arch"
CHROME_VERSIONS_URL="https://googlechromelabs.github.io/chrome-for-testing/latest-patch-versions-per-build-with-downloads.json" CHROME_VERSIONS_URL="https://googlechromelabs.github.io/chrome-for-testing/latest-patch-versions-per-build-with-downloads.json"
chrome_versions_json="$(cat $(download_with_retry "$CHROME_VERSIONS_URL"))" chrome_versions_json="$(cat "$(download_with_retry "$CHROME_VERSIONS_URL")")"
# Download and unpack the latest release of Chrome Driver # Download and unpack the latest release of Chrome Driver
chromedriver_version=$(echo $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].version') chromedriver_version=$(echo "${chrome_versions_json}" | jq -r '.builds["'"$chrome_version"'"].version')
echo "Installing Chrome Driver version $chromedriver_version" echo "Installing Chrome Driver version $chromedriver_version"
chromedriver_url=$(echo $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].downloads.chromedriver[] | select(.platform=="'"${chrome_platform}"'").url') chromedriver_url=$(echo "${chrome_versions_json}" | jq -r '.builds["'"$chrome_version"'"].downloads.chromedriver[] | select(.platform=="'"${chrome_platform}"'").url')
chromedriver_dir="/usr/local/share/chromedriver-$chrome_platform" chromedriver_dir="/usr/local/share/chromedriver-${chrome_platform}"
chromedriver_bin="$chromedriver_dir/chromedriver" chromedriver_bin="$chromedriver_dir/chromedriver"
chromedriver_archive_path=$(download_with_retry $chromedriver_url) chromedriver_archive_path=$(download_with_retry "$chromedriver_url")
unzip -qq $chromedriver_archive_path -d /tmp/ unzip -qq "$chromedriver_archive_path" -d /tmp/
sudo mv /tmp/chromedriver-$chrome_platform $chromedriver_dir sudo mv "/tmp/chromedriver-${chrome_platform}" "$chromedriver_dir"
ln -s $chromedriver_bin /usr/local/bin/chromedriver ln -s "$chromedriver_bin" /usr/local/bin/chromedriver
echo "export CHROMEWEBDRIVER=$chromedriver_dir" >> ${HOME}/.bashrc echo "export CHROMEWEBDRIVER=$chromedriver_dir" >> "${HOME}/.bashrc"
# Download and unpack the latest release of Google Chrome for Testing # Download and unpack the latest release of Google Chrome for Testing
chrome_for_testing_version=$(echo $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].version') chrome_for_testing_version=$(echo "${chrome_versions_json}" | jq -r '.builds["'"$chrome_version"'"].version')
echo "Installing Google Chrome for Testing version $chrome_for_testing_version" echo "Installing Google Chrome for Testing version $chrome_for_testing_version"
chrome_for_testing_url=$(echo $chrome_versions_json | jq -r '.builds["'"$chrome_version"'"].downloads.chrome[] | select(.platform=="'"${chrome_platform}"'").url') chrome_for_testing_url=$(echo "${chrome_versions_json}" | jq -r '.builds["'"$chrome_version"'"].downloads.chrome[] | select(.platform=="'"${chrome_platform}"'").url')
chrome_for_testing_app="Google Chrome for Testing.app" chrome_for_testing_app="Google Chrome for Testing.app"
chrome_for_testing_archive_path=$(download_with_retry $chrome_for_testing_url) chrome_for_testing_archive_path=$(download_with_retry "$chrome_for_testing_url")
unzip -qq $chrome_for_testing_archive_path -d /tmp/ unzip -qq "$chrome_for_testing_archive_path" -d /tmp/
mv "/tmp/chrome-$chrome_platform/$chrome_for_testing_app" "/Applications/$chrome_for_testing_app" mv "/tmp/chrome-${chrome_platform}/${chrome_for_testing_app}" "/Applications/${chrome_for_testing_app}"
echo "Installing Selenium" echo "Installing Selenium"
brew_smart_install "selenium-server" brew_smart_install "selenium-server"
@@ -8,7 +8,7 @@ source ~/utils/utils.sh
# Retrieve the CLI version of the latest CodeQL bundle. # Retrieve the CLI version of the latest CodeQL bundle.
defaults_json_path=$(download_with_retry https://raw.githubusercontent.com/github/codeql-action/v2/src/defaults.json) defaults_json_path=$(download_with_retry https://raw.githubusercontent.com/github/codeql-action/v2/src/defaults.json)
bundle_version=$(jq -r '.cliVersion' $defaults_json_path) bundle_version="$(jq -r '.cliVersion' "$defaults_json_path")"
bundle_tag_name="codeql-bundle-v$bundle_version" bundle_tag_name="codeql-bundle-v$bundle_version"
echo "Downloading CodeQL bundle $bundle_version..." echo "Downloading CodeQL bundle $bundle_version..."
@@ -16,17 +16,17 @@ echo "Downloading CodeQL bundle $bundle_version..."
# different operating systems within containers. # different operating systems within containers.
archive_path=$(download_with_retry "https://github.com/github/codeql-action/releases/download/$bundle_tag_name/codeql-bundle.tar.gz") archive_path=$(download_with_retry "https://github.com/github/codeql-action/releases/download/$bundle_tag_name/codeql-bundle.tar.gz")
codeql_toolcache_path=$AGENT_TOOLSDIRECTORY/CodeQL/$bundle_version/x64 codeql_toolcache_path="$AGENT_TOOLSDIRECTORY/CodeQL/$bundle_version/x64"
mkdir -p $codeql_toolcache_path mkdir -p "$codeql_toolcache_path"
echo "Unpacking the downloaded CodeQL bundle archive..." echo "Unpacking the downloaded CodeQL bundle archive..."
tar -xzf $archive_path -C $codeql_toolcache_path tar -xzf "$archive_path" -C "$codeql_toolcache_path"
# Touch a file to indicate to the CodeQL Action that this bundle shipped with the toolcache. This is # Touch a file to indicate to the CodeQL Action that this bundle shipped with the toolcache. This is
# to support overriding the CodeQL version specified in defaults.json on GitHub Enterprise. # to support overriding the CodeQL version specified in defaults.json on GitHub Enterprise.
touch $codeql_toolcache_path/pinned-version touch "$codeql_toolcache_path/pinned-version"
# Touch a file to indicate to the toolcache that setting up CodeQL is complete. # Touch a file to indicate to the toolcache that setting up CodeQL is complete.
touch $codeql_toolcache_path.complete touch "$codeql_toolcache_path.complete"
invoke_tests "Common" "CodeQL Bundle" invoke_tests "Common" "CodeQL Bundle"
@@ -18,13 +18,7 @@ fi
common_packages=$(get_toolset_value '.brew.common_packages[]') common_packages=$(get_toolset_value '.brew.common_packages[]')
for package in $common_packages; do for package in $common_packages; do
echo "Installing $package..." echo "Installing $package..."
if is_Monterey && [[ $package == "xcbeautify" ]]; then brew_smart_install "$package"
# Pin the version on Monterey as 2.0.x requires Xcode >=15.0 which is not available on OS12
xcbeautify_path=$(download_with_retry "https://raw.githubusercontent.com/Homebrew/homebrew-core/d3653e83f9c029a3fddb828ac804b07ac32f7b3b/Formula/x/xcbeautify.rb")
brew install "$xcbeautify_path"
else
brew_smart_install "$package"
fi
done done
cask_packages=$(get_toolset_value '.brew.cask_packages[]') cask_packages=$(get_toolset_value '.brew.cask_packages[]')
@@ -34,9 +28,9 @@ for package in $cask_packages; do
# Do not update VirtualBox on macOS 12 due to the issue with VMs in gurumediation state which blocks Vagrant on macOS: https://github.com/actions/runner-images/issues/8730 # Do not update VirtualBox on macOS 12 due to the issue with VMs in gurumediation state which blocks Vagrant on macOS: https://github.com/actions/runner-images/issues/8730
# macOS host: Dropped all kernel extensions. VirtualBox relies fully on the hypervisor and vmnet frameworks provided by Apple now. # macOS host: Dropped all kernel extensions. VirtualBox relies fully on the hypervisor and vmnet frameworks provided by Apple now.
virtualbox_cask_path=$(download_with_retry "https://raw.githubusercontent.com/Homebrew/homebrew-cask/aa3c55951fc9d687acce43e5c0338f42c1ddff7b/Casks/virtualbox.rb") virtualbox_cask_path=$(download_with_retry "https://raw.githubusercontent.com/Homebrew/homebrew-cask/aa3c55951fc9d687acce43e5c0338f42c1ddff7b/Casks/virtualbox.rb")
brew install $virtualbox_cask_path brew install "$virtualbox_cask_path"
else else
brew install --cask $package brew install --cask "$package"
fi fi
done done
@@ -57,7 +51,7 @@ if is_Monterey; then
osascript $HOME/utils/confirm-identified-developers.scpt $USER_PASSWORD osascript $HOME/utils/confirm-identified-developers.scpt $USER_PASSWORD
} && break } && break
if [[ $retry -eq 0 ]]; then if [[ "$retry" -eq 0 ]]; then
echo "Executing AppleScript failed. No retries left" echo "Executing AppleScript failed. No retries left"
exit 1 exit 1
fi fi
@@ -81,24 +75,25 @@ if is_Monterey; then
dbQuery="SELECT * FROM kext_policy WHERE bundle_id LIKE 'com.parallels.kext.%';" dbQuery="SELECT * FROM kext_policy WHERE bundle_id LIKE 'com.parallels.kext.%';"
kext=$(sudo sqlite3 $dbName "$dbQuery") kext=$(sudo sqlite3 $dbName "$dbQuery")
if [[ -z $kext ]]; then if [[ -z "$kext" ]]; then
echo "Parallels International GmbH not found" echo "Parallels International GmbH not found"
exit 1 exit 1
fi fi
# Create env variable # Create env variable
url=$(brew info --json=v2 --installed | jq -r '.casks[] | select(.name[] == "Parallels Desktop").url') url=$(brew info --json=v2 --installed | jq -r '.casks[] | select(.name[] == "Parallels Desktop").url')
if [[ -z $url ]]; then if [[ -z "$url" ]]; then
echo "Unable to parse url for Parallels Desktop cask" echo "Unable to parse url for Parallels Desktop cask"
exit 1 exit 1
fi fi
echo "export PARALLELS_DMG_URL=$url" >> ${HOME}/.bashrc echo "export PARALLELS_DMG_URL=$url" >> "${HOME}/.bashrc"
fi fi
if ! is_BigSur; then # Invoke bazel to download bazel version via bazelisk
# Install Azure DevOps extension for Azure Command Line Interface bazel
az extension add -n azure-devops
fi # Install Azure DevOps extension for Azure Command Line Interface
az extension add -n azure-devops
# Invoke tests for all basic tools # Invoke tests for all basic tools
invoke_tests "BasicTools" invoke_tests "BasicTools"
+8 -8
View File
@@ -13,32 +13,32 @@ arch=$(get_arch)
# Download installer from dot.net and keep it locally # Download installer from dot.net and keep it locally
DOTNET_INSTALL_SCRIPT="https://dot.net/v1/dotnet-install.sh" DOTNET_INSTALL_SCRIPT="https://dot.net/v1/dotnet-install.sh"
install_script_path=$(download_with_retry $DOTNET_INSTALL_SCRIPT) install_script_path=$(download_with_retry $DOTNET_INSTALL_SCRIPT)
chmod +x $install_script_path chmod +x "$install_script_path"
args_list=() args_list=()
echo "Parsing dotnet SDK (except rc and preview versions) from .json..." echo "Parsing dotnet SDK (except rc and preview versions) from .json..."
dotnet_versions=($(get_toolset_value ".dotnet.arch[\"$arch\"].versions | .[]")) dotnet_versions=($(get_toolset_value ".dotnet.arch[\"$arch\"].versions | .[]"))
for dotnet_version in ${dotnet_versions[@]}; do for dotnet_version in "${dotnet_versions[@]}"; do
release_url="https://raw.githubusercontent.com/dotnet/core/main/release-notes/${dotnet_version}/releases.json" release_url="https://raw.githubusercontent.com/dotnet/core/main/release-notes/${dotnet_version}/releases.json"
releases_json_file=$(download_with_retry "$release_url") releases_json_file=$(download_with_retry "$release_url")
if [[ $dotnet_version == "6.0" ]]; then if [[ $dotnet_version == "6.0" ]]; then
args_list+=( args_list+=(
$(cat $releases_json_file | jq -r 'first(.releases[].sdks[]?.version | select(contains("preview") or contains("rc") | not))') $(cat "$releases_json_file" | jq -r 'first(.releases[].sdks[]?.version | select(contains("preview") or contains("rc") | not))')
) )
else else
args_list+=( args_list+=(
$(cat $releases_json_file | \ $(cat "$releases_json_file" | \
jq -r '.releases[].sdk."version"' | grep -v -E '\-(preview|rc)\d*' | \ jq -r '.releases[].sdk."version"' | grep -v -E '\-(preview|rc)\d*' | \
sort -r | rev | uniq -s 2 | rev) sort -r | rev | uniq -s 2 | rev)
) )
fi fi
done done
for ARGS in ${args_list[@]}; do for ARGS in "${args_list[@]}"; do
$install_script_path --version $ARGS -NoPath --arch $arch "$install_script_path" --version $ARGS -NoPath --arch $arch
done done
# dotnet installer doesn't create symlink to executable in /user/local/bin # dotnet installer doesn't create symlink to executable in /user/local/bin
@@ -46,12 +46,12 @@ done
ln -s ~/.dotnet/dotnet /usr/local/bin/dotnet ln -s ~/.dotnet/dotnet /usr/local/bin/dotnet
# Validate installation # Validate installation
if [[ $(dotnet --list-sdks | wc -l) -lt "1" ]]; then if [ $(dotnet --list-sdks | wc -l) -lt "1" ]; then
echo "The .NET Core SDK is not installed" echo "The .NET Core SDK is not installed"
exit 1 exit 1
fi fi
echo 'export PATH="$PATH:$HOME/.dotnet/tools"' >> $HOME/.bashrc echo 'export PATH="$PATH:$HOME/.dotnet/tools"' >> "$HOME/.bashrc"
echo "Dotnet operations have been completed successfully..." echo "Dotnet operations have been completed successfully..."
invoke_tests "Common" ".NET" invoke_tests "Common" ".NET"
+3 -3
View File
@@ -30,10 +30,10 @@ edge_driver_archive_path=$(download_with_retry "$edge_driver_url")
EDGE_DRIVER_DIR="/usr/local/share/edge_driver" EDGE_DRIVER_DIR="/usr/local/share/edge_driver"
mkdir -p $EDGE_DRIVER_DIR mkdir -p $EDGE_DRIVER_DIR
unzip -qq $edge_driver_archive_path -d $EDGE_DRIVER_DIR unzip -qq "$edge_driver_archive_path" -d "$EDGE_DRIVER_DIR"
ln -s $EDGE_DRIVER_DIR/msedgedriver /usr/local/bin/msedgedriver ln -s "$EDGE_DRIVER_DIR/msedgedriver" "/usr/local/bin/msedgedriver"
echo "export EDGEWEBDRIVER=${EDGE_DRIVER_DIR}" >> ${HOME}/.bashrc echo "export EDGEWEBDRIVER=${EDGE_DRIVER_DIR}" >> "${HOME}/.bashrc"
# Configure Edge Updater to prevent auto update # Configure Edge Updater to prevent auto update
# https://learn.microsoft.com/en-us/deployedge/edge-learnmore-edgeupdater-for-macos # https://learn.microsoft.com/en-us/deployedge/edge-learnmore-edgeupdater-for-macos
@@ -14,6 +14,6 @@ brew_smart_install "geckodriver"
geckoPath="$(brew --prefix geckodriver)/bin" geckoPath="$(brew --prefix geckodriver)/bin"
echo "Add GECKOWEBDRIVER to bashrc..." echo "Add GECKOWEBDRIVER to bashrc..."
echo "export GECKOWEBDRIVER=${geckoPath}" >> ${HOME}/.bashrc echo "export GECKOWEBDRIVER=${geckoPath}" >> "${HOME}/.bashrc"
invoke_tests "Browsers" "Firefox" invoke_tests "Browsers" "Firefox"
+1 -1
View File
@@ -14,7 +14,7 @@ done
# Delete default gfortran link if it exists https://github.com/actions/runner-images/issues/1280 # Delete default gfortran link if it exists https://github.com/actions/runner-images/issues/1280
gfortranPath=$(which gfortran) || true gfortranPath=$(which gfortran) || true
if [[ $gfortranPath ]]; then if [ $gfortranPath ]; then
rm $gfortranPath rm $gfortranPath
fi fi
+8 -11
View File
@@ -6,23 +6,20 @@
source ~/utils/utils.sh source ~/utils/utils.sh
echo "Installing Git..." echo Installing Git...
brew_smart_install "git" brew_smart_install "git"
git config --global --add safe.directory "*" git config --global --add safe.directory "*"
echo Installing Git LFS
brew_smart_install "git-lfs"
if ! is_BigSur; then # Update global git config
echo "Installing Git LFS" git lfs install
brew_smart_install "git-lfs" # Update system git config
sudo git lfs install --system
# Update global git config echo Disable all the Git help messages...
git lfs install
# Update system git config
sudo git lfs install --system
fi
echo "Disable all the Git help messages..."
git config --global advice.pushUpdateRejected false git config --global advice.pushUpdateRejected false
git config --global advice.pushNonFFCurrent false git config --global advice.pushNonFFCurrent false
git config --global advice.pushNonFFMatching false git config --global advice.pushNonFFMatching false
@@ -6,9 +6,9 @@
source ~/utils/utils.sh source ~/utils/utils.sh
curl --proto '=https' --tlsv1.2 -fsSL https://get-ghcup.haskell.org | bash curl --proto '=https' --tlsv1.2 -fsSL https://get-ghcup.haskell.org | sh
export PATH="$HOME/.ghcup/bin:$PATH" export PATH="$HOME/.ghcup/bin:$PATH"
echo 'export PATH="$PATH:$HOME/.ghcup/bin"' >> $HOME/.bashrc echo 'export PATH="$PATH:$HOME/.ghcup/bin"' >> "$HOME/.bashrc"
# ghcup output looks like this "ghc 8.6.4 base-4.12.0.0 hls-powered", need to take all the first versions only(8.6.4 in that case) and avoid pre-release ones # ghcup output looks like this "ghc 8.6.4 base-4.12.0.0 hls-powered", need to take all the first versions only(8.6.4 in that case) and avoid pre-release ones
availableVersions=$(ghcup list -t ghc -r | grep -v "prerelease" | awk '{print $2}') availableVersions=$(ghcup list -t ghc -r | grep -v "prerelease" | awk '{print $2}')
@@ -10,7 +10,7 @@ arch=$(get_arch)
echo "Installing Homebrew..." echo "Installing Homebrew..."
homebrew_installer_path=$(download_with_retry "https://raw.githubusercontent.com/Homebrew/install/master/install.sh") homebrew_installer_path=$(download_with_retry "https://raw.githubusercontent.com/Homebrew/install/master/install.sh")
/bin/bash $homebrew_installer_path /bin/bash "$homebrew_installer_path"
if [[ $arch == "arm64" ]]; then if [[ $arch == "arm64" ]]; then
/opt/homebrew/bin/brew update /opt/homebrew/bin/brew update
@@ -7,16 +7,16 @@
source ~/utils/utils.sh source ~/utils/utils.sh
miniconda_installer_path=$(download_with_retry "https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh") miniconda_installer_path=$(download_with_retry "https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh")
chmod +x $miniconda_installer_path chmod +x "$miniconda_installer_path"
sudo $miniconda_installer_path -b -p /usr/local/miniconda sudo "$miniconda_installer_path" -b -p /usr/local/miniconda
# Chmod with full permissions recursively to avoid permissions restrictions # Chmod with full permissions recursively to avoid permissions restrictions
sudo chmod -R 777 /usr/local/miniconda sudo chmod -R 777 /usr/local/miniconda
sudo ln -s /usr/local/miniconda/bin/conda /usr/local/bin/conda sudo ln -s /usr/local/miniconda/bin/conda /usr/local/bin/conda
if [[ -d $HOME/.conda ]]; then if [ -d "$HOME/.conda" ]; then
sudo chown -R $USER $HOME/.conda sudo chown -R $USER "$HOME/.conda"
fi fi
echo "export CONDA=/usr/local/miniconda" >> $HOME/.bashrc echo "export CONDA=/usr/local/miniconda" >> $HOME/.bashrc
@@ -14,10 +14,10 @@ toolsetVersion=$(get_toolset_value '.mongodb.version')
brew tap mongodb/brew brew tap mongodb/brew
versionToInstall=$(brew search --formulae /mongodb-community@$toolsetVersion/ | awk -F'/' '{print $3}' | tail -1) versionToInstall=$(brew search --formulae /mongodb-community@$toolsetVersion/ | awk -F'/' '{print $3}' | tail -1)
echo "Installing mongodb $versionToInstall" echo "Installing mongodb $versionToInstall"
brew_smart_install $versionToInstall brew_smart_install "$versionToInstall"
if ! which mongo ; then if ! which mongo ; then
brew link $versionToInstall brew link "$versionToInstall"
fi fi
invoke_tests "Databases" "MongoDB" invoke_tests "Databases" "MongoDB"
+13 -13
View File
@@ -9,28 +9,28 @@ source ~/utils/utils.sh
# Install Mono Framework # Install Mono Framework
mono_version_full=$(get_toolset_value '.mono.framework.version') mono_version_full=$(get_toolset_value '.mono.framework.version')
mono_pkg_sha256=$(get_toolset_value '.mono.framework.sha256') mono_pkg_sha256=$(get_toolset_value '.mono.framework.sha256')
mono_version=$(echo $mono_version_full | cut -d. -f 1,2,3) mono_version=$(echo "$mono_version_full" | cut -d. -f 1,2,3)
mono_version_short=$(echo $mono_version_full | cut -d. -f 1,2) mono_version_short=$(echo $mono_version_full | cut -d. -f 1,2)
mono_pkg_url="https://download.mono-project.com/archive/${mono_version}/macos-10-universal/MonoFramework-MDK-${mono_version_full}.macos10.xamarin.universal.pkg" mono_pkg_url="https://download.mono-project.com/archive/${mono_version}/macos-10-universal/MonoFramework-MDK-${mono_version_full}.macos10.xamarin.universal.pkg"
MONO_VERSIONS_PATH='/Library/Frameworks/Mono.framework/Versions' MONO_VERSIONS_PATH='/Library/Frameworks/Mono.framework/Versions'
mono_pkg_path=$(download_with_retry $mono_pkg_url) mono_pkg_path=$(download_with_retry "$mono_pkg_url")
use_checksum_comparison $mono_pkg_path $mono_pkg_sha256 use_checksum_comparison "$mono_pkg_path" "$mono_pkg_sha256"
echo "Installing Mono Framework ${mono_version_full}..." echo "Installing Mono Framework ${mono_version_full}..."
sudo installer -pkg $mono_pkg_path -target / sudo installer -pkg "$mono_pkg_path" -target /
# Download and install NUnit console # Download and install NUnit console
nunit_version=$(get_toolset_value '.mono.nunit.version') nunit_version=$(get_toolset_value '.mono.nunit.version')
nunit_archive_url="https://github.com/nunit/nunit-console/releases/download/${nunit_version}/NUnit.Console-${nunit_version}.zip" nunit_archive_url="https://github.com/nunit/nunit-console/releases/download/${nunit_version}/NUnit.Console-${nunit_version}.zip"
nunit_archive_sha256=$(get_toolset_value '.mono.nunit.sha256') nunit_archive_sha256=$(get_toolset_value '.mono.nunit.sha256')
NUNIT_PATH="/Library/Developer/nunit" NUNIT_PATH="/Library/Developer/nunit"
nunit_version_path=$NUNIT_PATH/$nunit_version nunit_version_path="$NUNIT_PATH/$nunit_version"
nunit_archive_path=$(download_with_retry $nunit_archive_url) nunit_archive_path=$(download_with_retry "$nunit_archive_url")
use_checksum_comparison $nunit_archive_path $nunit_archive_sha256 use_checksum_comparison "$nunit_archive_path" "$nunit_archive_sha256"
echo "Installing NUnit ${nunit_version}..." echo "Installing NUnit ${nunit_version}..."
sudo mkdir -p $nunit_version_path sudo mkdir -p "$nunit_version_path"
sudo unzip -q $nunit_archive_path -d $nunit_version_path sudo unzip -q "$nunit_archive_path" -d "$nunit_version_path"
# Create a wrapper script for nunit3-console # Create a wrapper script for nunit3-console
echo "Creating nunit3-console wrapper..." echo "Creating nunit3-console wrapper..."
@@ -39,13 +39,13 @@ cat <<EOF > "$nunit3_console_wrapper"
#!/bin/bash -e -o pipefail #!/bin/bash -e -o pipefail
exec ${MONO_VERSIONS_PATH}/${mono_version}/bin/mono --debug \$MONO_OPTIONS $nunit_version_path/nunit3-console.exe "\$@" exec ${MONO_VERSIONS_PATH}/${mono_version}/bin/mono --debug \$MONO_OPTIONS $nunit_version_path/nunit3-console.exe "\$@"
EOF EOF
cat $nunit3_console_wrapper cat "$nunit3_console_wrapper"
sudo chmod +x $nunit3_console_wrapper sudo chmod +x "$nunit3_console_wrapper"
sudo mv $nunit3_console_wrapper "${MONO_VERSIONS_PATH}/${mono_version}/Commands/nunit3-console" sudo mv "$nunit3_console_wrapper" "${MONO_VERSIONS_PATH}/${mono_version}/Commands/nunit3-console"
# Create a symlink for the short version of Mono (e.g., 6.12) # Create a symlink for the short version of Mono (e.g., 6.12)
echo "Creating short symlink '${mono_version_short}'..." echo "Creating short symlink '${mono_version_short}'..."
sudo ln -s ${MONO_VERSIONS_PATH}/${mono_version} ${MONO_VERSIONS_PATH}/${mono_version_short} sudo ln -s "${MONO_VERSIONS_PATH}/${mono_version}" "${MONO_VERSIONS_PATH}/${mono_version_short}"
# Invoke tests for Xamarin and Mono # Invoke tests for Xamarin and Mono
invoke_tests "Xamarin" "Mono" invoke_tests "Xamarin" "Mono"
+1 -1
View File
@@ -14,7 +14,7 @@ brew link node@$defaultVersion --force --overwrite
echo Installing yarn... echo Installing yarn...
yarn_installer_path=$(download_with_retry "https://yarnpkg.com/install.sh") yarn_installer_path=$(download_with_retry "https://yarnpkg.com/install.sh")
bash $yarn_installer_path bash "$yarn_installer_path"
if is_BigSur || is_Monterey; then if is_BigSur || is_Monterey; then
npm_global_packages=$(get_toolset_value '.npm.global_packages[].name') npm_global_packages=$(get_toolset_value '.npm.global_packages[].name')
+3 -3
View File
@@ -6,12 +6,12 @@
source ~/utils/utils.sh source ~/utils/utils.sh
[[ -n $API_PAT ]] && authString=(-H "Authorization: token ${API_PAT}") [ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}")
nvm_version=$(curl "${authString[@]}" -fsSL https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r '.tag_name') nvm_version=$(curl "${authString[@]}" -fsSL https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r '.tag_name')
nvm_installer_path=$(download_with_retry "https://raw.githubusercontent.com/nvm-sh/nvm/$nvm_version/install.sh") nvm_installer_path=$(download_with_retry "https://raw.githubusercontent.com/nvm-sh/nvm/$nvm_version/install.sh")
if bash $nvm_installer_path; then if bash "$nvm_installer_path"; then
source ~/.bashrc . ~/.bashrc
nvm --version nvm --version
for version in $(get_toolset_value '.node.nvm_versions[]'); do for version in $(get_toolset_value '.node.nvm_versions[]'); do
nvm install "v${version}" nvm install "v${version}"
@@ -18,15 +18,15 @@ createEnvironmentVariable() {
if [[ ${DEFAULT} == "True" ]]; then if [[ ${DEFAULT} == "True" ]]; then
echo "Setting up JAVA_HOME variable to ${INSTALL_PATH_PATTERN}" echo "Setting up JAVA_HOME variable to ${INSTALL_PATH_PATTERN}"
echo "export JAVA_HOME=${INSTALL_PATH_PATTERN}" >> ${HOME}/.bashrc echo "export JAVA_HOME=${INSTALL_PATH_PATTERN}" >> "${HOME}/.bashrc"
fi fi
if [[ $arch == "arm64" ]]; then if [[ $arch == "arm64" ]]; then
echo "Setting up JAVA_HOME_${JAVA_VERSION}_arm64 variable to ${INSTALL_PATH_PATTERN}" echo "Setting up JAVA_HOME_${JAVA_VERSION}_arm64 variable to ${INSTALL_PATH_PATTERN}"
echo "export JAVA_HOME_${JAVA_VERSION}_arm64=${INSTALL_PATH_PATTERN}" >> ${HOME}/.bashrc echo "export JAVA_HOME_${JAVA_VERSION}_arm64=${INSTALL_PATH_PATTERN}" >> "${HOME}/.bashrc"
else else
echo "Setting up JAVA_HOME_${JAVA_VERSION}_X64 variable to ${INSTALL_PATH_PATTERN}" echo "Setting up JAVA_HOME_${JAVA_VERSION}_X64 variable to ${INSTALL_PATH_PATTERN}"
echo "export JAVA_HOME_${JAVA_VERSION}_X64=${INSTALL_PATH_PATTERN}" >> ${HOME}/.bashrc echo "export JAVA_HOME_${JAVA_VERSION}_X64=${INSTALL_PATH_PATTERN}" >> "${HOME}/.bashrc"
fi fi
} }
@@ -58,12 +58,12 @@ installOpenJDK() {
fi fi
# Download and extract Java binaries # Download and extract Java binaries
archive_path=$(download_with_retry $archive_url) archive_path=$(download_with_retry "$archive_url")
echo "Creating ${javaToolcacheVersionArchPath} directory" echo "Creating ${javaToolcacheVersionArchPath} directory"
mkdir -p ${javaToolcacheVersionArchPath} mkdir -p ${javaToolcacheVersionArchPath}
tar -xf $archive_path -C ${javaToolcacheVersionArchPath} --strip-components=1 tar -xf "$archive_path" -C ${javaToolcacheVersionArchPath} --strip-components=1
# Create complete file # Create complete file
if [[ $arch == "arm64" ]]; then if [[ $arch == "arm64" ]]; then
@@ -18,7 +18,7 @@ else
fi fi
if ! is_Arm64; then if ! is_Arm64; then
# Most of build systems and scripts look up ssl here # Most of buildsystems and scripts look up ssl here
ln -sf $(brew --cellar [email protected])/1.1* /usr/local/opt/openssl ln -sf $(brew --cellar [email protected])/1.1* /usr/local/opt/openssl
fi fi
@@ -20,11 +20,11 @@ brew services start $postgreService
echo "Check PostgreSQL service is running" echo "Check PostgreSQL service is running"
i=10 i=10
COMMAND='pg_isready' COMMAND='pg_isready'
while [[ $i -gt 0 ]]; do while [ $i -gt 0 ]; do
echo "Check PostgreSQL service status" echo "Check PostgreSQL service status"
eval $COMMAND && break eval $COMMAND && break
((i--)) ((i--))
if [[ $i == 0 ]]; then if [ $i == 0 ]; then
echo "PostgreSQL service not ready, all attempts exhausted" echo "PostgreSQL service not ready, all attempts exhausted"
exit 1 exit 1
fi fi
@@ -11,7 +11,7 @@ arch=$(get_arch)
metadata_json_path=$(download_with_retry "https://raw.githubusercontent.com/PowerShell/PowerShell/master/tools/metadata.json") metadata_json_path=$(download_with_retry "https://raw.githubusercontent.com/PowerShell/PowerShell/master/tools/metadata.json")
pwshVersionToolset=$(get_toolset_value '.pwsh.version') pwshVersionToolset=$(get_toolset_value '.pwsh.version')
pwshVersions=$(jq -r '.LTSReleaseTag[]' $metadata_json_path) pwshVersions=$(jq -r '.LTSReleaseTag[]' "$metadata_json_path")
for version in ${pwshVersions[@]}; do for version in ${pwshVersions[@]}; do
if [[ "$version" =~ "$pwshVersionToolset" ]]; then if [[ "$version" =~ "$pwshVersionToolset" ]]; then
@@ -20,19 +20,19 @@ for version in ${pwshVersions[@]}; do
fi fi
done done
pkg_path=$(download_with_retry $download_url) pkg_path=$(download_with_retry "$download_url")
# Work around the issue on macOS Big Sur 11.5 or higher for possible error message ("can't be opened because Apple cannot check it for malicious software") when installing the package # Work around the issue on macOS Big Sur 11.5 or higher for possible error message ("can't be opened because Apple cannot check it for malicious software") when installing the package
sudo xattr -rd com.apple.quarantine $pkg_path sudo xattr -rd com.apple.quarantine "$pkg_path"
sudo installer -pkg $pkg_path -target / sudo installer -pkg "$pkg_path" -target /
# Install PowerShell modules # Install PowerShell modules
psModules=$(get_toolset_value '.powershellModules[].name') psModules=$(get_toolset_value '.powershellModules[].name')
for module in ${psModules[@]}; do for module in ${psModules[@]}; do
echo "Installing $module module" echo "Installing $module module"
moduleVersions="$(get_toolset_value ".powershellModules[] | select(.name==\"$module\") | .versions[]?")" moduleVersions="$(get_toolset_value ".powershellModules[] | select(.name==\"$module\") | .versions[]?")"
if [[ -z $moduleVersions ]];then if [[ -z "$moduleVersions" ]];then
# Check MacOS architecture and sudo on Arm64 # Check MacOS architecture and sudo on Arm64
if [[ $arch == "arm64" ]]; then if [[ $arch == "arm64" ]]; then
sudo pwsh -command "& {Install-Module $module -Force -Scope AllUsers}" sudo pwsh -command "& {Install-Module $module -Force -Scope AllUsers}"
+14 -13
View File
@@ -6,22 +6,23 @@
source ~/utils/utils.sh source ~/utils/utils.sh
InstallPyPy() { function InstallPyPy
local package_url=$1 {
PACKAGE_URL=$1
PACKAGE_TAR_NAME=$(basename $package_url) PACKAGE_TAR_NAME=$(basename "$PACKAGE_URL")
echo "Downloading tar archive '$PACKAGE_TAR_NAME'" echo "Downloading tar archive '$PACKAGE_TAR_NAME'"
archive_path=$(download_with_retry $package_url) archive_path=$(download_with_retry "$PACKAGE_URL")
echo "Expand '$PACKAGE_TAR_NAME' to the /tmp folder" echo "Expand '$PACKAGE_TAR_NAME' to the /tmp folder"
tar xf $archive_path -C /tmp tar xf "$archive_path" -C /tmp
# Get Python version # Get Python version
PACKAGE_NAME=${PACKAGE_TAR_NAME/.tar.bz2/} PACKAGE_NAME=${PACKAGE_TAR_NAME/.tar.bz2/}
MAJOR_VERSION=$(echo ${PACKAGE_NAME/pypy/} | cut -d. -f1) MAJOR_VERSION=$(echo ${PACKAGE_NAME/pypy/} | cut -d. -f1)
PYTHON_MAJOR="python$MAJOR_VERSION" PYTHON_MAJOR="python$MAJOR_VERSION"
if [[ $MAJOR_VERSION != 2 ]]; then if [ $MAJOR_VERSION != 2 ]; then
PYPY_MAJOR="pypy$MAJOR_VERSION" PYPY_MAJOR="pypy$MAJOR_VERSION"
else else
PYPY_MAJOR="pypy" PYPY_MAJOR="pypy"
@@ -39,14 +40,14 @@ InstallPyPy() {
PYPY_TOOLCACHE_VERSION_ARCH_PATH=$PYPY_TOOLCACHE_VERSION_PATH/x64 PYPY_TOOLCACHE_VERSION_ARCH_PATH=$PYPY_TOOLCACHE_VERSION_PATH/x64
echo "Check if PyPy hostedtoolcache folder exist..." echo "Check if PyPy hostedtoolcache folder exist..."
if [[ ! -d $PYPY_TOOLCACHE_PATH ]]; then if [ ! -d $PYPY_TOOLCACHE_PATH ]; then
mkdir -p $PYPY_TOOLCACHE_PATH mkdir -p $PYPY_TOOLCACHE_PATH
fi fi
echo "Create PyPy '$PYPY_TOOLCACHE_VERSION_PATH' folder" echo "Create PyPy '$PYPY_TOOLCACHE_VERSION_PATH' folder"
mkdir $PYPY_TOOLCACHE_VERSION_PATH mkdir $PYPY_TOOLCACHE_VERSION_PATH
echo "Move PyPy $PACKAGE_TEMP_FOLDER binaries to $PYPY_TOOLCACHE_VERSION_ARCH_PATH folder" echo "Move PyPy '$PACKAGE_TEMP_FOLDER' binaries to '$PYPY_TOOLCACHE_VERSION_ARCH_PATH' folder"
mv $PACKAGE_TEMP_FOLDER $PYPY_TOOLCACHE_VERSION_ARCH_PATH mv $PACKAGE_TEMP_FOLDER $PYPY_TOOLCACHE_VERSION_ARCH_PATH
echo "Create additional symlinks (Required for UsePythonVersion Azure DevOps task)" echo "Create additional symlinks (Required for UsePythonVersion Azure DevOps task)"
@@ -57,8 +58,8 @@ InstallPyPy() {
echo $PYPY_FULL_VERSION > "PYPY_VERSION" echo $PYPY_FULL_VERSION > "PYPY_VERSION"
# Starting from PyPy 7.3.4 these links are already included in the package # Starting from PyPy 7.3.4 these links are already included in the package
[[ -f ./$PYTHON_MAJOR ]] || ln -s $PYPY_MAJOR $PYTHON_MAJOR [ -f ./$PYTHON_MAJOR ] || ln -s $PYPY_MAJOR $PYTHON_MAJOR
[[ -f ./python ]] || ln -s $PYTHON_MAJOR python [ -f ./python ] || ln -s $PYTHON_MAJOR python
chmod +x ./python ./$PYTHON_MAJOR chmod +x ./python ./$PYTHON_MAJOR
@@ -75,12 +76,12 @@ versions_json_path=$(download_with_retry "https://downloads.python.org/pypy/vers
toolsetVersions=$(get_toolset_value '.toolcache[] | select(.name | contains("PyPy")) | .arch.'$arch'.versions[]') toolsetVersions=$(get_toolset_value '.toolcache[] | select(.name | contains("PyPy")) | .arch.'$arch'.versions[]')
for toolsetVersion in $toolsetVersions; do for toolsetVersion in $toolsetVersions; do
latestMajorPyPyVersion=$(cat $versions_json_path | latestMajorPyPyVersion=$(cat "$versions_json_path" |
jq -r --arg toolsetVersion $toolsetVersion '.[] jq -r --arg toolsetVersion $toolsetVersion '.[]
| select((.python_version | startswith($toolsetVersion)) and .stable == true).files[] | select((.python_version | startswith($toolsetVersion)) and .stable == true).files[]
| select(.platform == "darwin").download_url' | head -1) | select(.platform == "darwin").download_url' | head -1)
if [[ -z $latestMajorPyPyVersion ]]; then if [[ -z "$latestMajorPyPyVersion" ]]; then
echo "Failed to get PyPy version $toolsetVersion" echo "Failed to get PyPy version '$toolsetVersion'"
exit 1 exit 1
fi fi
InstallPyPy $latestMajorPyPyVersion InstallPyPy $latestMajorPyPyVersion
+10 -16
View File
@@ -12,19 +12,19 @@ if is_Monterey || is_BigSur; then
echo "Install latest Python 2" echo "Install latest Python 2"
python2_pkg=$(download_with_retry "https://www.python.org/ftp/python/2.7.18/python-2.7.18-macosx10.9.pkg") python2_pkg=$(download_with_retry "https://www.python.org/ftp/python/2.7.18/python-2.7.18-macosx10.9.pkg")
python2_pkg_sha256="c570f38b05dd8b112ad21b418cdf51a9816d62f9f44746452739d421be24d50c" python2_pkg_sha256="c570f38b05dd8b112ad21b418cdf51a9816d62f9f44746452739d421be24d50c"
use_checksum_comparison $python2_pkg $python2_pkg_sha256 use_checksum_comparison "$python2_pkg" "$python2_pkg_sha256"
choice_changes_xml=$(mktemp /tmp/python2_choice_changes.xml.XXXXXX) choice_changes_xml=$(mktemp /tmp/python2_choice_changes.xml.XXXXXX)
sudo installer -showChoiceChangesXML -pkg $python2_pkg -target / | tee $choice_changes_xml > /dev/null sudo installer -showChoiceChangesXML -pkg "$python2_pkg" -target / | tee "$choice_changes_xml" > /dev/null
# To avoid symlink conflicts, remove tools installation in /usr/local/bin using installer choices # To avoid symlink conflicts, remove tools installation in /usr/local/bin using installer choices
xmllint --shell $choice_changes_xml <<EOF xmllint --shell "$choice_changes_xml" <<EOF
cd //array/dict[string[text()='org.python.Python.PythonUnixTools-2.7']]/integer cd //array/dict[string[text()='org.python.Python.PythonUnixTools-2.7']]/integer
set 0 set 0
save save
EOF EOF
sudo installer -applyChoiceChangesXML $choice_changes_xml -pkg $python2_pkg -target / sudo installer -applyChoiceChangesXML "$choice_changes_xml" -pkg "$python2_pkg" -target /
pip install --upgrade pip pip install --upgrade pip
@@ -38,22 +38,16 @@ if is_Veertu; then
fi fi
echo "Brew Installing Python 3" echo "Brew Installing Python 3"
brew_smart_install "[email protected]2" brew_smart_install "[email protected]1"
echo "Installing pipx" echo "Installing pipx"
export PIPX_BIN_DIR=/usr/local/opt/pipx_bin
if is_Arm64; then export PIPX_HOME=/usr/local/opt/pipx
export PIPX_BIN_DIR="$HOME/.local/bin"
export PIPX_HOME="$HOME/.local/pipx"
else
export PIPX_BIN_DIR=/usr/local/opt/pipx_bin
export PIPX_HOME=/usr/local/opt/pipx
fi
brew_smart_install "pipx" brew_smart_install "pipx"
echo "export PIPX_BIN_DIR=${PIPX_BIN_DIR}" >> ${HOME}/.bashrc echo "export PIPX_BIN_DIR=${PIPX_BIN_DIR}" >> "${HOME}/.bashrc"
echo "export PIPX_HOME=${PIPX_HOME}" >> ${HOME}/.bashrc echo "export PIPX_HOME=${PIPX_HOME}" >> "${HOME}/.bashrc"
echo 'export PATH="$PIPX_BIN_DIR:$PATH"' >> ${HOME}/.bashrc echo 'export PATH="$PIPX_BIN_DIR:$PATH"' >> "${HOME}/.bashrc"
invoke_tests "Python" invoke_tests "Python"
@@ -4,5 +4,5 @@
## Desc: Install Rosetta ## Desc: Install Rosetta
################################################################################ ################################################################################
echo "Installing Rosetta" echo 'Installing Rosetta'
/usr/sbin/softwareupdate --install-rosetta --agree-to-license /usr/sbin/softwareupdate --install-rosetta --agree-to-license
+12 -12
View File
@@ -8,7 +8,7 @@ source ~/utils/utils.sh
arch=$(get_arch) arch=$(get_arch)
DEFAULT_RUBY_VERSION=$(get_toolset_value '.ruby.default') DEFAULT_RUBY_VERSION=$(get_toolset_value '.ruby.default')
echo "Installing Ruby..." echo Installing Ruby...
brew_smart_install "ruby@${DEFAULT_RUBY_VERSION}" brew_smart_install "ruby@${DEFAULT_RUBY_VERSION}"
if [[ $arch == "arm64" ]]; then if [[ $arch == "arm64" ]]; then
export PATH=/opt/homebrew/opt/ruby@${DEFAULT_RUBY_VERSION}/bin:$PATH export PATH=/opt/homebrew/opt/ruby@${DEFAULT_RUBY_VERSION}/bin:$PATH
@@ -16,12 +16,12 @@ else
export PATH=/usr/local/opt/ruby@${DEFAULT_RUBY_VERSION}/bin:$PATH export PATH=/usr/local/opt/ruby@${DEFAULT_RUBY_VERSION}/bin:$PATH
fi fi
GEM_PATH=$(gem env|awk '/EXECUTABLE DIRECTORY/ {print $4}') GEM_PATH=`gem env|awk '/EXECUTABLE DIRECTORY/ {print $4}'`
echo "GEM_PATH=$GEM_PATH" >> $HOME/.bashrc echo "GEM_PATH=$GEM_PATH" >> "$HOME/.bashrc"
if [[ $arch == "arm64" ]]; then if [[ $arch == "arm64" ]]; then
echo 'export PATH="$GEM_PATH:/opt/homebrew/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> $HOME/.bashrc echo 'export PATH="$GEM_PATH:/opt/homebrew/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> "$HOME/.bashrc"
else else
echo 'export PATH="$GEM_PATH:/usr/local/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> $HOME/.bashrc echo 'export PATH="$GEM_PATH:/usr/local/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> "$HOME/.bashrc"
fi fi
if ! is_Arm64; then if ! is_Arm64; then
@@ -29,13 +29,13 @@ if ! is_Arm64; then
[ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}") [ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}")
PACKAGE_TAR_NAMES=$(curl "${authString[@]}" -fsSL "https://api.github.com/repos/ruby/ruby-builder/releases/latest" | jq -r '.assets[].name') PACKAGE_TAR_NAMES=$(curl "${authString[@]}" -fsSL "https://api.github.com/repos/ruby/ruby-builder/releases/latest" | jq -r '.assets[].name')
TOOLSET_VERSIONS=$(get_toolset_value '.toolcache[] | select(.name | contains("Ruby")) | .arch.'$arch'.versions[]') TOOLSET_VERSIONS=$(get_toolset_value '.toolcache[] | select(.name | contains("Ruby")) | .arch.'$arch'.versions[]')
RUBY_PATH=$AGENT_TOOLSDIRECTORY/Ruby RUBY_PATH="$AGENT_TOOLSDIRECTORY/Ruby"
echo "Check if Ruby hostedtoolcache folder exists..." echo "Check if Ruby hostedtoolcache folder exists..."
if [[ ! -d $RUBY_PATH ]]; then if [ ! -d $RUBY_PATH ]; then
mkdir -p $RUBY_PATH mkdir -p $RUBY_PATH
fi fi
echo "ruby path - $RUBY_PATH "
for TOOLSET_VERSION in ${TOOLSET_VERSIONS[@]}; do for TOOLSET_VERSION in ${TOOLSET_VERSIONS[@]}; do
PACKAGE_TAR_NAME=$(echo "$PACKAGE_TAR_NAMES" | grep "^ruby-${TOOLSET_VERSION}-macos-latest.tar.gz$" | egrep -v "rc|preview" | sort -V | tail -1) PACKAGE_TAR_NAME=$(echo "$PACKAGE_TAR_NAMES" | grep "^ruby-${TOOLSET_VERSION}-macos-latest.tar.gz$" | egrep -v "rc|preview" | sort -V | tail -1)
RUBY_VERSION=$(echo "$PACKAGE_TAR_NAME" | cut -d'-' -f 2) RUBY_VERSION=$(echo "$PACKAGE_TAR_NAME" | cut -d'-' -f 2)
@@ -47,10 +47,10 @@ if ! is_Arm64; then
echo "Downloading tar archive $PACKAGE_TAR_NAME" echo "Downloading tar archive $PACKAGE_TAR_NAME"
ARCHIVE_PATH=$(download_with_retry "https://github.com/ruby/ruby-builder/releases/download/toolcache/${PACKAGE_TAR_NAME}") ARCHIVE_PATH=$(download_with_retry "https://github.com/ruby/ruby-builder/releases/download/toolcache/${PACKAGE_TAR_NAME}")
echo "Expand $PACKAGE_TAR_NAME to the $RUBY_VERSION_PATH folder" echo "Expand '$PACKAGE_TAR_NAME' to the '$RUBY_VERSION_PATH' folder"
tar xf $ARCHIVE_PATH -C $RUBY_VERSION_PATH tar xf "$ARCHIVE_PATH" -C $RUBY_VERSION_PATH
COMPLETE_FILE_PATH=$RUBY_VERSION_PATH/x64.complete COMPLETE_FILE_PATH="$RUBY_VERSION_PATH/x64.complete"
if [[ ! -f $COMPLETE_FILE_PATH ]]; then if [ ! -f $COMPLETE_FILE_PATH ]; then
echo "Create complete file" echo "Create complete file"
touch $COMPLETE_FILE_PATH touch $COMPLETE_FILE_PATH
fi fi
@@ -6,14 +6,14 @@
source ~/utils/utils.sh source ~/utils/utils.sh
echo "Updating RubyGems..." echo Updating RubyGems...
gem update --system gem update --system
# Temporarily install activesupport 7.0.8 due to compatibility issues with cocoapods https://github.com/CocoaPods/CocoaPods/issues/12081 # Temporarily install activesupport 7.0.8 due to compatibility issues with cocoapods https://github.com/CocoaPods/CocoaPods/issues/12081
gem install activesupport -v 7.0.8 gem install activesupport -v 7.0.8
gemsToInstall=$(get_toolset_value '.ruby.rubygems | .[]') gemsToInstall=$(get_toolset_value '.ruby.rubygems | .[]')
if [[ -n $gemsToInstall ]]; then if [ -n "$gemsToInstall" ]; then
for gem in $gemsToInstall; do for gem in $gemsToInstall; do
echo "Installing gem $gem" echo "Installing gem $gem"
gem install $gem gem install $gem
+5 -5
View File
@@ -6,23 +6,23 @@
source ~/utils/utils.sh source ~/utils/utils.sh
echo "Installing Rustup..." echo Installing Rustup...
brew_smart_install "rustup-init" brew_smart_install "rustup-init"
echo "Installing Rust language..." echo Installing Rust language...
rustup-init -y --no-modify-path --default-toolchain=stable --profile=minimal rustup-init -y --no-modify-path --default-toolchain=stable --profile=minimal
echo "Initialize environment variables..." echo Initialize environment variables...
CARGO_HOME=$HOME/.cargo CARGO_HOME=$HOME/.cargo
echo "Install common tools..." echo Install common tools...
rustup component add rustfmt clippy rustup component add rustfmt clippy
if is_BigSur || is_Monterey; then if is_BigSur || is_Monterey; then
cargo install --locked bindgen-cli cbindgen cargo-audit cargo-outdated cargo install --locked bindgen-cli cbindgen cargo-audit cargo-outdated
fi fi
echo "Cleanup Cargo registry cached data..." echo Cleanup Cargo registry cached data...
rm -rf $CARGO_HOME/registry/* rm -rf $CARGO_HOME/registry/*
invoke_tests "Rust" invoke_tests "Rust"
+1 -1
View File
@@ -13,7 +13,7 @@ sudo safaridriver --enable
echo "Enabling the 'Allow Remote Automation' option in Safari's Develop menu" echo "Enabling the 'Allow Remote Automation' option in Safari's Develop menu"
mkdir -p $HOME/Library/WebDriver mkdir -p $HOME/Library/WebDriver
safari_plist="$HOME/Library/WebDriver/com.apple.Safari.plist" safari_plist="$HOME/Library/WebDriver/com.apple.Safari.plist"
# "|| true" is needed to suppress exit code 1 in case if property or file doesn't exist # "|| true" is needed to suppress exit code 1 in case if property or file doesn't exist
/usr/libexec/PlistBuddy -c 'delete AllowRemoteAutomation' $safari_plist || true /usr/libexec/PlistBuddy -c 'delete AllowRemoteAutomation' $safari_plist || true
/usr/libexec/PlistBuddy -c 'add AllowRemoteAutomation bool true' $safari_plist /usr/libexec/PlistBuddy -c 'add AllowRemoteAutomation bool true' $safari_plist
@@ -6,20 +6,13 @@
source ~/utils/utils.sh source ~/utils/utils.sh
echo "Installing Swiftlint..." echo Installing Swiftlint...
if is_BigSur; then if is_BigSur; then
# SwiftLint now requires Swift 5.6 or higher to build, and macOS 12 or higher to run https://github.com/realm/SwiftLint/releases/tag/0.49.0 # SwiftLint now requires Swift 5.6 or higher to build, and macOS 12 or higher to run https://github.com/realm/SwiftLint/releases/tag/0.49.0
COMMIT=d1d5743344227fe6e3c37cfba19f0cfe15a9448a COMMIT=d1d5743344227fe6e3c37cfba19f0cfe15a9448a
FORMULA_URL="https://raw.githubusercontent.com/Homebrew/homebrew-core/$COMMIT/Formula/swiftlint.rb" FORMULA_URL="https://raw.githubusercontent.com/Homebrew/homebrew-core/$COMMIT/Formula/swiftlint.rb"
curl -fsSL $FORMULA_URL > $(find $(brew --repository) -name swiftlint.rb) curl -fsSL "$FORMULA_URL" > $(find $(brew --repository) -name swiftlint.rb)
HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_FROM_API=1 brew install swiftlint
elif is_Monterey; then
# SwiftLint now requires Xcode 15.3 or higher to build https://github.com/realm/SwiftLint/releases/tag/0.55.1
COMMIT=d91dabd087cb0b906c92a825df9e5e5e1a4f59f8
FORMULA_URL="https://raw.githubusercontent.com/Homebrew/homebrew-core/$COMMIT/Formula/s/swiftlint.rb"
curl -fsSL $FORMULA_URL > $(find $(brew --repository) -name swiftlint.rb)
HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_FROM_API=1 brew install swiftlint HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_FROM_API=1 brew install swiftlint
else else
brew_smart_install "swiftlint" brew_smart_install "swiftlint"
@@ -24,13 +24,13 @@ install_vsmac() {
TMPMOUNT=$(/usr/bin/mktemp -d /tmp/visualstudio.XXXX) TMPMOUNT=$(/usr/bin/mktemp -d /tmp/visualstudio.XXXX)
mkdir -p "$TMPMOUNT/downloads" mkdir -p "$TMPMOUNT/downloads"
vsmac_installer=$(download_with_retry $vsmac_download_url "$TMPMOUNT/downloads/${vsmac_download_url##*/}") vsmac_installer=$(download_with_retry "$vsmac_download_url" "$TMPMOUNT/downloads/${vsmac_download_url##*/}")
echo "Mounting Visual Studio..." echo "Mounting Visual Studio..."
hdiutil attach $vsmac_installer -mountpoint $TMPMOUNT hdiutil attach "$vsmac_installer" -mountpoint "$TMPMOUNT"
echo "Moving Visual Studio to /Applications/..." echo "Moving Visual Studio to /Applications/..."
pushd $TMPMOUNT pushd "$TMPMOUNT"
tar cf - "./Visual Studio.app" | tar xf - -C /Applications/ tar cf - "./Visual Studio.app" | tar xf - -C /Applications/
if [[ $vsmac_version != $vsmac_default ]]; then if [[ $vsmac_version != $vsmac_default ]]; then
@@ -38,14 +38,14 @@ install_vsmac() {
fi fi
popd popd
sudo hdiutil detach $TMPMOUNT sudo hdiutil detach "$TMPMOUNT"
sudo rm -rf $TMPMOUNT sudo rm -rf "$TMPMOUNT"
} }
vsmac_versions=($(get_toolset_value '.xamarin.vsmac.versions[]')) vsmac_versions=($(get_toolset_value '.xamarin.vsmac.versions[]'))
default_vsmac_version=$(get_toolset_value '.xamarin.vsmac.default') default_vsmac_version=$(get_toolset_value '.xamarin.vsmac.default')
for version in ${vsmac_versions[@]}; do for version in "${vsmac_versions[@]}"; do
install_vsmac $version $default_vsmac_version install_vsmac $version $default_vsmac_version
done done
+12 -12
View File
@@ -15,17 +15,17 @@ latest_sdk_symlink=$(get_toolset_value '.xamarin.bundles[0].symlink')
current_sdk_symlink=$(get_toolset_value '.xamarin."bundle_default"') current_sdk_symlink=$(get_toolset_value '.xamarin."bundle_default"')
default_xcode_version=$(get_toolset_value '.xcode.default') default_xcode_version=$(get_toolset_value '.xcode.default')
if [[ $current_sdk_symlink == "latest" ]]; then if [ "$current_sdk_symlink" == "latest" ]; then
current_sdk_symlink=$latest_sdk_symlink current_sdk_symlink=$latest_sdk_symlink
fi fi
MONO_VERSIONS_PATH="/Library/Frameworks/Mono.framework/Versions" MONO_VERSIONS_PATH='/Library/Frameworks/Mono.framework/Versions'
IOS_VERSIONS_PATH="/Library/Frameworks/Xamarin.iOS.framework/Versions" IOS_VERSIONS_PATH='/Library/Frameworks/Xamarin.iOS.framework/Versions'
ANDROID_VERSIONS_PATH="/Library/Frameworks/Xamarin.Android.framework/Versions" ANDROID_VERSIONS_PATH='/Library/Frameworks/Xamarin.Android.framework/Versions'
MAC_VERSIONS_PATH="/Library/Frameworks/Xamarin.Mac.framework/Versions" MAC_VERSIONS_PATH='/Library/Frameworks/Xamarin.Mac.framework/Versions'
TMPMOUNT=$(/usr/bin/mktemp -d /tmp/visualstudio.XXXX) TMPMOUNT=`/usr/bin/mktemp -d /tmp/visualstudio.XXXX`
TMPMOUNT_FRAMEWORKS=$TMPMOUNT/frameworks TMPMOUNT_FRAMEWORKS="$TMPMOUNT/frameworks"
createBackupFolders createBackupFolders
pushd $TMPMOUNT pushd $TMPMOUNT
@@ -34,19 +34,19 @@ pushd $TMPMOUNT
downloadNUnitConsole downloadNUnitConsole
# Install Mono sdks # Install Mono sdks
for version in ${mono_versions[@]}; do installMono $version; done for version in "${mono_versions[@]}"; do installMono $version; done
sudo mv -v $TMPMOUNT_FRAMEWORKS/mono/* $MONO_VERSIONS_PATH/ sudo mv -v $TMPMOUNT_FRAMEWORKS/mono/* $MONO_VERSIONS_PATH/
# Install Xamarin.iOS sdks # Install Xamarin.iOS sdks
for version in ${xamarin_ios_versions[@]}; do installXamarinIOS $version; done for version in "${xamarin_ios_versions[@]}"; do installXamarinIOS $version; done
sudo mv -v $TMPMOUNT_FRAMEWORKS/ios/* $IOS_VERSIONS_PATH/ sudo mv -v $TMPMOUNT_FRAMEWORKS/ios/* $IOS_VERSIONS_PATH/
# Install Xamarin.Mac sdks # Install Xamarin.Mac sdks
for version in ${xamarin_mac_versions[@]}; do installXamarinMac $version; done for version in "${xamarin_mac_versions[@]}"; do installXamarinMac $version; done
sudo mv -v $TMPMOUNT_FRAMEWORKS/mac/* $MAC_VERSIONS_PATH/ sudo mv -v $TMPMOUNT_FRAMEWORKS/mac/* $MAC_VERSIONS_PATH/
# Install Xamarin.Android sdks # Install Xamarin.Android sdks
for version in ${xamarin_android_versions[@]}; do installXamarinAndroid $version; done for version in "${xamarin_android_versions[@]}"; do installXamarinAndroid $version; done
sudo mv -v $TMPMOUNT_FRAMEWORKS/android/* $ANDROID_VERSIONS_PATH/ sudo mv -v $TMPMOUNT_FRAMEWORKS/android/* $ANDROID_VERSIONS_PATH/
@@ -75,7 +75,7 @@ createUWPShim
popd popd
echo "Clean up packages..." echo "Clean up packages..."
sudo rm -rf $TMPMOUNT sudo rm -rf "$TMPMOUNT"
# Fix Xamarin issue with Xcode symlink: https://github.com/xamarin/xamarin-macios/issues/9960 # Fix Xamarin issue with Xcode symlink: https://github.com/xamarin/xamarin-macios/issues/9960
PREFERENCES_XAMARIN_DIR="${HOME}/Library/Preferences/Xamarin" PREFERENCES_XAMARIN_DIR="${HOME}/Library/Preferences/Xamarin"
@@ -7,8 +7,8 @@
source ~/utils/utils.sh source ~/utils/utils.sh
is_clt_installed() { is_clt_installed() {
clt_path=$(xcode-select -p 2>&1) clt_path=`xcode-select -p 2>&1`
[[ -d $clt_path ]] [[ -d "$clt_path" ]]
} }
install_clt() { install_clt() {
@@ -43,7 +43,7 @@ while ! is_clt_installed; do
echo "Unable to find the Command Line Tools, all the attempts exhausted" echo "Unable to find the Command Line Tools, all the attempts exhausted"
exit 1 exit 1
fi fi
echo "Command Line Tools not found, trying to install them via software updates, $retries attempts left" echo "Command Line Tools not found, trying to install them via softwareupdates, $retries attempts left"
install_clt install_clt
((retries--)) ((retries--))
echo "Wait $sleepInterval seconds before the next check for installed Command Line Tools" echo "Wait $sleepInterval seconds before the next check for installed Command Line Tools"
@@ -0,0 +1,29 @@
#!/bin/bash -e -o pipefail
################################################################################
## File: install-xcode-simulators.sh
## Desc: Install Xcode simulators
################################################################################
source ~/utils/utils.sh
# Downloading and installing simulators
SIMS_TO_INSTALL=(
"8.4"
"9.0"
"9.1"
"9.2"
"9.3"
"10.0"
"10.1"
"10.2"
"10.3"
)
for sim_version in ${SIMS_TO_INSTALL[@]}
do
echo "Installing iOS $sim_version ..."
sudo xcversion simulators --install="iOS ${sim_version}"
echo "Successfuly installed iOS $sim_version ..."
done
echo "Done installing simulator runtimes."
@@ -38,9 +38,7 @@ $languageAndRuntime.AddToolVersion("Bash", $(Get-BashVersion))
$languageAndRuntime.AddNodes($(Get-ClangLLVMVersions)) $languageAndRuntime.AddNodes($(Get-ClangLLVMVersions))
$languageAndRuntime.AddNodes($(Get-GccVersions)) $languageAndRuntime.AddNodes($(Get-GccVersions))
$languageAndRuntime.AddNodes($(Get-FortranVersions)) $languageAndRuntime.AddNodes($(Get-FortranVersions))
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) { $languageAndRuntime.AddToolVersion("Julia", $(Get-JuliaVersion))
$languageAndRuntime.AddToolVersion("Julia", $(Get-JuliaVersion))
}
$languageAndRuntime.AddToolVersion("Kotlin", $(Get-KotlinVersion)) $languageAndRuntime.AddToolVersion("Kotlin", $(Get-KotlinVersion))
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) { if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
$languageAndRuntime.AddToolVersion("Go", $(Get-GoVersion)) $languageAndRuntime.AddToolVersion("Go", $(Get-GoVersion))
@@ -53,7 +51,7 @@ if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
$languageAndRuntime.AddToolVersionsListInline("NVM - Cached node versions", $(Get-NVMNodeVersionList), '^\d+') $languageAndRuntime.AddToolVersionsListInline("NVM - Cached node versions", $(Get-NVMNodeVersionList), '^\d+')
} }
$languageAndRuntime.AddToolVersion("Perl", $(Get-PerlVersion)) $languageAndRuntime.AddToolVersion("Perl", $(Get-PerlVersion))
if ((-not $os.IsBigSur) -and (-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) { if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
$languageAndRuntime.AddToolVersion("PHP", $(Get-PHPVersion)) $languageAndRuntime.AddToolVersion("PHP", $(Get-PHPVersion))
} }
@@ -61,12 +59,10 @@ if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
$languageAndRuntime.AddToolVersion("Python", $(Get-PythonVersion)) $languageAndRuntime.AddToolVersion("Python", $(Get-PythonVersion))
} }
$languageAndRuntime.AddToolVersion("Python3", $(Get-Python3Version)) if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
$languageAndRuntime.AddToolVersion("Python3", $(Get-Python3Version))
if ((-not $os.IsVentura) -and (-not $os.IsSonoma) -and (-not $os.IsBigSur)) {
$languageAndRuntime.AddToolVersion("R", $(Get-RVersion))
} }
$languageAndRuntime.AddToolVersion("R", $(Get-RVersion))
$languageAndRuntime.AddToolVersion("Ruby", $(Get-RubyVersion)) $languageAndRuntime.AddToolVersion("Ruby", $(Get-RubyVersion))
# Package Management # Package Management
@@ -74,7 +70,7 @@ $packageManagement = $installedSoftware.AddHeader("Package Management")
$packageManagement.AddToolVersion("Bundler", $(Get-BundlerVersion)) $packageManagement.AddToolVersion("Bundler", $(Get-BundlerVersion))
$packageManagement.AddToolVersion("Carthage", $(Get-CarthageVersion)) $packageManagement.AddToolVersion("Carthage", $(Get-CarthageVersion))
$packageManagement.AddToolVersion("CocoaPods", $(Get-CocoaPodsVersion)) $packageManagement.AddToolVersion("CocoaPods", $(Get-CocoaPodsVersion))
if ((-not $os.IsBigSur) -and (-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) { if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
$packageManagement.AddToolVersion("Composer", $(Get-ComposerVersion)) $packageManagement.AddToolVersion("Composer", $(Get-ComposerVersion))
} }
$packageManagement.AddToolVersion("Homebrew", $(Get-HomebrewVersion)) $packageManagement.AddToolVersion("Homebrew", $(Get-HomebrewVersion))
@@ -87,11 +83,13 @@ if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
$packageManagement.AddToolVersion("Pip", $(Get-PipVersion -Version 2)) $packageManagement.AddToolVersion("Pip", $(Get-PipVersion -Version 2))
} }
$packageManagement.AddToolVersion("Pip3", $(Get-PipVersion -Version 3)) if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
$packageManagement.AddToolVersion("Pipx", $(Get-PipxVersion)) $packageManagement.AddToolVersion("Pip3", $(Get-PipVersion -Version 3))
$packageManagement.AddToolVersion("Pipx", $(Get-PipxVersion))
}
$packageManagement.AddToolVersion("RubyGems", $(Get-RubyGemsVersion)) $packageManagement.AddToolVersion("RubyGems", $(Get-RubyGemsVersion))
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64) -and (-not $os.IsSonoma)) { if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
$packageManagement.AddToolVersion("Vcpkg", $(Get-VcpkgVersion)) $packageManagement.AddToolVersion("Vcpkg", $(Get-VcpkgVersion))
} }
$packageManagement.AddToolVersion("Yarn", $(Get-YarnVersion)) $packageManagement.AddToolVersion("Yarn", $(Get-YarnVersion))
@@ -118,9 +116,7 @@ $utilities.AddToolVersion("bazelisk", $(Get-BazeliskVersion))
$utilities.AddToolVersion("bsdtar", $(Get-BsdtarVersion)) $utilities.AddToolVersion("bsdtar", $(Get-BsdtarVersion))
$utilities.AddToolVersion("Curl", $(Get-CurlVersion)) $utilities.AddToolVersion("Curl", $(Get-CurlVersion))
$utilities.AddToolVersion("Git", $(Get-GitVersion)) $utilities.AddToolVersion("Git", $(Get-GitVersion))
if (-not $os.IsBigSur) { $utilities.AddToolVersion("Git LFS", $(Get-GitLFSVersion))
$utilities.AddToolVersion("Git LFS", $(Get-GitLFSVersion))
}
$utilities.AddToolVersion("GitHub CLI", $(Get-GitHubCLIVersion)) $utilities.AddToolVersion("GitHub CLI", $(Get-GitHubCLIVersion))
$utilities.AddToolVersion("GNU Tar", $(Get-GnuTarVersion)) $utilities.AddToolVersion("GNU Tar", $(Get-GnuTarVersion))
$utilities.AddToolVersion("GNU Wget", $(Get-WgetVersion)) $utilities.AddToolVersion("GNU Wget", $(Get-WgetVersion))
@@ -128,7 +124,7 @@ $utilities.AddToolVersion("gpg (GnuPG)", $(Get-GPGVersion))
if ($os.IsBigSur) { if ($os.IsBigSur) {
$utilities.AddToolVersion("helm", $(Get-HelmVersion)) $utilities.AddToolVersion("helm", $(Get-HelmVersion))
} }
if ((-not $os.IsBigSur) -and (-not $os.IsVentura) -and (-not $os.IsSonoma)) { if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
$utilities.AddToolVersion("ImageMagick", $(Get-ImageMagickVersion)) $utilities.AddToolVersion("ImageMagick", $(Get-ImageMagickVersion))
} }
$utilities.AddToolVersion("jq", $(Get-JqVersion)) $utilities.AddToolVersion("jq", $(Get-JqVersion))
@@ -165,14 +161,10 @@ if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
$tools.AddToolVersion("App Center CLI", $(Get-AppCenterCLIVersion)) $tools.AddToolVersion("App Center CLI", $(Get-AppCenterCLIVersion))
} }
$tools.AddToolVersion("AWS CLI", $(Get-AWSCLIVersion)) $tools.AddToolVersion("AWS CLI", $(Get-AWSCLIVersion))
if (-not $os.IsBigSur) { $tools.AddToolVersion("AWS SAM CLI", $(Get-AWSSAMCLIVersion))
$tools.AddToolVersion("AWS SAM CLI", $(Get-AWSSAMCLIVersion))
}
$tools.AddToolVersion("AWS Session Manager CLI", $(Get-AWSSessionManagerCLIVersion)) $tools.AddToolVersion("AWS Session Manager CLI", $(Get-AWSSessionManagerCLIVersion))
if (-not $os.IsBigSur) { $tools.AddToolVersion("Azure CLI", $(Get-AzureCLIVersion))
$tools.AddToolVersion("Azure CLI", $(Get-AzureCLIVersion)) $tools.AddToolVersion("Azure CLI (azure-devops)", $(Get-AzureDevopsVersion))
$tools.AddToolVersion("Azure CLI (azure-devops)", $(Get-AzureDevopsVersion))
}
$tools.AddToolVersion("Bicep CLI", $(Get-BicepVersion)) $tools.AddToolVersion("Bicep CLI", $(Get-BicepVersion))
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) { if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
$tools.AddToolVersion("Cabal", $(Get-CabalVersion)) $tools.AddToolVersion("Cabal", $(Get-CabalVersion))
@@ -220,27 +212,26 @@ $java = $installedSoftware.AddHeader("Java")
$java.AddTable($(Get-JavaVersions)) $java.AddTable($(Get-JavaVersions))
# Toolcache # Toolcache
if (-not $os.IsSonoma) {
$toolcache = $installedSoftware.AddHeader("Cached Tools")
$toolcache.AddNodes($(Build-ToolcacheSection))
$toolcache = $installedSoftware.AddHeader("Cached Tools") # Rust
$toolcache.AddNodes($(Build-ToolcacheSection)) $rust = $installedSoftware.AddHeader("Rust Tools")
$rust.AddToolVersion("Cargo", $(Get-RustCargoVersion))
$rust.AddToolVersion("Rust", $(Get-RustVersion))
$rust.AddToolVersion("Rustdoc", $(Get-RustdocVersion))
$rust.AddToolVersion("Rustup", $(Get-RustupVersion))
# Rust $rustPackages = $rust.AddHeader("Packages")
if (-not $os.IsBigSur) { if (-not $os.IsVentura) {
$rust = $installedSoftware.AddHeader("Rust Tools") $rustPackages.AddToolVersion("Bindgen", $(Get-Bindgen))
$rust.AddToolVersion("Cargo", $(Get-RustCargoVersion)) $rustPackages.AddToolVersion("Cargo-audit", $(Get-Cargoaudit))
$rust.AddToolVersion("Rust", $(Get-RustVersion)) $rustPackages.AddToolVersion("Cargo-outdated", $(Get-Cargooutdated))
$rust.AddToolVersion("Rustdoc", $(Get-RustdocVersion)) $rustPackages.AddToolVersion("Cbindgen", $(Get-Cbindgen))
$rust.AddToolVersion("Rustup", $(Get-RustupVersion)) }
$rustPackages.AddToolVersion("Clippy", $(Get-RustClippyVersion))
$rustPackages = $rust.AddHeader("Packages") $rustPackages.AddToolVersion("Rustfmt", $(Get-RustfmtVersion))
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
$rustPackages.AddToolVersion("Bindgen", $(Get-Bindgen))
$rustPackages.AddToolVersion("Cargo-audit", $(Get-Cargoaudit))
$rustPackages.AddToolVersion("Cargo-outdated", $(Get-Cargooutdated))
$rustPackages.AddToolVersion("Cbindgen", $(Get-Cbindgen))
}
$rustPackages.AddToolVersion("Clippy", $(Get-RustClippyVersion))
$rustPackages.AddToolVersion("Rustfmt", $(Get-RustfmtVersion))
} }
# PowerShell # PowerShell
@@ -284,10 +275,9 @@ Get-XcodeInfoList | Out-Null
$xcodeInfo = Get-XcodeInfoList $xcodeInfo = Get-XcodeInfoList
$xcode.AddTable($(Build-XcodeTable $xcodeInfo)) $xcode.AddTable($(Build-XcodeTable $xcodeInfo))
if ((-not $os.IsVentura) -and (-not $os.IsSonoma)) {
$xcodeTools = $xcode.AddHeader("Xcode Support Tools") $xcodeTools = $xcode.AddHeader("Xcode Support Tools")
$xcodeTools.AddNodes($(Build-XcodeSupportToolsSection)) $xcodeTools.AddNodes($(Build-XcodeSupportToolsSection))
}
$installedSdks = $xcode.AddHeader("Installed SDKs") $installedSdks = $xcode.AddHeader("Installed SDKs")
$installedSdks.AddTable($(Build-XcodeSDKTable $xcodeInfo)) $installedSdks.AddTable($(Build-XcodeSDKTable $xcodeInfo))
@@ -260,7 +260,7 @@ function Get-RubyGemsVersion {
} }
function Get-ComposerVersion { function Get-ComposerVersion {
$composerVersion = Run-Command "composer --version" | Select-Object -First 1 | Take-Part -Part 2 $composerVersion = Run-Command "composer --version" | Take-Part -Part 2
return $composerVersion return $composerVersion
} }
@@ -37,14 +37,10 @@ function Build-ToolcacheSection {
$nodes = @() $nodes = @()
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonoma)) {
$nodes += @(
[ToolVersionsListNode]::new("PyPy", $(Get-ToolcachePyPyVersions), '^\d+\.\d+', "List")
)
}
if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) { if ((-not $os.IsVenturaArm64) -and (-not $os.IsSonomaArm64)) {
$nodes += @( $nodes += @(
[ToolVersionsListNode]::new("Ruby", $(Get-ToolcacheRubyVersions), '^\d+\.\d+', "List") [ToolVersionsListNode]::new("Ruby", $(Get-ToolcacheRubyVersions), '^\d+\.\d+', "List"),
[ToolVersionsListNode]::new("PyPy", $(Get-ToolcachePyPyVersions), '^\d+\.\d+', "List")
) )
} }
@@ -40,17 +40,9 @@ function Get-OSVersion {
} }
} }
# Get the value of the toolset
function Get-ToolsetContent { function Get-ToolsetContent {
<# $toolsetPath = Join-Path $env:HOME "image-generation" "toolset.json"
.SYNOPSIS
Retrieves the content of the toolset.json file.
.DESCRIPTION
This function reads the toolset.json in path provided by IMAGE_FOLDER
environment variable and returns the content as a PowerShell object.
#>
$toolsetPath = Join-Path $env:IMAGE_FOLDER "toolset.json"
$toolsetJson = Get-Content -Path $toolsetPath -Raw $toolsetJson = Get-Content -Path $toolsetPath -Raw
ConvertFrom-Json -InputObject $toolsetJson ConvertFrom-Json -InputObject $toolsetJson
} }
+7 -1
View File
@@ -82,11 +82,17 @@ is_Veertu() {
} }
get_toolset_value() { get_toolset_value() {
local toolset_path=$(echo "$IMAGE_FOLDER/toolset.json") local toolset_path=$(echo "$HOME/image-generation/toolset.json")
local query=$1 local query=$1
echo "$(jq -r "$query" $toolset_path)" echo "$(jq -r "$query" $toolset_path)"
} }
verlte() {
sortedVersion=$(echo -e "$1\n$2" | sort -V | head -n1)
[ "$1" = "$sortedVersion" ]
}
# brew provides package bottles for different macOS versions # brew provides package bottles for different macOS versions
# The 'brew install' command will fail if a package bottle does not exist # The 'brew install' command will fail if a package bottle does not exist
# Use the '--build-from-source' option to build from source in this case # Use the '--build-from-source' option to build from source in this case
@@ -160,7 +160,7 @@ installNunitConsole() {
#!/bin/bash -e -o pipefail #!/bin/bash -e -o pipefail
exec /Library/Frameworks/Mono.framework/Versions/${MONO_VERSION}/bin/mono --debug \$MONO_OPTIONS $NUNIT3_PATH/nunit3-console.exe "\$@" exec /Library/Frameworks/Mono.framework/Versions/${MONO_VERSION}/bin/mono --debug \$MONO_OPTIONS $NUNIT3_PATH/nunit3-console.exe "\$@"
EOF EOF
sudo chmod +x $TMP_WRAPPER_PATH sudo chmod +x "$TMP_WRAPPER_PATH"
sudo mv "$TMP_WRAPPER_PATH" "${MONO_VERSIONS_PATH}/${MONO_VERSION}/Commands/nunit3-console" sudo mv "$TMP_WRAPPER_PATH" "${MONO_VERSIONS_PATH}/${MONO_VERSION}/Commands/nunit3-console"
} }
@@ -2,13 +2,13 @@ Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
$os = Get-OSVersion $os = Get-OSVersion
Describe "Azure CLI" -Skip:($os.IsBigSur) { Describe "Azure CLI" {
It "Azure CLI" { It "Azure CLI" {
"az -v" | Should -ReturnZeroExitCode "az -v" | Should -ReturnZeroExitCode
} }
} }
Describe "Azure DevOps CLI" -Skip:($os.IsBigSur) { Describe "Azure DevOps CLI" {
It "az devops" { It "az devops" {
"az devops -h" | Should -ReturnZeroExitCode "az devops -h" | Should -ReturnZeroExitCode
} }
@@ -123,7 +123,7 @@ Describe "Aliyun CLI" -Skip:($os.IsMonterey -or $os.IsVentura -or $os.IsSonoma)
} }
} }
Describe "Julia" -Skip:($os.IsVentura -or $os.IsSonoma) { Describe "Julia" {
It "Julia" { It "Julia" {
"julia --version" | Should -ReturnZeroExitCode "julia --version" | Should -ReturnZeroExitCode
} }
@@ -159,7 +159,7 @@ Describe "virtualbox" -Skip:($os.IsBigSur -or $os.IsVentura -or $os.IsSonoma) {
} }
} }
Describe "R" -Skip:($os.IsVentura -or $os.IsSonoma -or $os.IsBigSur) { Describe "R" {
It "R" { It "R" {
"R --version" | Should -ReturnZeroExitCode "R --version" | Should -ReturnZeroExitCode
} }
@@ -191,7 +191,7 @@ Describe "yq" {
} }
} }
Describe "imagemagick" -Skip:($os.IsBigSur -or $os.IsVentura -or $os.IsSonoma) { Describe "imagemagick" -Skip:($os.IsVentura -or $os.IsSonoma) {
It "imagemagick" { It "imagemagick" {
"magick -version" | Should -ReturnZeroExitCode "magick -version" | Should -ReturnZeroExitCode
} }
+2 -2
View File
@@ -33,7 +33,7 @@ Describe "GCC" {
} }
} }
Describe "vcpkg" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64 -or $os.IsSonoma) { Describe "vcpkg" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64) {
It "vcpkg" { It "vcpkg" {
"vcpkg version" | Should -ReturnZeroExitCode "vcpkg version" | Should -ReturnZeroExitCode
} }
@@ -43,7 +43,7 @@ Describe "AWS" {
It "AWS CLI" { It "AWS CLI" {
"aws --version" | Should -ReturnZeroExitCode "aws --version" | Should -ReturnZeroExitCode
} }
It "AWS SAM CLI" -Skip:($os.IsBigSur) { It "AWS SAM CLI" {
"sam --version" | Should -ReturnZeroExitCode "sam --version" | Should -ReturnZeroExitCode
} }
+1 -6
View File
@@ -1,15 +1,10 @@
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1" Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
$os = Get-OSVersion
Describe "Git" { Describe "Git" {
It "git is installed" { It "git is installed" {
"git --version" | Should -ReturnZeroExitCode "git --version" | Should -ReturnZeroExitCode
} }
It "git lfs is installed" -Skip:($os.IsBigSur) { It "git lfs is installed" {
"git lfs version" | Should -ReturnZeroExitCode "git lfs version" | Should -ReturnZeroExitCode
} }
It "GIT_CLONE_PROTECTION_ACTIVE environment variable should be equal false" {
$env:GIT_CLONE_PROTECTION_ACTIVE | Should -BeExactly false
}
} }
+2 -2
View File
@@ -3,7 +3,7 @@ Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
$os = Get-OSVersion $os = Get-OSVersion
Describe "PHP" { Describe "PHP" {
Context "PHP" -Skip:($os.IsBigSur -or $os.IsVenturaArm64 -or $os.IsSonomaArm64) { Context "PHP" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64) {
It "PHP Path" { It "PHP Path" {
Get-ToolPath "php" | Should -Not -BeLike "/usr/bin/php*" Get-ToolPath "php" | Should -Not -BeLike "/usr/bin/php*"
} }
@@ -14,7 +14,7 @@ Describe "PHP" {
} }
} }
Context "Composer" -Skip:($os.IsBigSur -or $os.IsVenturaArm64 -or $os.IsSonomaArm64) { Context "Composer" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64) {
It "Composer" { It "Composer" {
"composer --version" | Should -ReturnZeroExitCode "composer --version" | Should -ReturnZeroExitCode
} }
+4 -10
View File
@@ -3,19 +3,13 @@ Import-Module "$PSScriptRoot/Helpers.psm1" -DisableNameChecking
$os = Get-OSVersion $os = Get-OSVersion
Describe "Python3" { Describe "Python3" -Skip:($os.IsVenturaArm64 -or $os.IsSonomaArm64) {
It "Python 3 is available" { It "Python 3 is available" {
"python3 --version" | Should -ReturnZeroExitCode "python3 --version" | Should -ReturnZeroExitCode
} }
if ($os.IsVenturaArm64 -or $os.IsSonomaArm64) { It "Python 3 is installed under /usr/local/bin" {
It "Python 3 is installed under /opt/homebrew/bin/" { Get-ToolPath "python3" | Should -BeLike "/usr/local/bin*"
Get-ToolPath "python3" | Should -BeLike "/opt/homebrew/bin/*"
}
} else {
It "Python 3 is installed under /usr/local/bin" {
Get-ToolPath "python3" | Should -BeLike "/usr/local/bin*"
}
} }
It "Pip 3 is available" { It "Pip 3 is available" {
+1 -1
View File
@@ -32,7 +32,7 @@ Describe "Fastlane" {
} }
} }
Describe "xcpretty" -Skip:($os.IsVentura -or $os.IsSonoma) { Describe "xcpretty" {
It "xcpretty" { It "xcpretty" {
"xcpretty --version" | Should -ReturnZeroExitCode "xcpretty --version" | Should -ReturnZeroExitCode
} }
+1 -1
View File
@@ -2,7 +2,7 @@ Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
$os = Get-OSVersion $os = Get-OSVersion
Describe "Rust" -Skip:($os.IsBigSur) { Describe "Rust" {
Context "Rust" { Context "Rust" {
It "Rustup is installed" { It "Rustup is installed" {
"rustup --version" | Should -ReturnZeroExitCode "rustup --version" | Should -ReturnZeroExitCode

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