Compare commits
385 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d0998f3b8e | |||
| e4d58452f4 | |||
| 984b0a83de | |||
| c93738bd53 | |||
| dc7d03e49d | |||
| 0aa72a7eba | |||
| 0dd8232afe | |||
| 9a469f0216 | |||
| 8f236daf09 | |||
| 17ccb0bc75 | |||
| ca7fca068a | |||
| e3079f0476 | |||
| 9aa72c4482 | |||
| 74d2bc3b8b | |||
| 82d69fd301 | |||
| 536cfa24b0 | |||
| 20158a6906 | |||
| 5f0efafcaa | |||
| 260acc1b51 | |||
| bc7bb8bf96 | |||
| 17d10f6889 | |||
| 888d89126b | |||
| 16fb116cf0 | |||
| 6c66ae2ee4 | |||
| 511d9fa7ba | |||
| 78d8bca4d3 | |||
| bf517ce489 | |||
| 70118fee99 | |||
| 66359f61ec | |||
| 453dccc462 | |||
| 632693ff4a | |||
| 1bd639f31d | |||
| 7b9a92f719 | |||
| 459f6845b1 | |||
| 0ca5e834c0 | |||
| 63c06b0c58 | |||
| 0576062396 | |||
| f2c7e4b929 | |||
| 3caf4a3e5c | |||
| 75a62205e9 | |||
| 54dc44b7a2 | |||
| 5a2cb18a48 | |||
| 8ee6ce76e4 | |||
| 17e6dc8298 | |||
| df8580f2f0 | |||
| ea50637d16 | |||
| ad4871d86c | |||
| ad831b8f26 | |||
| d87f781615 | |||
| 3514f6ff69 | |||
| 03116894b3 | |||
| ef69c49622 | |||
| b86d5523dd | |||
| ba6c9512a3 | |||
| c4f55aa749 | |||
| 97fd5e03b4 | |||
| 30007c5703 | |||
| a27099b057 | |||
| f1b7652904 | |||
| db20cb8390 | |||
| ed9d42f033 | |||
| 8573385d4c | |||
| 9d80842cc3 | |||
| 623df76820 | |||
| 3d7addb8fc | |||
| 23358eeb17 | |||
| cd32655cd2 | |||
| b2b196182c | |||
| 95b5b968a6 | |||
| 546688dac4 | |||
| 99997cd292 | |||
| c2f87e9170 | |||
| 94788ae5ea | |||
| d6ddbcd278 | |||
| 7f12aaf402 | |||
| 6b8f86f1de | |||
| b40f9b9685 | |||
| 1e6e5cf82e | |||
| 961aac86a3 | |||
| e1b218a38a | |||
| 503b916ab7 | |||
| 4e34a25806 | |||
| a7e8bf34bc | |||
| 6645a9fa93 | |||
| 9364605355 | |||
| ff63cfd072 | |||
| e6517681d6 | |||
| d8f7b14d80 | |||
| 631fc5df2f | |||
| 2154ca5dea | |||
| a5e931f672 | |||
| be94fa2215 | |||
| ce72be82fb | |||
| 4549caa570 | |||
| 1da2217ce8 | |||
| 8a42776d3f | |||
| 01f34021dc | |||
| 5da7f5bd60 | |||
| 4f62f8e999 | |||
| 11d669e34b | |||
| a388002a57 | |||
| f5ca411fa7 | |||
| 1ce167f82d | |||
| 06446ddb68 | |||
| f9eb5d95a5 | |||
| b13a40744d | |||
| fe1ff6476c | |||
| 417ce97d05 | |||
| aa79acfab2 | |||
| 4d0aaf97de | |||
| 5e72f7eb77 | |||
| e822ae7acb | |||
| 702823499e | |||
| c382ff1308 | |||
| 1ede8085f5 | |||
| 8863b25212 | |||
| 2f36af5003 | |||
| 710d5de922 | |||
| 062b07565e | |||
| f052b4c10f | |||
| a5d2e20fbc | |||
| d3de894568 | |||
| 52f93c6183 | |||
| 137c29497d | |||
| 0193114231 | |||
| 69e130c704 | |||
| e7a6a9a375 | |||
| 63cd495e98 | |||
| e4da6b3499 | |||
| d1a2a0f134 | |||
| b1fae5fe50 | |||
| 40f823846d | |||
| 0e61e0bbc0 | |||
| 8d2a20ab9b | |||
| 0d6b2761a2 | |||
| bdd8f81329 | |||
| 7fc477ed20 | |||
| 4a39d1de00 | |||
| fcb51fbe6d | |||
| 113127583a | |||
| 9e380e00a9 | |||
| 0448e95fef | |||
| c0e7d2e45d | |||
| 837669d1ac | |||
| c117abf0ab | |||
| f439d173c2 | |||
| af8332e66d | |||
| 87fa95250b | |||
| 9042e01fb9 | |||
| ef96ff8f47 | |||
| 00131be336 | |||
| 826e19618f | |||
| 8c9430638e | |||
| fdd56cacb3 | |||
| 19aa28b499 | |||
| d6a40056d2 | |||
| 0e307e3de2 | |||
| 1a01a1e7bb | |||
| c9f328930d | |||
| c8b6306344 | |||
| 548a980006 | |||
| 18b587baeb | |||
| 12fa229b4a | |||
| a018d0a18d | |||
| 2a1712d0f3 | |||
| bbc911baca | |||
| 305d2ef620 | |||
| b7e6ffd8d3 | |||
| 5b141f6a20 | |||
| 32b225ca7f | |||
| b2999beaf8 | |||
| 6f72963535 | |||
| 02c5be558e | |||
| b410b609eb | |||
| 0ecbd128e3 | |||
| 95a5527ae9 | |||
| c2797f37cd | |||
| 009a1bea38 | |||
| de56bc6444 | |||
| 547b6890b9 | |||
| c0d57013e1 | |||
| 55a07214fe | |||
| bb7ee95a7b | |||
| d20a8350a1 | |||
| 60dc1b5f7a | |||
| 4d4f454424 | |||
| 2269ded856 | |||
| 8432c6614b | |||
| 6f2c6fa6d1 | |||
| 0a3da31bf9 | |||
| 054dab12c8 | |||
| bf9a61a3c2 | |||
| c5f3a44d55 | |||
| c344d3b25a | |||
| cb5ab38b09 | |||
| cc2a6e1158 | |||
| 000b805803 | |||
| 5e8049b8dc | |||
| db5ec5cf33 | |||
| 182b14b8ec | |||
| 7f1bc9ed1e | |||
| 6d6a64bbbe | |||
| cd64c6838e | |||
| 8dfa279755 | |||
| 63f134ecf5 | |||
| 62363d8021 | |||
| 3911115764 | |||
| a31ed06b10 | |||
| 84450e8a9d | |||
| 6fd48d0a3a | |||
| 52011e5c44 | |||
| a9fba6b110 | |||
| 404da76e17 | |||
| cb8931646f | |||
| f160c496ff | |||
| f747f0983b | |||
| 5217af8068 | |||
| 9cd0d1ab64 | |||
| bb66e542a3 | |||
| 0740ab86e6 | |||
| 30ffa34849 | |||
| c01e7d1ed8 | |||
| b53758f5a5 | |||
| a765060351 | |||
| 7542155399 | |||
| a79f657a9f | |||
| 5cdc2e5f50 | |||
| 9f9633ce6f | |||
| 2ffa5631f5 | |||
| 29907e0bf0 | |||
| 3259f338d1 | |||
| 3433056f50 | |||
| 7dd1fab9d4 | |||
| 8eabd4605b | |||
| aeebda1fcf | |||
| 05025ab263 | |||
| 447d3b8988 | |||
| b8d14c9f54 | |||
| 02547255ff | |||
| e6c832339c | |||
| 1a20af2405 | |||
| f09c8ab9f2 | |||
| e5d8f5af5c | |||
| 6865a4ccfe | |||
| f54d2c7df5 | |||
| 3351872cbe | |||
| 16848183dd | |||
| f299f00c87 | |||
| abc6b7b793 | |||
| ec3c8b5326 | |||
| 5d614aa865 | |||
| 28f8c710df | |||
| 736f2fa165 | |||
| 4585d058c8 | |||
| 129a56046f | |||
| df0e83c8f7 | |||
| e2ebfcd1e9 | |||
| 05fc7efd60 | |||
| 480bba15df | |||
| 42597cc6c5 | |||
| 023104e407 | |||
| 9c73205ecc | |||
| 39fd1a04b6 | |||
| 3a86950eb0 | |||
| 825eebf51d | |||
| afc8bd66cc | |||
| 6af7ac92b6 | |||
| cdd8150e00 | |||
| 73ef0e730c | |||
| c1e7f3a462 | |||
| bdeb91b5d7 | |||
| 7ef06a9879 | |||
| 84c135f86f | |||
| 9b6af5b76e | |||
| 37d8c26d31 | |||
| 562a5868e9 | |||
| 8e0e0d68b9 | |||
| b8762ca568 | |||
| 5db309d81e | |||
| 996eae0346 | |||
| 7b9719416b | |||
| 59bc59f568 | |||
| 02b0bf3e1a | |||
| a8db6be3f0 | |||
| 44fd9ae71a | |||
| a6856ecef3 | |||
| b5fd6da0f9 | |||
| 1048793daa | |||
| 9a54916b6c | |||
| 340f75b8f2 | |||
| 865d805097 | |||
| 97368aa175 | |||
| cd453927ca | |||
| 3c2f1c6350 | |||
| 29dbc46881 | |||
| 92eeb55189 | |||
| bb56fb7ef4 | |||
| 3ff9488146 | |||
| ddf7ca4328 | |||
| fcb8a9ca81 | |||
| 7518d04a3a | |||
| d4793cf476 | |||
| efcb653004 | |||
| 1e6b55a484 | |||
| 99eda5a423 | |||
| 20705eae35 | |||
| 4c3e1eb41f | |||
| 5331de8e37 | |||
| 35c775a852 | |||
| 986530d6bb | |||
| f274979207 | |||
| bcce0b93c0 | |||
| 5aca2192f7 | |||
| cfacab19e6 | |||
| d8cbcdfd38 | |||
| 99772f4c61 | |||
| 6e09f7e132 | |||
| 8ad56a1fed | |||
| fa1beee5af | |||
| 6846f12d42 | |||
| d2c5a46fcf | |||
| 459c5d1a21 | |||
| b102665470 | |||
| ef47ec38e7 | |||
| 36f279b623 | |||
| 34a2d68118 | |||
| 5d6f295a05 | |||
| d9b2265e58 | |||
| 2d4cd7ab63 | |||
| 68b46cf15f | |||
| 6b7e9bec50 | |||
| ae91041b90 | |||
| 73d58cc851 | |||
| a39bc87388 | |||
| 192509400a | |||
| 8d70ee3468 | |||
| c042ffc4d7 | |||
| 30861de4bb | |||
| ff37068951 | |||
| c172738867 | |||
| 9ec86a6e3e | |||
| 44d41e873b | |||
| 573c5aa999 | |||
| ea705c4d63 | |||
| 211e6f3c29 | |||
| 9c8ba4fede | |||
| c44447f874 | |||
| 38877b3256 | |||
| 6aa5d3704e | |||
| 9d3fcffab4 | |||
| 1fb7d122d1 | |||
| fea7c2e6d1 | |||
| 9e30602178 | |||
| 54bf98dc42 | |||
| 5e4f5b8898 | |||
| 8aa18c1d57 | |||
| f57f6aaf4a | |||
| 5f872f77d6 | |||
| 8a7123162f | |||
| ee0629bfc3 | |||
| 2330c91d00 | |||
| 2e01f1d85c | |||
| 82bb1e015f | |||
| 4d7a8a0e35 | |||
| 07a22999fe | |||
| 7450e2dabe | |||
| 89e19af4c9 | |||
| 05b9e3e79c | |||
| 77f9a979a8 | |||
| 4a8cc99a63 | |||
| 57cf70f791 | |||
| 4828764ba0 | |||
| cb6dd7c0e3 | |||
| 050efaf52a | |||
| d12aeab69c | |||
| ca8169d472 | |||
| ddaeaaa8fb | |||
| 4638404b13 | |||
| 23e75abf72 | |||
| c50afe27cd | |||
| d0f20ddfa3 | |||
| 91d17b9150 | |||
| 9c7f92e4c3 | |||
| 92269a3a22 | |||
| 6f662479c8 |
@@ -32,9 +32,10 @@ body:
|
||||
options:
|
||||
- label: Ubuntu 18.04
|
||||
- label: Ubuntu 20.04
|
||||
- label: Ubuntu 22.04
|
||||
- label: macOS 10.15
|
||||
- label: macOS 11
|
||||
- label: Windows Server 2016
|
||||
- label: macOS 12
|
||||
- label: Windows Server 2019
|
||||
- label: Windows Server 2022
|
||||
validations:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
name: Bug Report
|
||||
description: Submit a bug report
|
||||
labels: [needs triage]
|
||||
description: Submit a bug report.
|
||||
labels: [bug report, needs triage]
|
||||
body:
|
||||
- type: textarea
|
||||
attributes:
|
||||
@@ -14,9 +14,10 @@ body:
|
||||
options:
|
||||
- label: Ubuntu 18.04
|
||||
- label: Ubuntu 20.04
|
||||
- label: Ubuntu 22.04
|
||||
- label: macOS 10.15
|
||||
- label: macOS 11
|
||||
- label: Windows Server 2016
|
||||
- label: macOS 12
|
||||
- label: Windows Server 2019
|
||||
- label: Windows Server 2022
|
||||
validations:
|
||||
@@ -28,7 +29,7 @@ body:
|
||||
Image version where you are experiencing the issue. Where to find image version in build logs:
|
||||
1. For GitHub Actions, under "Set up job" -> "Virtual Environment" -> "Version".
|
||||
2. For Azure DevOps, under "Initialize job" -> "Virtual Environment" -> "Version".
|
||||
|
||||
|
||||
If you have a public example, please, provide a link to the failed build.
|
||||
validations:
|
||||
required: true
|
||||
@@ -51,5 +52,5 @@ body:
|
||||
A description with steps to reproduce the issue.
|
||||
1. Step 1
|
||||
2. Step 2
|
||||
validations:
|
||||
required: true
|
||||
validations:
|
||||
required: true
|
||||
|
||||
@@ -1 +1,6 @@
|
||||
blank_issues_enabled: false
|
||||
blank_issues_enabled: false
|
||||
|
||||
contact_links:
|
||||
- name: Get help in GitHub Discussions
|
||||
url: https://github.com/actions/virtual-environments/discussions
|
||||
about: Have a question? Feel free to ask in the virtual-environments GitHub Discussions!
|
||||
|
||||
@@ -53,9 +53,10 @@ body:
|
||||
options:
|
||||
- label: Ubuntu 18.04
|
||||
- label: Ubuntu 20.04
|
||||
- label: Ubuntu 22.04
|
||||
- label: macOS 10.15
|
||||
- label: macOS 11
|
||||
- label: Windows Server 2016
|
||||
- label: macOS 12
|
||||
- label: Windows Server 2019
|
||||
- label: Windows Server 2022
|
||||
validations:
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
# For most projects, this workflow file will not need changing; you simply need
|
||||
# to commit it to your repository.
|
||||
#
|
||||
# You may wish to alter this file to override the set of languages analyzed,
|
||||
# or to provide custom queries or build logic.
|
||||
#
|
||||
# ******** NOTE ********
|
||||
# We have attempted to detect the languages in your repository. Please check
|
||||
# the `language` matrix defined below to confirm you have the correct set of
|
||||
# supported CodeQL languages.
|
||||
#
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ main ]
|
||||
schedule:
|
||||
- cron: '32 4 * * 0'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'python', 'ruby' ]
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||
# Learn more about CodeQL language support at https://git.io/codeql-language-support
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||
|
||||
# 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)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v1
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
|
||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||
# and modify them (or add more) to build your code if your project
|
||||
# uses a compiled language
|
||||
|
||||
#- run: |
|
||||
# make bootstrap
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
||||
@@ -29,6 +29,7 @@ jobs:
|
||||
VALIDATE_JSON: true
|
||||
VALIDATE_MARKDOWN: true
|
||||
DEFAULT_BRANCH: ${{ github.base_ref }}
|
||||
FILTER_REGEX_EXCLUDE: .*images/*/.*-Readme.md
|
||||
|
||||
- name: Checking shebang lines in MacOS and Ubuntu releases.
|
||||
run: ./images.CI/shebang-linter.ps1
|
||||
|
||||
+4
-1
@@ -387,4 +387,7 @@ public
|
||||
.dynamodb/
|
||||
|
||||
# visual studio code launch configuration
|
||||
launch.json
|
||||
launch.json
|
||||
|
||||
# Ignore dynamic template
|
||||
images/*/*-temp.json
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 GitHub
|
||||
Copyright (c) 2022 GitHub
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# GitHub Actions Virtual Environments
|
||||
This repository contains the source used to create the [virtual environments](https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners) for GitHub Actions hosted runners, as well as the VM images of [Microsoft-hosted agents](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops#use-a-microsoft-hosted-agent) used for Azure Pipelines. To build a VM machine from this repo's source, see the [instructions](docs/create-image-and-azure-resources.md).
|
||||
Repository contains the source used to create the [virtual environments](https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners) for GitHub Actions hosted runners, as well as the VM images of [Microsoft-hosted agents](https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops#use-a-microsoft-hosted-agent) used for Azure Pipelines.
|
||||
To build a VM machine from this repo's source, see the [instructions](docs/create-image-and-azure-resources.md).
|
||||
|
||||
How to get in touch with us:
|
||||
- To file a bug report, or request tools to be added/updated, please [open an issue using the appropriate template](https://github.com/actions/virtual-environments/issues/new/choose)
|
||||
@@ -10,12 +11,14 @@ For general questions about using the virtual environments or writing your Actio
|
||||
## Available Environments
|
||||
| Environment | YAML Label | Included Software | Latest Release & Rollout Progress |
|
||||
| --------------------|---------------------|--------------------|---------------------|
|
||||
| Ubuntu 22.04 | `ubuntu-22.04` | [ubuntu-22.04] | [](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu22&redirect=1)
|
||||
| Ubuntu 20.04 | `ubuntu-latest` or `ubuntu-20.04` | [ubuntu-20.04] | [](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu20&redirect=1)
|
||||
| Ubuntu 18.04 | `ubuntu-18.04` | [ubuntu-18.04] | [](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu18&redirect=1)
|
||||
| macOS 11 | `macos-11` | [macOS-11] | [](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-11&redirect=1)
|
||||
| macOS 10.15 | `macos-latest` or `macos-10.15` | [macOS-10.15] | [](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-10.15&redirect=1)
|
||||
| Windows Server 2022<sup>[beta]</sup> | `windows-2022` | [windows-2022] | [](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2022&redirect=1) |
|
||||
| Windows Server 2019 | `windows-latest` or `windows-2019` | [windows-2019] | [](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019&redirect=1)
|
||||
| macOS 12 | `macos-12`| [macOS-12] | [](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-12&redirect=1)
|
||||
| macOS 11 | `macos-latest` or `macos-11`| [macOS-11] | [](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-11&redirect=1)
|
||||
| macOS 10.15 | `macos-10.15` | [macOS-10.15] | [](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-10.15&redirect=1)
|
||||
| Windows Server 2022 | `windows-latest` or `windows-2022` | [windows-2022] | [](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2022&redirect=1) |
|
||||
| Windows Server 2019 | `windows-2019` | [windows-2019] | [](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019&redirect=1)
|
||||
| Windows Server 2016 | `windows-2016` | [windows-2016] | [](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2016&redirect=1)
|
||||
|
||||
<b>Note:</b> Beta and Preview images are provided "as-is", "with all faults" and "as available" and are excluded from the service level agreement and warranty. Beta and Preview images may not be covered by customer support.
|
||||
@@ -46,12 +49,14 @@ we pin the tool to specific version(s).
|
||||
* **Regular Weekly Rhythm** can be followed by watching [Releases](https://github.com/actions/virtual-environments/releases). Pre-release is created when deployment is started. As soon as deployment is finished, it is converted to release.
|
||||
You can also track upcoming changes using the [awaiting-deployment](https://github.com/actions/virtual-environments/labels/awaiting-deployment) label.
|
||||
|
||||
[ubuntu-20.04]: https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md
|
||||
[ubuntu-18.04]: https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1804-README.md
|
||||
[ubuntu-22.04]: https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2204-Readme.md
|
||||
[ubuntu-20.04]: https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
|
||||
[ubuntu-18.04]: https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu1804-Readme.md
|
||||
[windows-2022]: https://github.com/actions/virtual-environments/blob/main/images/win/Windows2022-Readme.md
|
||||
[windows-2019]: https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md
|
||||
[windows-2016]: https://github.com/actions/virtual-environments/blob/main/images/win/Windows2016-Readme.md
|
||||
[macOS-11]: https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11-Readme.md
|
||||
[macOS-12]: https://github.com/actions/virtual-environments/blob/main/images/macos/macos-12-Readme.md
|
||||
[macOS-10.15]: https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md
|
||||
[self-hosted runners]: https://help.github.com/en/actions/hosting-your-own-runners
|
||||
|
||||
|
||||
@@ -15,8 +15,7 @@ After successful image generation, a snapshot of the temporary VM will be conver
|
||||
- `Azure Az Powershell module` - https://docs.microsoft.com/en-us/powershell/azure/install-az-ps
|
||||
- `Git for Windows` - https://gitforwindows.org/
|
||||
|
||||
### Azure DevOps self-hosted pool requirements
|
||||
To connect to a temporary VM packer use WinRM or SSH connections on public IP interfaces.
|
||||
> To connect to a temporary VM packer uses WinRM or SSH connections on public IP interfaces.
|
||||
If you use a build agent located in an Azure subscription, please make sure that HTTPS/SSH ports are allowed for incoming/outgoing connections.
|
||||
In case of firewall restrictions, prohibiting connections from public addresses, private virtual network resources can be deployed and passed as arguments to the packer. This approach allows virtual machines to use private connections inside VLAN.
|
||||
|
||||
@@ -28,7 +27,7 @@ Detailed instruction can be found in [Azure documentation](https://docs.microsof
|
||||
#### How to prepare Windows build agent
|
||||
Local machine or [Azure VM](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/quick-create-cli) can be used as a build agent.
|
||||
|
||||
Download `packer` from https://www.packer.io/downloads, or install it via Chocolately.
|
||||
Download `packer` from https://www.packer.io/downloads, or install it via [Chocolatey](https://chocolatey.org/):
|
||||
```
|
||||
choco install packer
|
||||
```
|
||||
@@ -62,11 +61,23 @@ Where:
|
||||
- `SubscriptionId` - The Azure subscription Id where resources will be created.
|
||||
- `ResourceGroupName` - The Azure resource group name where the Azure resources will be created.
|
||||
- `ImageGenerationRepositoryRoot` - The root path of the image generation repository source.
|
||||
- `ImageType` - The type of the image being generated. Valid options are: "Windows2016", "Windows2019", "Windows2022", "Ubuntu1804", "Ubuntu2004".
|
||||
- `ImageType` - The type of the image being generated. Valid options are: "Windows2016", "Windows2019", "Windows2022", "Ubuntu1804", "Ubuntu2004", "Ubuntu2204".
|
||||
- `AzureLocation` - The location of the resources being created in Azure. For example "East US".
|
||||
|
||||
The function automatically creates all required Azure resources and kicks off packer image generation for the selected image type.
|
||||
|
||||
For optional authentication via service principal make sure to provide the following params — `AzureClientId`, `AzureClientSecret`, `AzureTenantId`, so the whole command will be:
|
||||
|
||||
```
|
||||
GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "myTestResourceGroup" -ImageGenerationRepositoryRoot "$pwd" -ImageType Ubuntu1804 -AzureLocation "East US" -AzureClientId {AADApplicationID} -AzureClientSecret {AADApplicationSecret} -AzureTenantId {AADTenantID}
|
||||
```
|
||||
|
||||
As extra options, you can add more params for permit to add Azure Tags on resources and enable https for Storage Account. It could be helpful on some tenants with hardenning policy. Params are — `EnableHttpsTrafficOnly` (Boolean) and `tags` (HashTable), so the whole command will be:
|
||||
|
||||
```
|
||||
GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "myTestResourceGroup" -ImageGenerationRepositoryRoot "$pwd" -ImageType Ubuntu1804 -AzureLocation "East US" -EnableHttpsTrafficOnly $true -tags @{dept="devops";env="prod"}
|
||||
```
|
||||
|
||||
*Please, check synopsis of `GenerateResourcesAndImage` for details about non-mandatory parameters.*
|
||||
|
||||
#### Generated VM Deployment
|
||||
@@ -96,9 +107,11 @@ The function creates an Azure VM from a template and generates network resources
|
||||
### User variables
|
||||
The Packer template includes `variables` section containing user variables used in image generation. Each variable is defined as a key/value strings. User variables can be passed to packer via predefined environment variables, or as direct arguments, in case if packer started manually.
|
||||
|
||||
- `build_resource_group_name` - Specify an existing resource group to run the build in it. By default, a temporary resource group will be created and destroyed as part of the build. If you do not have permission to do so, use build_resource_group_name to specify an existing resource group to run the build in it.
|
||||
- `client_id` - The application ID of the AAD Service Principal. Requires `client_secret`.
|
||||
- `object_id` - The object ID for the AAD SP. Will be derived from the oAuth token if empty.
|
||||
- `client_secret` - A password/secret registered for the AAD SP.
|
||||
- `client_secret` - The password or secret for your service principal.
|
||||
- `client_cert_path` - The location of a PEM file containing a certificate and private key for service principal.
|
||||
- `subscription_id` - The subscription to use.
|
||||
- `tenant_id` - The Active Directory tenant identifier with which your `client_id` and `subscription_id` are associated. If not specified, `tenant_id` will be looked up using `subscription_id`.
|
||||
- `resource_group` - Resource group under which the final artifact will be stored.
|
||||
|
||||
@@ -17,8 +17,8 @@ In general, these are the guidelines we consider when deciding what to pre-insta
|
||||
## Software and images support policy
|
||||
These are the guidelines we follow in software and images supporting routine:
|
||||
- Tools and versions will typically be removed 6 months after they are deprecated or have reached end-of-life.
|
||||
- We support at least 2 latest OS versions (LTS only for Ubuntu) and initiate deprecation process for the oldest one when image usage drops below 5%.
|
||||
- Most of the tools are preinstalled in the latest version only.
|
||||
- We support at least 2 latest OS versions. We begin the deprecation process of the oldest image label once a new OS version has been released.
|
||||
- The images generally contain the latest versions of packages installed except for Ubuntu LTS where we rely on the Canonical-provided repositories mostly.
|
||||
- Popular tools can have several versions installed side-by-side with the following strategy:
|
||||
|
||||
| Tool name | Installation strategy |
|
||||
|
||||
@@ -72,5 +72,5 @@ Function CreateAzureVMFromPackerTemplate {
|
||||
Write-Host "`nCreating the VM"
|
||||
az group deployment create -g $ResourceGroupName -n $VirtualMachineName --subscription $subscriptionId --template-file $templateFilePath --parameters vmSize=$vmSize vmName=$VirtualMachineName adminUserName=$AdminUsername adminPassword=$AdminPassword networkInterfaceId=$networkId
|
||||
|
||||
Write-Host "`nCreated in $(ResourceGroupName):`n vnet $(vnetName)`n subnet $(subnetName)`n nic $(nicName)`n publicip $(publicIpName)`n vm $(VirtualMachineName)"
|
||||
Write-Host "`nCreated in ${ResourceGroupName}:`n vnet ${vnetName}`n subnet ${subnetName}`n nic ${nicName}`n publicip ${publicIpName}`n vm ${VirtualMachineName}"
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ enum ImageType {
|
||||
Windows2022 = 2
|
||||
Ubuntu1804 = 3
|
||||
Ubuntu2004 = 4
|
||||
Ubuntu2204 = 5
|
||||
}
|
||||
|
||||
Function Get-PackerTemplatePath {
|
||||
@@ -32,6 +33,9 @@ Function Get-PackerTemplatePath {
|
||||
([ImageType]::Ubuntu2004) {
|
||||
$relativeTemplatePath = Join-Path "linux" "ubuntu2004.json"
|
||||
}
|
||||
([ImageType]::Ubuntu2204) {
|
||||
$relativeTemplatePath = Join-Path "linux" "ubuntu2204.json"
|
||||
}
|
||||
default { throw "Unknown type of image" }
|
||||
}
|
||||
|
||||
@@ -58,44 +62,32 @@ Function GenerateResourcesAndImage {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
A helper function to help generate an image.
|
||||
|
||||
.DESCRIPTION
|
||||
Creates Azure resources and kicks off a packer image generation for the selected image type.
|
||||
|
||||
.PARAMETER SubscriptionId
|
||||
The Azure subscription Id where resources will be created.
|
||||
|
||||
.PARAMETER ResourceGroupName
|
||||
The Azure resource group name where the Azure resources will be created.
|
||||
|
||||
.PARAMETER ImageGenerationRepositoryRoot
|
||||
The root path of the image generation repository source.
|
||||
|
||||
.PARAMETER ImageType
|
||||
The type of the image being generated. Valid options are: {"Windows2016", "Windows2019", "Windows2022", "Ubuntu1804", "Ubuntu2004"}.
|
||||
|
||||
.PARAMETER AzureLocation
|
||||
The location of the resources being created in Azure. For example "East US".
|
||||
|
||||
.PARAMETER Force
|
||||
Delete the resource group if it exists without user confirmation.
|
||||
|
||||
.PARAMETER AzureClientId
|
||||
Client id needs to be provided for optional authentication via service principal. Example: "11111111-1111-1111-1111-111111111111"
|
||||
|
||||
.PARAMETER AzureClientSecret
|
||||
Client secret needs to be provided for optional authentication via service principal. Example: "11111111-1111-1111-1111-111111111111"
|
||||
|
||||
.PARAMETER AzureTenantId
|
||||
Tenant needs to be provided for optional authentication via service principal. Example: "11111111-1111-1111-1111-111111111111"
|
||||
|
||||
.PARAMETER RestrictToAgentIpAddress
|
||||
If set, access to the VM used by packer to generate the image is restricted to the public IP address this script is run from.
|
||||
This parameter cannot be used in combination with the virtual_network_name packer parameter.
|
||||
|
||||
.PARAMETER AllowBlobPublicAccess
|
||||
The Azure storage account will be created with this option.
|
||||
|
||||
.EXAMPLE
|
||||
GenerateResourcesAndImage -SubscriptionId {YourSubscriptionId} -ResourceGroupName "shsamytest1" -ImageGenerationRepositoryRoot "C:\virtual-environments" -ImageType Ubuntu1804 -AzureLocation "East US"
|
||||
#>
|
||||
@@ -123,123 +115,192 @@ Function GenerateResourcesAndImage {
|
||||
[Parameter(Mandatory = $False)]
|
||||
[Switch] $Force,
|
||||
[Parameter(Mandatory = $False)]
|
||||
[bool] $AllowBlobPublicAccess = $False
|
||||
[bool] $AllowBlobPublicAccess = $False,
|
||||
[Parameter(Mandatory = $False)]
|
||||
[bool] $EnableHttpsTrafficOnly = $False,
|
||||
[Parameter(Mandatory = $False)]
|
||||
[Hashtable] $tags
|
||||
)
|
||||
|
||||
$builderScriptPath = Get-PackerTemplatePath -RepositoryRoot $ImageGenerationRepositoryRoot -ImageType $ImageType
|
||||
$ServicePrincipalClientSecret = $env:UserName + [System.GUID]::NewGuid().ToString().ToUpper();
|
||||
$InstallPassword = $env:UserName + [System.GUID]::NewGuid().ToString().ToUpper();
|
||||
|
||||
if ([string]::IsNullOrEmpty($AzureClientId))
|
||||
{
|
||||
Connect-AzAccount
|
||||
} else {
|
||||
$AzSecureSecret = ConvertTo-SecureString $AzureClientSecret -AsPlainText -Force
|
||||
$AzureAppCred = New-Object System.Management.Automation.PSCredential($AzureClientId, $AzSecureSecret)
|
||||
Connect-AzAccount -ServicePrincipal -Credential $AzureAppCred -Tenant $AzureTenantId
|
||||
}
|
||||
Set-AzContext -SubscriptionId $SubscriptionId
|
||||
|
||||
$alreadyExists = $true;
|
||||
try {
|
||||
Get-AzResourceGroup -Name $ResourceGroupName
|
||||
Write-Verbose "Resource group was found, will delete and recreate it."
|
||||
$builderScriptPath = Get-PackerTemplatePath -RepositoryRoot $ImageGenerationRepositoryRoot -ImageType $ImageType
|
||||
$ServicePrincipalClientSecret = $env:UserName + [System.GUID]::NewGuid().ToString().ToUpper()
|
||||
$InstallPassword = $env:UserName + [System.GUID]::NewGuid().ToString().ToUpper()
|
||||
|
||||
if ([string]::IsNullOrEmpty($AzureClientId))
|
||||
{
|
||||
Connect-AzAccount
|
||||
} else {
|
||||
$AzSecureSecret = ConvertTo-SecureString $AzureClientSecret -AsPlainText -Force
|
||||
$AzureAppCred = New-Object System.Management.Automation.PSCredential($AzureClientId, $AzSecureSecret)
|
||||
Connect-AzAccount -ServicePrincipal -Credential $AzureAppCred -Tenant $AzureTenantId
|
||||
}
|
||||
Set-AzContext -SubscriptionId $SubscriptionId
|
||||
|
||||
$alreadyExists = $true;
|
||||
try {
|
||||
Get-AzResourceGroup -Name $ResourceGroupName
|
||||
Write-Verbose "Resource group was found, will delete and recreate it."
|
||||
}
|
||||
catch {
|
||||
Write-Verbose "Resource group was not found, will create it."
|
||||
$alreadyExists = $false;
|
||||
}
|
||||
|
||||
if ($alreadyExists) {
|
||||
if($Force -eq $true) {
|
||||
# Cleanup the resource group if it already exitsted before
|
||||
Remove-AzResourceGroup -Name $ResourceGroupName -Force
|
||||
New-AzResourceGroup -Name $ResourceGroupName -Location $AzureLocation -Tag $tags
|
||||
|
||||
} else {
|
||||
$title = "Delete Resource Group"
|
||||
$message = "The resource group you specified already exists. Do you want to clean it up?"
|
||||
|
||||
$yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", `
|
||||
"Delete the resource group including all resources."
|
||||
|
||||
$no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", `
|
||||
"Keep the resource group and continue."
|
||||
|
||||
$stop = New-Object System.Management.Automation.Host.ChoiceDescription "&Stop", `
|
||||
"Stop the current action."
|
||||
|
||||
$options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no, $stop)
|
||||
$result = $host.ui.PromptForChoice($title, $message, $options, 0)
|
||||
|
||||
switch ($result)
|
||||
{
|
||||
0 { Remove-AzResourceGroup -Name $ResourceGroupName -Force; New-AzResourceGroup -Name $ResourceGroupName -Location $AzureLocation -Tag $tags }
|
||||
1 { <# Do nothing #> }
|
||||
2 { exit }
|
||||
}
|
||||
}
|
||||
} else {
|
||||
New-AzResourceGroup -Name $ResourceGroupName -Location $AzureLocation -Tag $tags
|
||||
}
|
||||
|
||||
# This script should follow the recommended naming conventions for azure resources
|
||||
$storageAccountName = if($ResourceGroupName.EndsWith("-rg")) {
|
||||
$ResourceGroupName.Substring(0, $ResourceGroupName.Length -3)
|
||||
} else { $ResourceGroupName }
|
||||
|
||||
# Resource group names may contain special characters, that are not allowed in the storage account name
|
||||
$storageAccountName = $storageAccountName.Replace("-", "").Replace("_", "").Replace("(", "").Replace(")", "").ToLower()
|
||||
$storageAccountName += "001"
|
||||
|
||||
|
||||
# Storage Account Name can only be 24 characters long
|
||||
if ($storageAccountName.Length -gt 24){
|
||||
$storageAccountName = $storageAccountName.Substring(0, 24)
|
||||
}
|
||||
|
||||
if ($tags) {
|
||||
New-AzStorageAccount -ResourceGroupName $ResourceGroupName -AccountName $storageAccountName -Location $AzureLocation -SkuName "Standard_LRS" -AllowBlobPublicAccess $AllowBlobPublicAccess -EnableHttpsTrafficOnly $EnableHttpsTrafficOnly -Tag $tags
|
||||
} else {
|
||||
New-AzStorageAccount -ResourceGroupName $ResourceGroupName -AccountName $storageAccountName -Location $AzureLocation -SkuName "Standard_LRS" -AllowBlobPublicAccess $AllowBlobPublicAccess -EnableHttpsTrafficOnly $EnableHttpsTrafficOnly
|
||||
}
|
||||
|
||||
if ([string]::IsNullOrEmpty($AzureClientId)) {
|
||||
# Interactive authentication: A service principal is created during runtime.
|
||||
$spDisplayName = [System.GUID]::NewGuid().ToString().ToUpper()
|
||||
$startDate = Get-Date
|
||||
$endDate = $startDate.AddYears(1)
|
||||
|
||||
if ('Microsoft.Azure.Commands.ActiveDirectory.PSADPasswordCredential' -as [type]) {
|
||||
$credentials = [Microsoft.Azure.Commands.ActiveDirectory.PSADPasswordCredential]@{
|
||||
StartDate = $startDate
|
||||
EndDate = $endDate
|
||||
Password = $ServicePrincipalClientSecret
|
||||
}
|
||||
$sp = New-AzADServicePrincipal -DisplayName $spDisplayName -PasswordCredential $credentials
|
||||
$spClientId = $sp.ApplicationId
|
||||
$azRoleParam = @{
|
||||
RoleDefinitionName = "Contributor"
|
||||
ServicePrincipalName = $spClientId
|
||||
}
|
||||
}
|
||||
|
||||
if ('Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.MicrosoftGraphPasswordCredential' -as [type]) {
|
||||
$credentials = [Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.MicrosoftGraphPasswordCredential]@{
|
||||
StartDateTime = $startDate
|
||||
EndDateTime = $endDate
|
||||
}
|
||||
$sp = New-AzADServicePrincipal -DisplayName $spDisplayName
|
||||
$appCred = New-AzADAppCredential -ApplicationId $sp.AppId -PasswordCredentials $credentials
|
||||
$spClientId = $sp.AppId
|
||||
$azRoleParam = @{
|
||||
RoleDefinitionName = "Contributor"
|
||||
PrincipalId = $sp.Id
|
||||
}
|
||||
$ServicePrincipalClientSecret = $appCred.SecretText
|
||||
}
|
||||
|
||||
Start-Sleep -Seconds $SecondsToWaitForServicePrincipalSetup
|
||||
New-AzRoleAssignment @azRoleParam
|
||||
Start-Sleep -Seconds $SecondsToWaitForServicePrincipalSetup
|
||||
$sub = Get-AzSubscription -SubscriptionId $SubscriptionId
|
||||
$tenantId = $sub.TenantId
|
||||
|
||||
# Remove ADPrincipal after the script completed
|
||||
$isCleanupADPrincipal = $true
|
||||
} else {
|
||||
# Parametrized Authentication via given service principal: The service principal with the data provided via the command line
|
||||
# is used for all authentication purposes.
|
||||
$spClientId = $AzureClientId
|
||||
$credentials = $AzureAppCred
|
||||
$ServicePrincipalClientSecret = $AzureClientSecret
|
||||
$tenantId = $AzureTenantId
|
||||
}
|
||||
|
||||
Get-LatestCommit -ErrorAction SilentlyContinue
|
||||
|
||||
$packerBinary = Get-Command "packer"
|
||||
if (-not ($packerBinary)) {
|
||||
throw "'packer' binary is not found on PATH"
|
||||
}
|
||||
|
||||
if($RestrictToAgentIpAddress -eq $true) {
|
||||
$AgentIp = (Invoke-RestMethod http://ipinfo.io/json).ip
|
||||
Write-Host "Restricting access to packer generated VM to agent IP Address: $AgentIp"
|
||||
}
|
||||
|
||||
if ($tags) {
|
||||
$builderScriptPath_temp = $builderScriptPath.Replace(".json", "-temp.json")
|
||||
$packer_script = Get-Content -Path $builderScriptPath | ConvertFrom-Json
|
||||
$packer_script.builders | Add-Member -Name "azure_tags" -Value $tags -MemberType NoteProperty
|
||||
$packer_script | ConvertTo-Json -Depth 3 | Out-File $builderScriptPath_temp
|
||||
$builderScriptPath = $builderScriptPath_temp
|
||||
}
|
||||
|
||||
& $packerBinary build -on-error=ask `
|
||||
-var "client_id=$($spClientId)" `
|
||||
-var "client_secret=$($ServicePrincipalClientSecret)" `
|
||||
-var "subscription_id=$($SubscriptionId)" `
|
||||
-var "tenant_id=$($tenantId)" `
|
||||
-var "location=$($AzureLocation)" `
|
||||
-var "resource_group=$($ResourceGroupName)" `
|
||||
-var "storage_account=$($storageAccountName)" `
|
||||
-var "install_password=$($InstallPassword)" `
|
||||
-var "allowed_inbound_ip_addresses=$($AgentIp)" `
|
||||
$builderScriptPath
|
||||
}
|
||||
catch {
|
||||
Write-Verbose "Resource group was not found, will create it."
|
||||
$alreadyExists = $false;
|
||||
Write-Error $_
|
||||
}
|
||||
finally {
|
||||
# Remove ADServicePrincipal and ADApplication
|
||||
if ($isCleanupADPrincipal) {
|
||||
Write-Host "`nRemoving ${spDisplayName}/${spClientId}:"
|
||||
if (Get-AzADServicePrincipal -DisplayName $spDisplayName) {
|
||||
Write-Host " [+] ADServicePrincipal"
|
||||
Remove-AzADServicePrincipal -DisplayName $spDisplayName -Confirm:$false
|
||||
}
|
||||
|
||||
if ($alreadyExists) {
|
||||
if($Force -eq $true) {
|
||||
# Cleanup the resource group if it already exitsted before
|
||||
Remove-AzResourceGroup -Name $ResourceGroupName -Force
|
||||
New-AzResourceGroup -Name $ResourceGroupName -Location $AzureLocation
|
||||
} else {
|
||||
$title = "Delete Resource Group"
|
||||
$message = "The resource group you specified already exists. Do you want to clean it up?"
|
||||
|
||||
$yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", `
|
||||
"Delete the resource group including all resources."
|
||||
|
||||
$no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", `
|
||||
"Keep the resource group and continue."
|
||||
|
||||
$stop = New-Object System.Management.Automation.Host.ChoiceDescription "&Stop", `
|
||||
"Stop the current action."
|
||||
|
||||
$options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no, $stop)
|
||||
$result = $host.ui.PromptForChoice($title, $message, $options, 0)
|
||||
|
||||
switch ($result)
|
||||
{
|
||||
0 { Remove-AzResourceGroup -Name $ResourceGroupName -Force; New-AzResourceGroup -Name $ResourceGroupName -Location $AzureLocation }
|
||||
1 { <# Do nothing #> }
|
||||
2 { exit }
|
||||
if (Get-AzADApplication -DisplayName $spDisplayName) {
|
||||
Write-Host " [+] ADApplication"
|
||||
Remove-AzADApplication -DisplayName $spDisplayName -Confirm:$false
|
||||
}
|
||||
}
|
||||
} else {
|
||||
New-AzResourceGroup -Name $ResourceGroupName -Location $AzureLocation
|
||||
}
|
||||
|
||||
# This script should follow the recommended naming conventions for azure resources
|
||||
$storageAccountName = if($ResourceGroupName.EndsWith("-rg")) {
|
||||
$ResourceGroupName.Substring(0, $ResourceGroupName.Length -3)
|
||||
} else { $ResourceGroupName }
|
||||
|
||||
# Resource group names may contain special characters, that are not allowed in the storage account name
|
||||
$storageAccountName = $storageAccountName.Replace("-", "").Replace("_", "").Replace("(", "").Replace(")", "").ToLower()
|
||||
$storageAccountName += "001"
|
||||
|
||||
New-AzStorageAccount -ResourceGroupName $ResourceGroupName -AccountName $storageAccountName -Location $AzureLocation -SkuName "Standard_LRS" -AllowBlobPublicAccess $AllowBlobPublicAccess
|
||||
|
||||
if ([string]::IsNullOrEmpty($AzureClientId)) {
|
||||
# Interactive authentication: A service principal is created during runtime.
|
||||
$spDisplayName = [System.GUID]::NewGuid().ToString().ToUpper()
|
||||
$credentialProperties = @{ StartDate=Get-Date; EndDate=Get-Date -Year 2024; Password=$ServicePrincipalClientSecret }
|
||||
$credentials = New-Object -TypeName Microsoft.Azure.Commands.ActiveDirectory.PSADPasswordCredential -Property $credentialProperties
|
||||
$sp = New-AzADServicePrincipal -DisplayName $spDisplayName -PasswordCredential $credentials
|
||||
|
||||
$spAppId = $sp.ApplicationId
|
||||
$spClientId = $sp.ApplicationId
|
||||
Start-Sleep -Seconds $SecondsToWaitForServicePrincipalSetup
|
||||
|
||||
New-AzRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $spAppId
|
||||
Start-Sleep -Seconds $SecondsToWaitForServicePrincipalSetup
|
||||
$sub = Get-AzSubscription -SubscriptionId $SubscriptionId
|
||||
$tenantId = $sub.TenantId
|
||||
# "", "Note this variable-setting script for running Packer with these Azure resources in the future:", "==============================================================================================", "`$spClientId = `"$spClientId`"", "`$ServicePrincipalClientSecret = `"$ServicePrincipalClientSecret`"", "`$SubscriptionId = `"$SubscriptionId`"", "`$tenantId = `"$tenantId`"", "`$spObjectId = `"$spObjectId`"", "`$AzureLocation = `"$AzureLocation`"", "`$ResourceGroupName = `"$ResourceGroupName`"", "`$storageAccountName = `"$storageAccountName`"", "`$install_password = `"$install_password`"", ""
|
||||
} else {
|
||||
# Parametrized Authentication via given service principal: The service principal with the data provided via the command line
|
||||
# is used for all authentication purposes.
|
||||
$spAppId = $AzureClientId
|
||||
$spClientId = $AzureClientId
|
||||
$credentials = $AzureAppCred
|
||||
$ServicePrincipalClientSecret = $AzureClientSecret
|
||||
$tenantId = $AzureTenantId
|
||||
}
|
||||
|
||||
Get-LatestCommit -ErrorAction SilentlyContinue
|
||||
|
||||
$packerBinary = Get-Command "packer"
|
||||
if (-not ($packerBinary)) {
|
||||
throw "'packer' binary is not found on PATH"
|
||||
}
|
||||
|
||||
if($RestrictToAgentIpAddress -eq $true) {
|
||||
$AgentIp = (Invoke-RestMethod http://ipinfo.io/json).ip
|
||||
echo "Restricting access to packer generated VM to agent IP Address: $AgentIp"
|
||||
}
|
||||
|
||||
& $packerBinary build -on-error=ask `
|
||||
-var "client_id=$($spClientId)" `
|
||||
-var "client_secret=$($ServicePrincipalClientSecret)" `
|
||||
-var "subscription_id=$($SubscriptionId)" `
|
||||
-var "tenant_id=$($tenantId)" `
|
||||
-var "location=$($AzureLocation)" `
|
||||
-var "resource_group=$($ResourceGroupName)" `
|
||||
-var "storage_account=$($storageAccountName)" `
|
||||
-var "install_password=$($InstallPassword)" `
|
||||
-var "allowed_inbound_ip_addresses=$($AgentIp)" `
|
||||
$builderScriptPath
|
||||
}
|
||||
|
||||
@@ -31,7 +31,10 @@ jobs:
|
||||
$ImageType = "${{ parameters.image_type }}"
|
||||
$TemplateDirectoryName = if ($ImageType.StartsWith("ubuntu")) { "linux" } else { "win" }
|
||||
$TemplateDirectoryPath = Join-Path "images" $TemplateDirectoryName | Resolve-Path
|
||||
$TemplatePath = Join-Path $TemplateDirectoryPath "$ImageType.json"
|
||||
$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=TemplatePath;]$TemplatePath"
|
||||
|
||||
|
||||
@@ -17,4 +17,4 @@ jobs:
|
||||
- template: image-generation.yml
|
||||
parameters:
|
||||
image_type: ubuntu1804
|
||||
image_readme_name: Ubuntu1804-README.md
|
||||
image_readme_name: Ubuntu1804-Readme.md
|
||||
@@ -17,4 +17,4 @@ jobs:
|
||||
- template: image-generation.yml
|
||||
parameters:
|
||||
image_type: ubuntu2004
|
||||
image_readme_name: Ubuntu2004-README.md
|
||||
image_readme_name: Ubuntu2004-Readme.md
|
||||
@@ -0,0 +1,20 @@
|
||||
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: ubuntu2204
|
||||
image_readme_name: Ubuntu2204-Readme.md
|
||||
@@ -19,7 +19,10 @@ if (-not (Test-Path $TemplatePath))
|
||||
exit 1
|
||||
}
|
||||
|
||||
$Image = [io.path]::GetFileNameWithoutExtension($TemplatePath)
|
||||
# Set Image repository path env variable, this is a workaround for Ubuntu 22.04 until this is fixed https://github.com/hashicorp/packer/issues/11733
|
||||
$env:ImageRepositoryPath = "."
|
||||
|
||||
$Image = [io.path]::GetFileName($TemplatePath).Split(".")[0]
|
||||
$TempResourceGroupName = "${ResourcesNamePrefix}_${Image}"
|
||||
$InstallPassword = [System.GUID]::NewGuid().ToString().ToUpper()
|
||||
|
||||
@@ -59,4 +62,4 @@ packer build -var "capture_name_prefix=$ResourcesNamePrefix" `
|
||||
$currentString = $_
|
||||
$sensitiveString = $SensitiveData | Where-Object { $currentString -match $_ }
|
||||
$sensitiveString -eq $null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ $headers = @{
|
||||
Authorization = "Basic ${base64AuthInfo}"
|
||||
}
|
||||
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Tls13
|
||||
$NewRelease = Invoke-RestMethod $URL -Body $Body -Method "POST" -Headers $headers -ContentType "application/json"
|
||||
|
||||
Write-Host "Created release: $($NewRelease._links.web.href)"
|
||||
@@ -6,14 +6,23 @@ function Push-AnkaTemplateToRegistry {
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string] $TagVersion,
|
||||
[string] $TagName,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string] $TemplateName
|
||||
)
|
||||
|
||||
$command = "anka registry -a $RegistryUrl push -t $TagVersion $TemplateName"
|
||||
# if registry uuid doesn't match than delete an image in registry
|
||||
$images = anka --machine-readable registry --registry-path $RegistryUrl list | ConvertFrom-Json | ForEach-Object body
|
||||
$images | Where-Object name -eq $TemplateName | ForEach-Object {
|
||||
$id = $_.id
|
||||
Show-StringWithFormat "Deleting '$TemplateName[$id]' VM and '$TagName' tag"
|
||||
$uri = '{0}/registry/vm?id={1}' -f $RegistryUrl, $id
|
||||
Invoke-WebRequest -Uri $uri -Method Delete | Out-Null
|
||||
}
|
||||
|
||||
$command = "anka registry --registry-path $RegistryUrl push --force --tag $TagName $TemplateName"
|
||||
Invoke-AnkaCommand -Command $command
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,8 @@ param(
|
||||
[int] $CPUCount = 6,
|
||||
[int] $RamSizeGb = 7,
|
||||
[int] $DiskSizeGb = 300,
|
||||
[string] $DisplayResolution = "1920x1080"
|
||||
[string] $DisplayResolution = "1920x1080",
|
||||
[string] $TagName = [DateTimeOffset]::Now.ToUnixTimeSeconds()
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
@@ -179,5 +180,5 @@ Write-Host "`t[*] Setting screen resolution to $DisplayResolution for $TemplateN
|
||||
Set-AnkaVMDisplayResolution -VMName $TemplateName -DisplayResolution $DisplayResolution
|
||||
|
||||
# Push a VM template (and tag) to the Cloud
|
||||
Write-Host "`t[*] Pushing '$TemplateName' image with '$ShortMacOSVersion' tag to the '$RegistryUrl' registry..."
|
||||
Push-AnkaTemplateToRegistry -RegistryUrl $registryUrl -TagVersion $shortMacOSVersion -TemplateName $TemplateName
|
||||
Write-Host "`t[*] Pushing '$TemplateName' image with '$TagName' tag to the '$RegistryUrl' registry..."
|
||||
Push-AnkaTemplateToRegistry -RegistryUrl $registryUrl -TagName $TagName -TemplateName $TemplateName
|
||||
|
||||
@@ -13,12 +13,10 @@ function Enable-AutoLogon {
|
||||
[string] $Password
|
||||
)
|
||||
|
||||
$url = "https://raw.githubusercontent.com/actions/virtual-environments/main/images/macos/provision/bootstrap-provisioner/kcpassword.py"
|
||||
$url = "https://raw.githubusercontent.com/actions/virtual-environments/main/images/macos/provision/bootstrap-provisioner/setAutoLogin.sh"
|
||||
$script = Invoke-RestMethod -Uri $url
|
||||
$base64 = [Convert]::ToBase64String($script.ToCharArray())
|
||||
$kcpassword = "echo $base64 | base64 --decode > ~/kcpassword;sudo python ./kcpassword '${Password}';rm ./kcpassword"
|
||||
$loginwindow = "sudo /usr/bin/defaults write /Library/Preferences/com.apple.loginwindow autoLoginUser '${UserName}';sudo /usr/bin/defaults write /Library/Preferences/com.apple.loginwindow autoLoginUserScreenLocked -bool false"
|
||||
$command = "${kcpassword};$loginwindow"
|
||||
$command = "echo $base64 | base64 --decode > ./setAutoLogin.sh;sudo bash ./setAutoLogin.sh '${UserName}' '${Password}';rm ./setAutoLogin.sh"
|
||||
Invoke-SSHPassCommand -HostName $HostName -Command $command
|
||||
}
|
||||
|
||||
@@ -93,6 +91,10 @@ function Get-MacOSInstaller {
|
||||
sudo rm -rf "$previousInstallerPath"
|
||||
}
|
||||
|
||||
# Clear LastRecommendedMajorOSBundleIdentifier to prevent error during fetching updates
|
||||
# Install failed with error: Update not found
|
||||
Update-SoftwareBundle
|
||||
|
||||
# Download macOS installer
|
||||
Write-Host "`t[*] Requested macOS '$MacOSVersion' version installer found, fetching it from Apple Software Update"
|
||||
$result = Invoke-WithRetry { /usr/sbin/softwareupdate --fetch-full-installer --full-installer-version $MacOSVersion } {$LASTEXITCODE -eq 0} | Out-String
|
||||
@@ -324,3 +326,12 @@ function Wait-LoginWindow {
|
||||
}
|
||||
Invoke-WithRetry -RetryCount $RetryCount -Seconds $Seconds -BreakCondition $condition
|
||||
}
|
||||
|
||||
function Update-SoftwareBundle {
|
||||
$productVersion = sw_vers -productVersion
|
||||
|
||||
if ( $productVersion.StartsWith('11.') ) {
|
||||
sudo rm -rf /Library/Preferences/com.apple.commerce.plist
|
||||
sudo /usr/bin/defaults delete /Library/Preferences/com.apple.SoftwareUpdate.plist LastRecommendedMajorOSBundleIdentifier | Out-Null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,7 +55,8 @@ jobs:
|
||||
arguments: -VMName "$(VirtualMachineName)" `
|
||||
-VIServer "$(vcenter-server-v2)" `
|
||||
-VIUserName "$(vcenter-username-v2)" `
|
||||
-VIPassword "$(vcenter-password-v2)"
|
||||
-VIPassword '$(vcenter-password-v2)' `
|
||||
-Cluster "$(esxi-cluster-v2)"
|
||||
|
||||
- pwsh: |
|
||||
$SensitiveData = @(
|
||||
@@ -66,13 +67,14 @@ jobs:
|
||||
packer build -on-error=abort `
|
||||
-var="vcenter_server=$(vcenter-server-v2)" `
|
||||
-var="vcenter_username=$(vcenter-username-v2)" `
|
||||
-var="vcenter_password=$(vcenter-password-v2)" `
|
||||
-var='vcenter_password=$(vcenter-password-v2)' `
|
||||
-var="vcenter_datacenter=$(vcenter-datacenter-v2)" `
|
||||
-var="cluster_or_esxi_host=$(esxi-cluster-v2)" `
|
||||
-var="esxi_datastore=$(buildDatastore)" `
|
||||
-var="output_folder=$(output-folder)" `
|
||||
-var="vm_username=$(vm-username)" `
|
||||
-var="vm_password=$(vm-password)" `
|
||||
-var="github_api_pat=$(github_api_pat)" `
|
||||
-var="build_id=$(VirtualMachineName)" `
|
||||
-var="baseimage_name=${{ parameters.base_image_name }}" `
|
||||
-var="xcode_install_user=$(xcode-installation-user)" `
|
||||
@@ -130,7 +132,7 @@ jobs:
|
||||
-TargetDataStore "${{ parameters.target_datastore }}" `
|
||||
-VIServer "$(vcenter-server-v2)" `
|
||||
-VIUserName "$(vcenter-username-v2)" `
|
||||
-VIPassword "$(vcenter-password-v2)"
|
||||
-VIPassword '$(vcenter-password-v2)' `
|
||||
-CpuCount "$(cpu-count)" `
|
||||
-CoresPerSocketCount "$(cores-per-socket-count)" `
|
||||
-Memory "$(memory)"
|
||||
@@ -144,4 +146,4 @@ jobs:
|
||||
arguments: -VMName "$(VirtualMachineName)" `
|
||||
-VIServer "$(vcenter-server-v2)" `
|
||||
-VIUserName "$(vcenter-username-v2)" `
|
||||
-VIPassword "$(vcenter-password-v2)"
|
||||
-VIPassword '$(vcenter-password-v2)'
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
name: macOS-10.14_$(date:yyyyMMdd)$(rev:.r)_unstable
|
||||
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_label: 'macOS Mojave'
|
||||
base_image_name: 'clean-macOS-10.14-380Gb_runner'
|
||||
template_path: 'templates/macOS-10.14.json'
|
||||
target_datastore: 'ds-image'
|
||||
@@ -71,6 +71,7 @@ if ($env:AGENT_JOBSTATUS -eq 'Failed') {
|
||||
Write-Host "VM has been successfully powered off and renamed to [${VMName}_failed]"
|
||||
} catch {
|
||||
Write-Host "##vso[task.LogIssue type=error;]Failed to power off and rename VM '$VMName'"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,6 +80,7 @@ try {
|
||||
Write-Host "VM has been moved successfully to target datastore '$TargetDataStore'"
|
||||
} catch {
|
||||
Write-Host "##vso[task.LogIssue type=error;]Failed to move VM '$VMName' to target datastore '$TargetDataStore'"
|
||||
exit 1
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -86,4 +88,5 @@ try {
|
||||
$vm | Set-VM -NumCPU $CpuCount -CoresPerSocket $CoresPerSocketCount -MemoryMB $Memory -Confirm:$false -ErrorAction Stop | Out-Null
|
||||
} catch {
|
||||
Write-Host "##vso[task.LogIssue type=error;]Failed to change specs for VM '$VMName'"
|
||||
exit 1
|
||||
}
|
||||
|
||||
@@ -36,7 +36,9 @@ param(
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$VIPassword,
|
||||
|
||||
[string]$TagCategory = "Busy"
|
||||
[string]$TagCategory = "Busy",
|
||||
|
||||
[string]$Cluster
|
||||
)
|
||||
|
||||
# Import helpers module
|
||||
@@ -47,6 +49,7 @@ function Select-DataStore {
|
||||
[string]$VMName,
|
||||
[string]$TagCategory,
|
||||
[string]$TemplateDatastore = "ds-local-Datastore-*",
|
||||
[string]$Cluster,
|
||||
[int]$ThresholdInGb = 400,
|
||||
[int]$VMCount = 2,
|
||||
[int]$Retries = 5
|
||||
@@ -57,8 +60,9 @@ function Select-DataStore {
|
||||
# 3. Choose a datastore with the minimal VM count < 2
|
||||
|
||||
Write-Host "Start Datastore selection process..."
|
||||
$allDatastores = Get-Datastore -Name $templateDatastore | Where-Object { $_.State -eq "Available" }
|
||||
$availableDatastores = $allDatastores `
|
||||
$clusterHosts = Get-Cluster -Name $Cluster | Get-VMHost
|
||||
$availableClusterDatastores = $clusterHosts | Get-Datastore -Name $TemplateDatastore | Where-Object -Property State -eq "Available"
|
||||
$availableDatastores = $availableClusterDatastores `
|
||||
| Where-Object { $_.FreeSpaceGB -ge $thresholdInGb } `
|
||||
| Where-Object {
|
||||
$vmOnDatastore = @((Get-ChildItem -Path $_.DatastoreBrowserPath).Name -notmatch "^\.").Count
|
||||
@@ -101,11 +105,11 @@ function Select-DataStore {
|
||||
}
|
||||
|
||||
Write-Host "Datastore select failed, $retries left"
|
||||
Select-DataStore -VMName $VMName -TagCategory $TagCategory -Retries $retries
|
||||
Select-DataStore -VMName $VMName -Cluster $Cluster -TagCategory $TagCategory -Retries $retries
|
||||
}
|
||||
|
||||
# Connection to a vCenter Server system
|
||||
Connect-VCServer -VIServer $VIServer -VIUserName $VIUserName -VIPassword $VIPassword
|
||||
|
||||
# Get a target datastore for current deployment
|
||||
Select-DataStore -VMName $VMName -TagCategory $TagCategory
|
||||
Select-DataStore -VMName $VMName -Cluster $Cluster -TagCategory $TagCategory
|
||||
|
||||
@@ -1,46 +1,43 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[all OSs] Default Nodejs version will be set to 16 on November, 29](https://github.com/actions/virtual-environments/issues/4446) |
|
||||
| [[all OSs] Selenium server version will be upgraded from 3 to 4 on November, 15](https://github.com/actions/virtual-environments/issues/4376) |
|
||||
| [[Ubuntu] Node:10 docker images will be removed on November, 15](https://github.com/actions/virtual-environments/issues/4357) |
|
||||
| [[All OSs] Node.js version 10 will be removed from the images on November, 15](https://github.com/actions/virtual-environments/issues/4356) |
|
||||
| [(Public Beta) Ubuntu 22.04 is now available](https://github.com/actions/virtual-environments/issues/5490) |
|
||||
***
|
||||
# Ubuntu 18.04.6 LTS
|
||||
- Linux kernel version: 5.4.0-1063-azure
|
||||
- Image Version: 20211122.1
|
||||
- Linux kernel version: 5.4.0-1078-azure
|
||||
- Image Version: 20220515.1
|
||||
|
||||
## Installed Software
|
||||
### Language and Runtime
|
||||
- Bash 4.4.20(1)-release
|
||||
- Clang 9.0.0
|
||||
- Clang-format 9.0.0
|
||||
- Erlang 24.1.5 (Eshell 12.1.5)
|
||||
- Erlang rebar3 3.17.0
|
||||
- Erlang 24.3.3 (Eshell 12.3.1)
|
||||
- Erlang rebar3 3.18.0
|
||||
- GNU C++ 7.5.0, 9.4.0, 10.3.0
|
||||
- GNU Fortran 7.5.0, 9.4.0, 10.3.0
|
||||
- Julia 1.6.4
|
||||
- Kotlin 1.6.0-release-798
|
||||
- Julia 1.7.2
|
||||
- Kotlin 1.6.21-release-334
|
||||
- Mono 6.12.0.122 (apt source repository: https://download.mono-project.com/repo/ubuntu stable-bionic main)
|
||||
- MSBuild 16.6.0.15201 (from /usr/lib/mono/msbuild/15.0/bin/MSBuild.dll)
|
||||
- Node 14.18.1
|
||||
- Node 16.15.0
|
||||
- Perl 5.26.1
|
||||
- Python 2.7.17
|
||||
- Python3 3.6.9
|
||||
- Ruby 2.5.1p57
|
||||
- Swift 5.5.1
|
||||
- Swift 5.6.1
|
||||
|
||||
### Package Management
|
||||
- cpan 1.64
|
||||
- Helm 3.7.1
|
||||
- Homebrew 3.3.4
|
||||
- Miniconda 4.10.3
|
||||
- Npm 6.14.15
|
||||
- Helm 3.8.2
|
||||
- Homebrew 3.4.11
|
||||
- Miniconda 4.11.0
|
||||
- Npm 8.5.5
|
||||
- Pip 9.0.1
|
||||
- Pip3 9.0.1
|
||||
- Pipx 0.16.4
|
||||
- Pipx 1.0.0
|
||||
- RubyGems 2.7.6
|
||||
- Vcpkg (build from master \<653912591>)
|
||||
- Yarn 1.22.17
|
||||
- Vcpkg (build from master \<0cf5b4305>)
|
||||
- Yarn 1.22.18
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -50,114 +47,116 @@
|
||||
|
||||
### Project Management
|
||||
- Ant 1.10.5
|
||||
- Gradle 7.3
|
||||
- Maven 3.8.4
|
||||
- Sbt 1.5.5
|
||||
- Gradle 7.4.2
|
||||
- Maven 3.8.5
|
||||
- Sbt 1.6.2
|
||||
|
||||
### Tools
|
||||
- Ansible 2.11.6
|
||||
- apt-fast 1.9.11
|
||||
- AzCopy 10.13.0 (available by `azcopy` and `azcopy10` aliases)
|
||||
- Bazel 4.2.1
|
||||
- Bazelisk 1.10.1
|
||||
- Bicep 0.4.1008
|
||||
- Ansible 2.11.11
|
||||
- apt-fast 1.9.12
|
||||
- AzCopy 10.15.0 (available by `azcopy` and `azcopy10` aliases)
|
||||
- Bazel 5.1.1
|
||||
- Bazelisk 1.11.0
|
||||
- Bicep 0.6.18
|
||||
- Buildah 1.19.6 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable)
|
||||
- CMake 3.22.0
|
||||
- CodeQL Action Bundle 2.7.1
|
||||
- CMake 3.23.1
|
||||
- CodeQL Action Bundle 2.9.1
|
||||
- Docker Compose v1 1.29.2
|
||||
- Docker Compose v2 2.1.1+azure-1
|
||||
- Docker-Buildx 0.7.0
|
||||
- Docker-Moby Client 20.10.11+azure-1
|
||||
- Docker-Moby Server 20.10.11+azure-1
|
||||
- Git 2.34.0 (apt source repository: ppa:git-core/ppa)
|
||||
- Git LFS 2.13.3 (apt source repository: https://packagecloud.io/install/repositories/github/git-lfs)
|
||||
- Docker Compose v2 2.4.1+azure-1
|
||||
- Docker-Buildx 0.8.2
|
||||
- Docker-Moby Client 20.10.15+azure-1
|
||||
- Docker-Moby Server 20.10.15+azure-2
|
||||
- Git 2.36.1 (apt source repository: ppa:git-core/ppa)
|
||||
- Git LFS 3.1.4 (apt source repository: https://packagecloud.io/install/repositories/github/git-lfs)
|
||||
- Git-ftp 1.3.1
|
||||
- Haveged 1.9.1
|
||||
- Heroku 7.59.2
|
||||
- HHVM (HipHop VM) 4.136.0
|
||||
- Heroku 7.60.2
|
||||
- HHVM (HipHop VM) 4.160.0
|
||||
- jq 1.5
|
||||
- Kind 0.11.1
|
||||
- Kubectl 1.22.4
|
||||
- Kustomize 4.4.1
|
||||
- Kind 0.13.0
|
||||
- Kubectl 1.24.0
|
||||
- Kustomize 4.5.4
|
||||
- Leiningen 2.9.8
|
||||
- MediaInfo 17.12
|
||||
- Mercurial 4.5.3
|
||||
- Minikube 1.24.0
|
||||
- n 8.0.0
|
||||
- Newman 5.3.0
|
||||
- nvm 0.39.0
|
||||
- OpenSSL 1.1.1 11 Sep 2018
|
||||
- Packer 1.7.8
|
||||
- Minikube 1.25.2
|
||||
- n 8.2.0
|
||||
- Newman 5.3.2
|
||||
- nvm 0.39.1
|
||||
- OpenSSL 1.1.1-1ubuntu2.1~18.04.17
|
||||
- Packer 1.8.0
|
||||
- Parcel 2.5.0
|
||||
- PhantomJS 2.1.1
|
||||
- Podman 3.0.1 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable)
|
||||
- Pulumi 3.18.0
|
||||
- R 4.1.2
|
||||
- Pulumi 3.32.1
|
||||
- R 4.2.0
|
||||
- Skopeo 1.2.2 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable)
|
||||
- Sphinx Open Source Search Server 2.2.11
|
||||
- SVN 1.9.7
|
||||
- Terraform 1.0.11
|
||||
- Terraform 1.1.9
|
||||
- yamllint 1.26.3
|
||||
- yq 4.14.2
|
||||
- zstd 1.5.0 (homebrew)
|
||||
- yq 4.25.1
|
||||
- zstd 1.5.2 (homebrew)
|
||||
|
||||
### CLI Tools
|
||||
- Alibaba Cloud CLI 3.0.99
|
||||
- AWS CLI 1.22.10
|
||||
- AWS CLI Session manager plugin 1.2.279.0
|
||||
- AWS SAM CLI 1.35.0
|
||||
- Azure CLI (azure-cli) 2.30.0 (installation method: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt)
|
||||
- Azure CLI (azure-devops) 0.22.0
|
||||
- GitHub CLI 2.2.0
|
||||
- Google Cloud SDK 365.0.0 (apt source repository: https://packages.cloud.google.com/apt)
|
||||
- Alibaba Cloud CLI 3.0.119
|
||||
- AWS CLI 1.24.0
|
||||
- AWS CLI Session manager plugin 1.2.312.0
|
||||
- AWS SAM CLI 1.50.0
|
||||
- Azure CLI (azure-cli) 2.36.0 (installation method: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt)
|
||||
- Azure CLI (azure-devops) 0.25.0
|
||||
- GitHub CLI 2.10.1
|
||||
- Google Cloud SDK 369.0.0 (apt source repository: https://packages.cloud.google.com/apt)
|
||||
- Hub CLI 2.14.2
|
||||
- Netlify CLI 7.0.2
|
||||
- OpenShift CLI 4.9.7
|
||||
- Netlify CLI 10.3.1
|
||||
- OpenShift CLI 4.10.13
|
||||
- ORAS CLI 0.12.0
|
||||
- Vercel CLI 23.1.2
|
||||
- Vercel CLI 24.2.3
|
||||
|
||||
### Java
|
||||
| Version | Vendor | Environment Variable |
|
||||
| ------------------- | ------------- | -------------------- |
|
||||
| 8.0.292+1 (default) | Adopt OpenJDK | JAVA_HOME_8_X64 |
|
||||
| 11.0.11+9 | Adopt OpenJDK | JAVA_HOME_11_X64 |
|
||||
| 12.0.2+10 | Adopt OpenJDK | JAVA_HOME_12_X64 |
|
||||
| Version | Vendor | Environment Variable |
|
||||
| ------------------- | --------------- | -------------------- |
|
||||
| 8.0.332+9 (default) | Eclipse Temurin | JAVA_HOME_8_X64 |
|
||||
| 11.0.15+10 | Eclipse Temurin | JAVA_HOME_11_X64 |
|
||||
| 12.0.2+10 | Adopt OpenJDK | JAVA_HOME_12_X64 |
|
||||
| 17.0.3+7 | Eclipse Temurin | JAVA_HOME_17_X64 |
|
||||
|
||||
### PHP
|
||||
| Tool | Version |
|
||||
| -------- | ---------------------------------- |
|
||||
| PHP | 7.1.33 7.2.34 7.3.33 7.4.26 8.0.13 |
|
||||
| Composer | 2.1.12 |
|
||||
| PHPUnit | 8.5.21 |
|
||||
| Tool | Version |
|
||||
| -------- | --------------------------------- |
|
||||
| PHP | 7.2.34 7.3.33 7.4.29 8.0.18 8.1.5 |
|
||||
| Composer | 2.3.5 |
|
||||
| PHPUnit | 8.5.26 |
|
||||
```
|
||||
Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled.
|
||||
```
|
||||
### Haskell
|
||||
- Cabal 3.6.2.0
|
||||
- GHC 9.2.1
|
||||
- GHCup 0.1.17.4
|
||||
- Stack 2.7.3
|
||||
- GHC 9.2.2
|
||||
- GHCup 0.1.17.8
|
||||
- Stack 2.7.5
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.56.0
|
||||
- Rust 1.56.1
|
||||
- Rustdoc 1.56.1
|
||||
- Cargo 1.60.0
|
||||
- Rust 1.60.0
|
||||
- Rustdoc 1.60.0
|
||||
- Rustup 1.24.3
|
||||
|
||||
#### Packages
|
||||
- Bindgen 0.59.1
|
||||
- Bindgen 0.59.2
|
||||
- Cargo audit 0.16.0
|
||||
- Cargo clippy 0.1.56
|
||||
- Cargo outdated 0.10.2
|
||||
- Cbindgen 0.20.0
|
||||
- Rustfmt 1.4.37
|
||||
- Cargo clippy 0.1.60
|
||||
- Cargo outdated
|
||||
- Cbindgen 0.23.0
|
||||
- Rustfmt 1.4.38
|
||||
|
||||
### Browsers and Drivers
|
||||
- Google Chrome 96.0.4664.45
|
||||
- ChromeDriver 96.0.4664.45
|
||||
- Mozilla Firefox 94.0
|
||||
- Geckodriver 0.30.0
|
||||
- Chromium 96.0.4664.0
|
||||
- Selenium server 4.0.0
|
||||
- Google Chrome 101.0.4951.64
|
||||
- ChromeDriver 101.0.4951.41
|
||||
- Chromium 101.0.4951.0
|
||||
- Mozilla Firefox 100.0
|
||||
- Geckodriver 0.31.0
|
||||
- Selenium server 4.1.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -167,73 +166,84 @@
|
||||
| SELENIUM_JAR_PATH | /usr/share/java/selenium-server.jar |
|
||||
|
||||
### .NET Core SDK
|
||||
- 2.1.302 2.1.403 2.1.526 2.1.617 2.1.701 2.1.818 3.1.120 3.1.202 3.1.302 3.1.415 5.0.104 5.0.209 5.0.303 5.0.403
|
||||
- 3.1.120 3.1.202 3.1.302 3.1.419 5.0.104 5.0.214 5.0.303 5.0.408 6.0.300
|
||||
|
||||
### .NET tools
|
||||
- nbgv 3.5.104+d0b7c362ff
|
||||
|
||||
### Databases
|
||||
- MongoDB 5.0.4 (apt source repository: https://repo.mongodb.org/apt/ubuntu)
|
||||
- PostgreSQL 14.1 (apt source repository: https://apt.postgresql.org/pub/repos/apt/)
|
||||
- MongoDB 5.0.8 (apt source repository: https://repo.mongodb.org/apt/ubuntu)
|
||||
- sqlite3 3.22.0
|
||||
|
||||
#### PostgreSQL
|
||||
- PostgreSQL 14.3 (apt source repository: https://apt.postgresql.org/pub/repos/apt/)
|
||||
- PostgreSQL Server (user:postgres)
|
||||
|
||||
```
|
||||
PostgreSQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start postgresql.service'
|
||||
```
|
||||
#### MySQL
|
||||
- MySQL 5.7.36
|
||||
- MySQL 5.7.38
|
||||
- MySQL Server (user:root password:root)
|
||||
|
||||
```
|
||||
MySQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start mysql.service'
|
||||
```
|
||||
#### MS SQL Server Client Tools
|
||||
- sqlcmd 17.8.0001.1
|
||||
- SqlPackage 15.0.5282.3
|
||||
- sqlcmd 17.9.0001.1
|
||||
- SqlPackage 16.0.5400.1
|
||||
|
||||
### Cached Tools
|
||||
#### Go
|
||||
- 1.15.15
|
||||
- 1.16.10
|
||||
- 1.17.3
|
||||
- 1.16.15
|
||||
- 1.17.10
|
||||
- 1.18.2
|
||||
|
||||
#### Node.js
|
||||
- 12.22.7
|
||||
- 14.18.1
|
||||
- 16.13.0
|
||||
- 12.22.12
|
||||
- 14.19.2
|
||||
- 16.15.0
|
||||
|
||||
#### PyPy
|
||||
- 2.7.18 [PyPy 7.3.6]
|
||||
- 2.7.18 [PyPy 7.3.9]
|
||||
- 3.6.12 [PyPy 7.3.3]
|
||||
- 3.9.12 [PyPy 7.3.9]
|
||||
|
||||
#### Python
|
||||
- 2.7.18
|
||||
- 3.5.10
|
||||
- 3.6.15
|
||||
- 3.7.12
|
||||
- 3.7.13
|
||||
- 3.8.12
|
||||
- 3.9.9
|
||||
- 3.10.0
|
||||
- 3.9.12
|
||||
- 3.10.4
|
||||
|
||||
#### Ruby
|
||||
- 2.4.10
|
||||
- 2.5.9
|
||||
- 2.6.8
|
||||
- 2.7.4
|
||||
- 3.0.2
|
||||
- 2.6.10
|
||||
- 2.7.6
|
||||
- 3.0.4
|
||||
- 3.1.2
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value | Architecture |
|
||||
| --------------- | ----------------------------------- | ------------ |
|
||||
| GOROOT_1_15_X64 | /opt/hostedtoolcache/go/1.15.15/x64 | x64 |
|
||||
| GOROOT_1_16_X64 | /opt/hostedtoolcache/go/1.16.10/x64 | x64 |
|
||||
| GOROOT_1_17_X64 | /opt/hostedtoolcache/go/1.17.3/x64 | x64 |
|
||||
| GOROOT_1_16_X64 | /opt/hostedtoolcache/go/1.16.15/x64 | x64 |
|
||||
| GOROOT_1_17_X64 | /opt/hostedtoolcache/go/1.17.10/x64 | x64 |
|
||||
| GOROOT_1_18_X64 | /opt/hostedtoolcache/go/1.18.2/x64 | x64 |
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.2.0
|
||||
- PowerShell 7.2.3
|
||||
|
||||
#### PowerShell Modules
|
||||
| Module | Version |
|
||||
| ---------- | ------- |
|
||||
| MarkdownPS | 1.9 |
|
||||
| Pester | 5.3.1 |
|
||||
| Module | Version |
|
||||
| --------------- | ------- |
|
||||
| MarkdownPS | 1.9 |
|
||||
| Microsoft.Graph | 1.9.6 |
|
||||
| Pester | 5.3.3 |
|
||||
|
||||
#### Az PowerShell Modules
|
||||
- 6.4.0 3.1.0.zip 4.4.0.zip 5.9.0.zip
|
||||
- 7.3.2 3.1.0.zip 4.4.0.zip 5.9.0.zip 6.6.0.zip
|
||||
|
||||
### Web Servers
|
||||
| Name | Version | ConfigFile | ServiceStatus | ListenPort |
|
||||
@@ -242,21 +252,21 @@
|
||||
| nginx | 1.14.0 | /etc/nginx/nginx.conf | inactive | 80 |
|
||||
|
||||
### Android
|
||||
| Package Name | Version |
|
||||
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 4.0 |
|
||||
| Android Emulator | 30.9.5 |
|
||||
| Android SDK Build-tools | 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<br>26.0.0 26.0.1 26.0.2 26.0.3<br>25.0.0 25.0.1 25.0.2 25.0.3<br>24.0.0 24.0.1 24.0.2 24.0.3<br>23.0.1 23.0.2 23.0.3 |
|
||||
| Android SDK Platform-Tools | 31.0.3 |
|
||||
| Android SDK Platforms | android-31 (rev 1)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3)<br>android-26 (rev 2)<br>android-25 (rev 3)<br>android-24 (rev 2)<br>android-23 (rev 3) |
|
||||
| Android SDK Tools | 26.1.1 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.10.2<br>3.18.1 |
|
||||
| Google APIs | addon-google_apis-google-21<br>addon-google_apis-google-22<br>addon-google_apis-google-23<br>addon-google_apis-google-24 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 21.4.7075529 (default)<br>23.1.7779620 |
|
||||
| SDK Patch Applier v4 | 1 |
|
||||
| Package Name | Version |
|
||||
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 4.0 |
|
||||
| Android Emulator | 31.2.10 |
|
||||
| Android SDK Build-tools | 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<br>26.0.0 26.0.1 26.0.2 26.0.3<br>25.0.0 25.0.1 25.0.2 25.0.3<br>24.0.0 24.0.1 24.0.2 24.0.3<br>23.0.1 23.0.2 23.0.3 |
|
||||
| Android SDK Platform-Tools | 33.0.1 |
|
||||
| Android SDK Platforms | 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)<br>android-26 (rev 2)<br>android-25 (rev 3)<br>android-24 (rev 2)<br>android-23 (rev 3) |
|
||||
| Android SDK Tools | 26.1.1 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.10.2<br>3.18.1 |
|
||||
| Google APIs | addon-google_apis-google-21<br>addon-google_apis-google-22<br>addon-google_apis-google-23<br>addon-google_apis-google-24 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 21.4.7075529 (default)<br>23.1.7779620 |
|
||||
| SDK Patch Applier v4 | 1 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -270,39 +280,41 @@
|
||||
### Cached Docker images
|
||||
| Repository:Tag | Digest | Created |
|
||||
| ----------------------- | ------------------------------------------------------------------------ | ---------- |
|
||||
| alpine:3.12 | sha256:d9459083f962de6bd980ae6a05be2a4cf670df6a1d898157bceb420342bec280 | 2021-11-12 |
|
||||
| alpine:3.13 | sha256:026f721af4cf2843e07bba648e158fb35ecc876d822130633cc49f707f0fc88c | 2021-11-12 |
|
||||
| alpine:3.14 | sha256:635f0aa53d99017b38d1a0aa5b2082f7812b03e3cdb299103fe77b5c8a07f1d2 | 2021-11-12 |
|
||||
| buildpack-deps:bullseye | sha256:b83c9c8628517694fc9adea2dc25f70113f511606482c79e1a7689ba4893f7c4 | 2021-11-17 |
|
||||
| buildpack-deps:buster | sha256:184194bf02563c474132a6982ed5878ef32b19b9f2a10029422ab304ca88ade1 | 2021-11-17 |
|
||||
| buildpack-deps:stretch | sha256:36fba449401e28a20c9fc9ebae94b4071c0a69bab5aade3340539ac9c857375a | 2021-11-17 |
|
||||
| debian:10 | sha256:e5333f8697a86fa1be53b2a7e994247083f61885166df0cdda9f812acb514d7c | 2021-11-17 |
|
||||
| debian:11 | sha256:e8c184b56a94db0947a9d51ec68f42ef5584442f20547fa3bd8cbd00203b2e7a | 2021-11-17 |
|
||||
| debian:9 | sha256:d8ee86bf0afeb901de293c692a540307a670306cbdb7a06e2c840f17b0c35374 | 2021-11-17 |
|
||||
| moby/buildkit:latest | sha256:d6c89b7085b106301645ddcc77cf64eb7b705ab507b72d52d130ac33f1300417 | 2021-11-18 |
|
||||
| node:12 | sha256:cb615135757e6e2eed4fad6d80f07b13d9f35072700c01da6de26fde5c9e8632 | 2021-11-17 |
|
||||
| node:12-alpine | sha256:0eca266c5fe38ba93aebac00e45c9ac1bb7328b0702a6dc10e1a6ea543d49301 | 2021-11-13 |
|
||||
| node:14 | sha256:fbd6954d3941ebd1e12cd995dc10a4994535aa44d47271a91a829a2d1f88fc4c | 2021-11-17 |
|
||||
| node:14-alpine | sha256:240e1e6ef6dfba3bb70d6e88cca6cbb0b5a6f3a2b4496ed7edc5474e8ed594bd | 2021-11-13 |
|
||||
| node:16 | sha256:580a0850049c59a48f06090edd48c9f966c5e6572bbbabc369ba3ecbc4855dba | 2021-11-17 |
|
||||
| node:16-alpine | sha256:60ef0bed1dc2ec835cfe3c4226d074fdfaba571fd619c280474cc04e93f0ec5b | 2021-11-13 |
|
||||
| ubuntu:16.04 | sha256:0f71fa8d4d2d4292c3c617fda2b36f6dabe5c8b6e34c3dc5b0d17d4e704bd39c | 2021-08-31 |
|
||||
| ubuntu:18.04 | sha256:0fedbd5bd9fb72089c7bbca476949e10593cebed9b1fb9edf5b79dbbacddd7d6 | 2021-10-01 |
|
||||
| ubuntu:20.04 | sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322 | 2021-10-16 |
|
||||
| alpine:3.12 | sha256:c75ac27b49326926b803b9ed43bf088bc220d22556de1bc5f72d742c91398f69 | 2022-04-05 |
|
||||
| alpine:3.13 | sha256:ccf92aa53bc6c3b25be2ad0cce80baec1778f007f7e076b0ffbd1b225d0b3a9b | 2022-04-05 |
|
||||
| alpine:3.14 | sha256:06b5d462c92fc39303e6363c65e074559f8d6b1363250027ed5053557e3398c5 | 2022-04-05 |
|
||||
| buildpack-deps:bullseye | sha256:f4369ea9e313fc97029c736d68a9ea705d14fd1884a70be33aae25196d59288b | 2022-05-11 |
|
||||
| buildpack-deps:buster | sha256:3485150b7bd19da1e2ddbf567ee47c5ebd1ed62d55a334ff363a718057d713c3 | 2022-05-11 |
|
||||
| buildpack-deps:stretch | sha256:1929159d9dfd9fc9cc8f6fb0c8414452ec4613b824e152b87e24de9a6e3b5879 | 2022-05-11 |
|
||||
| debian:10 | sha256:405f48fbb359190809bd91aac79c3f6c346c1e79878c839351c6a817db5e9fc4 | 2022-05-11 |
|
||||
| debian:11 | sha256:6137c67e2009e881526386c42ba99b3657e4f92f546814a33d35b14e60579777 | 2022-05-11 |
|
||||
| debian:9 | sha256:3487fb8dc9312f88dd4aa03364c15d98a998c5c7c3453f0469002f9d593916f6 | 2022-05-11 |
|
||||
| moby/buildkit:latest | sha256:0dc312b04eac1b44cd2cad566deb1e886c753109208affbbec8384f381ff7f38 | 2022-05-06 |
|
||||
| node:12 | sha256:01627afeb110b3054ba4a1405541ca095c8bfca1cb6f2be9479c767a2711879e | 2022-04-20 |
|
||||
| node:12-alpine | sha256:d4b15b3d48f42059a15bd659be60afe21762aae9d6cbea6f124440895c27db68 | 2022-04-11 |
|
||||
| node:14 | sha256:61168c39af89331ffaa6ba41c2a44f4d5132a857a6034175f994948b5798b588 | 2022-05-11 |
|
||||
| node:14-alpine | sha256:8845b4f88f64f8c56a39236648ba22946e806a6153c10911f77b70e5a2edb4ca | 2022-04-05 |
|
||||
| node:16 | sha256:1817bb941c9a30fe2a6d75ff8675a8f6def408efe3d3ff43dbb006e2b534fa14 | 2022-05-11 |
|
||||
| node:16-alpine | sha256:1a9a71ea86aad332aa7740316d4111ee1bd4e890df47d3b5eff3e5bded3b3d10 | 2022-04-27 |
|
||||
| ubuntu:16.04 | sha256:20858ebbc96215d6c3c574f781133ebffdc7c18d98af4f294cc4c04871a6fe61 | 2021-08-31 |
|
||||
| ubuntu:18.04 | sha256:d21b6ba9e19feffa328cb3864316e6918e30acfd55e285b5d3df1d8ca3c7fd3f | 2022-04-29 |
|
||||
| ubuntu:20.04 | sha256:47f14534bda344d9fe6ffd6effb95eefe579f4be0d508b7445cf77f61a0e5724 | 2022-04-29 |
|
||||
|
||||
### Installed apt packages
|
||||
| Name | Version |
|
||||
| ----------------- | --------------------------------- |
|
||||
| aria2 | 1.33.1-1 |
|
||||
| autoconf | 2.69-11 |
|
||||
| automake | 1:1.15.1-3ubuntu2 |
|
||||
| binutils | 2.30-21ubuntu1\~18.04.7 |
|
||||
| bison | 2:3.0.4.dfsg-1build1 |
|
||||
| brotli | 1.0.3-1ubuntu1.3 |
|
||||
| build-essential | 12.4ubuntu1 |
|
||||
| bzip2 | 1.0.6-8.1ubuntu0.2 |
|
||||
| coreutils | 8.28-1ubuntu1 |
|
||||
| curl | 7.58.0-2ubuntu3.16 |
|
||||
| dbus | 1.12.2-1ubuntu1.2 |
|
||||
| dnsutils | 1:9.11.3+dfsg-1ubuntu1.16 |
|
||||
| curl | 7.58.0-2ubuntu3.18 |
|
||||
| dbus | 1.12.2-1ubuntu1.3 |
|
||||
| dnsutils | 1:9.11.3+dfsg-1ubuntu1.17 |
|
||||
| dpkg | 1.19.0.5ubuntu2.3 |
|
||||
| fakeroot | 1.22-2ubuntu1 |
|
||||
| file | 1:5.32-2ubuntu0.4 |
|
||||
@@ -310,33 +322,34 @@
|
||||
| ftp | 0.17-34 |
|
||||
| gnupg2 | 2.2.4-1ubuntu1.4 |
|
||||
| haveged | 1.9.1-6 |
|
||||
| imagemagick | 8:6.9.7.4+dfsg-16ubuntu6.11 |
|
||||
| imagemagick | 8:6.9.7.4+dfsg-16ubuntu6.12 |
|
||||
| iproute2 | 4.15.0-2ubuntu1.3 |
|
||||
| iputils-ping | 3:20161105-1ubuntu3 |
|
||||
| jq | 1.5+dfsg-2 |
|
||||
| lib32z1 | 1:1.2.11.dfsg-0ubuntu2 |
|
||||
| lib32z1 | 1:1.2.11.dfsg-0ubuntu2.1 |
|
||||
| libc++-dev | 6.0-2 |
|
||||
| libc++abi-dev | 6.0-2 |
|
||||
| libcurl3 | 7.58.0-2ubuntu3.16 |
|
||||
| libcurl3 | 7.58.0-2ubuntu3.18 |
|
||||
| libgbm-dev | 20.0.8-0ubuntu1\~18.04.1 |
|
||||
| libgconf-2-4 | 3.2.6-4ubuntu1 |
|
||||
| libgsl-dev | 2.4+dfsg-6 |
|
||||
| libgtk-3-0 | 3.22.30-1ubuntu4 |
|
||||
| libmagic-dev | 1:5.32-2ubuntu0.4 |
|
||||
| libmagickcore-dev | 8:6.9.7.4+dfsg-16ubuntu6.11 |
|
||||
| libmagickwand-dev | 8:6.9.7.4+dfsg-16ubuntu6.11 |
|
||||
| libmagickcore-dev | 8:6.9.7.4+dfsg-16ubuntu6.12 |
|
||||
| libmagickwand-dev | 8:6.9.7.4+dfsg-16ubuntu6.12 |
|
||||
| libsecret-1-dev | 0.18.6-1 |
|
||||
| libsqlite3-dev | 3.22.0-1ubuntu0.4 |
|
||||
| libsqlite3-dev | 3.22.0-1ubuntu0.5 |
|
||||
| libtool | 2.4.6-2 |
|
||||
| libunwind8 | 1.2.1-8 |
|
||||
| libxkbfile-dev | 1:1.0.9-2 |
|
||||
| libxss1 | 1:1.2.2-1 |
|
||||
| locales | 2.27-3ubuntu1.4 |
|
||||
| locales | 2.27-3ubuntu1.5 |
|
||||
| m4 | 1.4.18-1 |
|
||||
| mediainfo | 17.12-1 |
|
||||
| mercurial | 4.5.3-1ubuntu2.2 |
|
||||
| net-tools | 1.60+git20161116.90da8a0-1ubuntu1 |
|
||||
| netcat | 1.10-41.1 |
|
||||
| openssh-client | 1:7.6p1-4ubuntu0.5 |
|
||||
| openssh-client | 1:7.6p1-4ubuntu0.7 |
|
||||
| p7zip-full | 16.02+dfsg-6 |
|
||||
| p7zip-rar | 16.02-2 |
|
||||
| parallel | 20161222-1 |
|
||||
@@ -346,11 +359,11 @@
|
||||
| pollinate | 4.33-0ubuntu1\~18.04.2 |
|
||||
| python-setuptools | 39.0.1-2 |
|
||||
| rpm | 4.14.1+dfsg1-2 |
|
||||
| rsync | 3.1.2-2.1ubuntu1.2 |
|
||||
| rsync | 3.1.2-2.1ubuntu1.4 |
|
||||
| shellcheck | 0.4.6-1 |
|
||||
| sphinxsearch | 2.2.11-2 |
|
||||
| sqlite3 | 3.22.0-1ubuntu0.4 |
|
||||
| ssh | 1:7.6p1-4ubuntu0.5 |
|
||||
| sqlite3 | 3.22.0-1ubuntu0.5 |
|
||||
| ssh | 1:7.6p1-4ubuntu0.7 |
|
||||
| sshpass | 1.06-1 |
|
||||
| subversion | 1.9.7-4ubuntu1 |
|
||||
| sudo | 1.8.21p2-3ubuntu1.4 |
|
||||
@@ -359,13 +372,13 @@
|
||||
| texinfo | 6.5.0.dfsg.1-2 |
|
||||
| time | 1.7-25.1build1 |
|
||||
| tk | 8.6.0+9 |
|
||||
| tzdata | 2021e-0ubuntu0.18.04 |
|
||||
| tzdata | 2022a-0ubuntu0.18.04 |
|
||||
| unzip | 6.0-21ubuntu1.1 |
|
||||
| upx | 3.94-4 |
|
||||
| wget | 1.19.4-1ubuntu2.2 |
|
||||
| xorriso | 1.4.8-3 |
|
||||
| xvfb | 2:1.19.6-1ubuntu4.9 |
|
||||
| xz-utils | 5.2.2-1.3 |
|
||||
| xvfb | 2:1.19.6-1ubuntu4.10 |
|
||||
| xz-utils | 5.2.2-1.3ubuntu0.1 |
|
||||
| zip | 3.0-11build1 |
|
||||
| zsync | 0.6.2-3ubuntu1 |
|
||||
|
||||
@@ -1,46 +1,43 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[all OSs] Default Nodejs version will be set to 16 on November, 29](https://github.com/actions/virtual-environments/issues/4446) |
|
||||
| [[all OSs] Selenium server version will be upgraded from 3 to 4 on November, 15](https://github.com/actions/virtual-environments/issues/4376) |
|
||||
| [[Ubuntu] Node:10 docker images will be removed on November, 15](https://github.com/actions/virtual-environments/issues/4357) |
|
||||
| [[All OSs] Node.js version 10 will be removed from the images on November, 15](https://github.com/actions/virtual-environments/issues/4356) |
|
||||
| [(Public Beta) Ubuntu 22.04 is now available](https://github.com/actions/virtual-environments/issues/5490) |
|
||||
***
|
||||
# Ubuntu 20.04.3 LTS
|
||||
- Linux kernel version: 5.11.0-1021-azure
|
||||
- Image Version: 20211122.1
|
||||
# Ubuntu 20.04.4 LTS
|
||||
- Linux kernel version: 5.13.0-1023-azure
|
||||
- Image Version: 20220515.1
|
||||
|
||||
## Installed Software
|
||||
### Language and Runtime
|
||||
- Bash 5.0.17(1)-release
|
||||
- Clang 10.0.0, 11.0.0, 12.0.0
|
||||
- Clang-format 10.0.0, 11.0.0, 12.0.0
|
||||
- Erlang 24.1.5 (Eshell 12.1.5)
|
||||
- Erlang rebar3 3.17.0
|
||||
- GNU C++ 9.3.0, 10.3.0
|
||||
- GNU Fortran 9.3.0, 10.3.0
|
||||
- Julia 1.6.4
|
||||
- Kotlin 1.6.0-release-798
|
||||
- Erlang 24.3.3 (Eshell 12.3.1)
|
||||
- Erlang rebar3 3.18.0
|
||||
- GNU C++ 9.4.0, 10.3.0
|
||||
- GNU Fortran 9.4.0, 10.3.0
|
||||
- Julia 1.7.2
|
||||
- Kotlin 1.6.21-release-334
|
||||
- Mono 6.12.0.122 (apt source repository: https://download.mono-project.com/repo/ubuntu stable-focal main)
|
||||
- MSBuild 16.6.0.15201 (from /usr/lib/mono/msbuild/15.0/bin/MSBuild.dll)
|
||||
- Node 14.18.1
|
||||
- Node 16.15.0
|
||||
- Perl 5.30.0
|
||||
- Python 3.8.10
|
||||
- Python3 3.8.10
|
||||
- Ruby 2.7.0p0
|
||||
- Swift 5.5.1
|
||||
- Swift 5.6.1
|
||||
|
||||
### Package Management
|
||||
- cpan 1.64
|
||||
- Helm 3.7.1
|
||||
- Homebrew 3.3.4
|
||||
- Miniconda 4.10.3
|
||||
- Npm 6.14.15
|
||||
- Helm 3.8.2
|
||||
- Homebrew 3.4.11
|
||||
- Miniconda 4.11.0
|
||||
- Npm 8.5.5
|
||||
- Pip 20.0.2
|
||||
- Pip3 20.0.2
|
||||
- Pipx 0.16.4
|
||||
- Pipx 1.0.0
|
||||
- RubyGems 3.1.2
|
||||
- Vcpkg (build from master \<653912591>)
|
||||
- Yarn 1.22.17
|
||||
- Vcpkg (build from master \<0cf5b4305>)
|
||||
- Yarn 1.22.18
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -50,120 +47,122 @@
|
||||
|
||||
### Project Management
|
||||
- Ant 1.10.7
|
||||
- Gradle 7.3
|
||||
- Gradle 7.4.2
|
||||
- Lerna 4.0.0
|
||||
- Maven 3.8.4
|
||||
- Sbt 1.5.5
|
||||
- Maven 3.8.5
|
||||
- Sbt 1.6.2
|
||||
|
||||
### Tools
|
||||
- Ansible 2.11.6
|
||||
- apt-fast 1.9.11
|
||||
- AzCopy 10.13.0 (available by `azcopy` and `azcopy10` aliases)
|
||||
- Bazel 4.2.1
|
||||
- Bazelisk 1.10.1
|
||||
- Bicep 0.4.1008
|
||||
- Ansible 2.12.5
|
||||
- apt-fast 1.9.12
|
||||
- AzCopy 10.15.0 (available by `azcopy` and `azcopy10` aliases)
|
||||
- Bazel 5.1.1
|
||||
- Bazelisk 1.11.0
|
||||
- Bicep 0.6.18
|
||||
- Buildah 1.21.3 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable)
|
||||
- CMake 3.22.0
|
||||
- CodeQL Action Bundle 2.7.1
|
||||
- CMake 3.23.1
|
||||
- CodeQL Action Bundle 2.9.1
|
||||
- Docker Compose v1 1.29.2
|
||||
- Docker Compose v2 2.1.1+azure-1
|
||||
- Docker-Buildx 0.7.0
|
||||
- Docker-Moby Client 20.10.11+azure-1
|
||||
- Docker-Moby Server 20.10.11+azure-1
|
||||
- Fastlane 2.198.1
|
||||
- Git 2.34.0 (apt source repository: ppa:git-core/ppa)
|
||||
- Git LFS 2.13.3 (apt source repository: https://packagecloud.io/install/repositories/github/git-lfs)
|
||||
- Docker Compose v2 2.4.1+azure-1
|
||||
- Docker-Buildx 0.8.2
|
||||
- Docker-Moby Client 20.10.15+azure-1
|
||||
- Docker-Moby Server 20.10.15+azure-2
|
||||
- Fastlane 2.205.2
|
||||
- Git 2.36.1 (apt source repository: ppa:git-core/ppa)
|
||||
- Git LFS 3.1.4 (apt source repository: https://packagecloud.io/install/repositories/github/git-lfs)
|
||||
- Git-ftp 1.6.0
|
||||
- Haveged 1.9.1
|
||||
- Heroku 7.59.2
|
||||
- HHVM (HipHop VM) 4.136.0
|
||||
- Heroku 7.60.2
|
||||
- HHVM (HipHop VM) 4.160.0
|
||||
- jq 1.6
|
||||
- Kind 0.11.1
|
||||
- Kubectl 1.22.4
|
||||
- Kustomize 4.4.1
|
||||
- Kind 0.13.0
|
||||
- Kubectl 1.24.0
|
||||
- Kustomize 4.5.4
|
||||
- Leiningen 2.9.8
|
||||
- MediaInfo 19.09
|
||||
- Mercurial 5.3.1
|
||||
- Minikube 1.24.0
|
||||
- n 8.0.0
|
||||
- Newman 5.3.0
|
||||
- nvm 0.39.0
|
||||
- OpenSSL 1.1.1f 31 Mar 2020
|
||||
- Packer 1.7.8
|
||||
- Minikube 1.25.2
|
||||
- n 8.2.0
|
||||
- Newman 5.3.2
|
||||
- nvm 0.39.1
|
||||
- OpenSSL 1.1.1f-1ubuntu2.13
|
||||
- Packer 1.8.0
|
||||
- Parcel 2.5.0
|
||||
- PhantomJS 2.1.1
|
||||
- Podman 3.4.2 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable)
|
||||
- Pulumi 3.18.0
|
||||
- R 4.1.2
|
||||
- Pulumi 3.32.1
|
||||
- R 4.2.0
|
||||
- Skopeo 1.3.0 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable)
|
||||
- Sphinx Open Source Search Server 2.2.11
|
||||
- SVN 1.13.0
|
||||
- Terraform 1.0.11
|
||||
- Terraform 1.1.9
|
||||
- yamllint 1.26.3
|
||||
- yq 4.14.2
|
||||
- zstd 1.5.0 (homebrew)
|
||||
- yq 4.25.1
|
||||
- zstd 1.5.2 (homebrew)
|
||||
|
||||
### CLI Tools
|
||||
- Alibaba Cloud CLI 3.0.99
|
||||
- AWS CLI 2.4.0
|
||||
- AWS CLI Session manager plugin 1.2.279.0
|
||||
- AWS SAM CLI 1.35.0
|
||||
- Azure CLI (azure-cli) 2.30.0 (installation method: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt)
|
||||
- Azure CLI (azure-devops) 0.22.0
|
||||
- GitHub CLI 2.2.0
|
||||
- Google Cloud SDK 365.0.0 (apt source repository: https://packages.cloud.google.com/apt)
|
||||
- Alibaba Cloud CLI 3.0.119
|
||||
- AWS CLI 2.7.0
|
||||
- AWS CLI Session manager plugin 1.2.312.0
|
||||
- AWS SAM CLI 1.50.0
|
||||
- Azure CLI (azure-cli) 2.36.0 (installation method: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt)
|
||||
- Azure CLI (azure-devops) 0.25.0
|
||||
- GitHub CLI 2.10.1
|
||||
- Google Cloud SDK 369.0.0 (apt source repository: https://packages.cloud.google.com/apt)
|
||||
- Hub CLI 2.14.2
|
||||
- Netlify CLI 7.0.2
|
||||
- OpenShift CLI 4.9.7
|
||||
- Netlify CLI 10.3.1
|
||||
- OpenShift CLI 4.10.13
|
||||
- ORAS CLI 0.12.0
|
||||
- Vercel CLI 23.1.2
|
||||
- Vercel CLI 24.2.3
|
||||
|
||||
### Java
|
||||
| Version | Vendor | Environment Variable |
|
||||
| ------------------- | ------------- | -------------------- |
|
||||
| 8.0.292+1 | Adopt OpenJDK | JAVA_HOME_8_X64 |
|
||||
| 11.0.11+9 (default) | Adopt OpenJDK | JAVA_HOME_11_X64 |
|
||||
| Version | Vendor | Environment Variable |
|
||||
| -------------------- | --------------- | -------------------- |
|
||||
| 8.0.332+9 | Eclipse Temurin | JAVA_HOME_8_X64 |
|
||||
| 11.0.15+10 (default) | Eclipse Temurin | JAVA_HOME_11_X64 |
|
||||
| 17.0.3+7 | Eclipse Temurin | JAVA_HOME_17_X64 |
|
||||
|
||||
### GraalVM
|
||||
| Version | Environment variables |
|
||||
| --------- | --------------------- |
|
||||
| CE 21.3.0 | GRAALVM_11_ROOT |
|
||||
| CE 22.1.0 | GRAALVM_11_ROOT |
|
||||
|
||||
### PHP
|
||||
| Tool | Version |
|
||||
| -------- | ------------- |
|
||||
| PHP | 7.4.26 8.0.13 |
|
||||
| Composer | 2.1.12 |
|
||||
| PHPUnit | 8.5.21 |
|
||||
| Tool | Version |
|
||||
| -------- | ------------------- |
|
||||
| PHP | 7.4.29 8.0.18 8.1.5 |
|
||||
| Composer | 2.3.5 |
|
||||
| PHPUnit | 8.5.26 |
|
||||
```
|
||||
Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled.
|
||||
```
|
||||
### Haskell
|
||||
- Cabal 3.6.2.0
|
||||
- GHC 9.2.1
|
||||
- GHCup 0.1.17.4
|
||||
- Stack 2.7.3
|
||||
- GHC 9.2.2
|
||||
- GHCup 0.1.17.8
|
||||
- Stack 2.7.5
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.56.0
|
||||
- Rust 1.56.1
|
||||
- Rustdoc 1.56.1
|
||||
- Cargo 1.60.0
|
||||
- Rust 1.60.0
|
||||
- Rustdoc 1.60.0
|
||||
- Rustup 1.24.3
|
||||
|
||||
#### Packages
|
||||
- Bindgen 0.59.1
|
||||
- Bindgen 0.59.2
|
||||
- Cargo audit 0.16.0
|
||||
- Cargo clippy 0.1.56
|
||||
- Cargo outdated 0.10.2
|
||||
- Cbindgen 0.20.0
|
||||
- Rustfmt 1.4.37
|
||||
- Cargo clippy 0.1.60
|
||||
- Cargo outdated
|
||||
- Cbindgen 0.23.0
|
||||
- Rustfmt 1.4.38
|
||||
|
||||
### Browsers and Drivers
|
||||
- Google Chrome 96.0.4664.45
|
||||
- ChromeDriver 96.0.4664.45
|
||||
- Mozilla Firefox 94.0
|
||||
- Geckodriver 0.30.0
|
||||
- Chromium 96.0.4664.0
|
||||
- Selenium server 4.0.0
|
||||
- Google Chrome 101.0.4951.64
|
||||
- ChromeDriver 101.0.4951.41
|
||||
- Chromium 101.0.4951.0
|
||||
- Mozilla Firefox 100.0
|
||||
- Geckodriver 0.31.0
|
||||
- Selenium server 4.1.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -173,75 +172,86 @@
|
||||
| SELENIUM_JAR_PATH | /usr/share/java/selenium-server.jar |
|
||||
|
||||
### .NET Core SDK
|
||||
- 2.1.302 2.1.403 2.1.526 2.1.617 2.1.701 2.1.818 3.1.120 3.1.202 3.1.302 3.1.415 5.0.104 5.0.209 5.0.303 5.0.403
|
||||
- 3.1.120 3.1.202 3.1.302 3.1.419 5.0.104 5.0.214 5.0.303 5.0.408 6.0.300
|
||||
|
||||
### .NET tools
|
||||
- nbgv 3.5.104+d0b7c362ff
|
||||
|
||||
### Databases
|
||||
- MongoDB 5.0.4 (apt source repository: https://repo.mongodb.org/apt/ubuntu)
|
||||
- PostgreSQL 14.1 (apt source repository: https://apt.postgresql.org/pub/repos/apt/)
|
||||
- MongoDB 5.0.8 (apt source repository: https://repo.mongodb.org/apt/ubuntu)
|
||||
- sqlite3 3.31.1
|
||||
|
||||
#### PostgreSQL
|
||||
- PostgreSQL 14.3 (apt source repository: https://apt.postgresql.org/pub/repos/apt/)
|
||||
- PostgreSQL Server (user:postgres)
|
||||
|
||||
```
|
||||
PostgreSQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start postgresql.service'
|
||||
```
|
||||
#### MySQL
|
||||
- MySQL 8.0.27
|
||||
- MySQL 8.0.29-0ubuntu0.20.04.3
|
||||
- MySQL Server (user:root password:root)
|
||||
|
||||
```
|
||||
MySQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start mysql.service'
|
||||
```
|
||||
#### MS SQL Server Client Tools
|
||||
- sqlcmd 17.8.0001.1
|
||||
- SqlPackage 15.0.5282.3
|
||||
- sqlcmd 17.9.0001.1
|
||||
- SqlPackage 16.0.5400.1
|
||||
|
||||
### Cached Tools
|
||||
#### Go
|
||||
- 1.15.15
|
||||
- 1.16.10
|
||||
- 1.17.3
|
||||
- 1.16.15
|
||||
- 1.17.10
|
||||
- 1.18.2
|
||||
|
||||
#### Node.js
|
||||
- 12.22.7
|
||||
- 14.18.1
|
||||
- 16.13.0
|
||||
- 12.22.12
|
||||
- 14.19.2
|
||||
- 16.15.0
|
||||
|
||||
#### PyPy
|
||||
- 2.7.18 [PyPy 7.3.6]
|
||||
- 2.7.18 [PyPy 7.3.9]
|
||||
- 3.6.12 [PyPy 7.3.3]
|
||||
- 3.7.12 [PyPy 7.3.7]
|
||||
- 3.8.12 [PyPy 7.3.7]
|
||||
- 3.7.13 [PyPy 7.3.9]
|
||||
- 3.8.13 [PyPy 7.3.9]
|
||||
- 3.9.12 [PyPy 7.3.9]
|
||||
|
||||
#### Python
|
||||
- 2.7.18
|
||||
- 3.5.10
|
||||
- 3.6.15
|
||||
- 3.7.12
|
||||
- 3.7.13
|
||||
- 3.8.12
|
||||
- 3.9.9
|
||||
- 3.10.0
|
||||
- 3.9.12
|
||||
- 3.10.4
|
||||
|
||||
#### Ruby
|
||||
- 2.5.9
|
||||
- 2.6.8
|
||||
- 2.7.4
|
||||
- 3.0.2
|
||||
- 2.6.10
|
||||
- 2.7.6
|
||||
- 3.0.4
|
||||
- 3.1.2
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value | Architecture |
|
||||
| --------------- | ----------------------------------- | ------------ |
|
||||
| GOROOT_1_15_X64 | /opt/hostedtoolcache/go/1.15.15/x64 | x64 |
|
||||
| GOROOT_1_16_X64 | /opt/hostedtoolcache/go/1.16.10/x64 | x64 |
|
||||
| GOROOT_1_17_X64 | /opt/hostedtoolcache/go/1.17.3/x64 | x64 |
|
||||
| GOROOT_1_16_X64 | /opt/hostedtoolcache/go/1.16.15/x64 | x64 |
|
||||
| GOROOT_1_17_X64 | /opt/hostedtoolcache/go/1.17.10/x64 | x64 |
|
||||
| GOROOT_1_18_X64 | /opt/hostedtoolcache/go/1.18.2/x64 | x64 |
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.2.0
|
||||
- PowerShell 7.2.3
|
||||
|
||||
#### PowerShell Modules
|
||||
| Module | Version |
|
||||
| ---------------- | ------- |
|
||||
| MarkdownPS | 1.9 |
|
||||
| Pester | 5.3.1 |
|
||||
| Microsoft.Graph | 1.9.6 |
|
||||
| Pester | 5.3.3 |
|
||||
| PSScriptAnalyzer | 1.20.0 |
|
||||
|
||||
#### Az PowerShell Modules
|
||||
- 6.4.0 3.1.0.zip 4.4.0.zip 5.9.0.zip
|
||||
- 7.3.2 3.1.0.zip 4.4.0.zip 5.9.0.zip 6.6.0.zip
|
||||
|
||||
### Web Servers
|
||||
| Name | Version | ConfigFile | ServiceStatus | ListenPort |
|
||||
@@ -251,20 +261,20 @@
|
||||
| nginx | 1.18.0 | /etc/nginx/nginx.conf | inactive | 80 |
|
||||
|
||||
### Android
|
||||
| Package Name | Version |
|
||||
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 4.0 |
|
||||
| Android Emulator | 30.9.5 |
|
||||
| Android SDK Build-tools | 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 Platform-Tools | 31.0.3 |
|
||||
| Android SDK Platforms | 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 Tools | 26.1.1 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.10.2<br>3.18.1 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 21.4.7075529 (default)<br>22.1.7171670<br>23.1.7779620 |
|
||||
| SDK Patch Applier v4 | 1 |
|
||||
| Package Name | Version |
|
||||
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 4.0 |
|
||||
| Android Emulator | 31.2.10 |
|
||||
| Android SDK Build-tools | 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 Platform-Tools | 33.0.1 |
|
||||
| Android SDK Platforms | 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 Tools | 26.1.1 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.10.2<br>3.18.1 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 21.4.7075529 (default)<br>22.1.7171670<br>23.1.7779620 |
|
||||
| SDK Patch Applier v4 | 1 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -278,40 +288,42 @@
|
||||
### Cached Docker images
|
||||
| Repository:Tag | Digest | Created |
|
||||
| ----------------------- | ------------------------------------------------------------------------ | ---------- |
|
||||
| alpine:3.12 | sha256:d9459083f962de6bd980ae6a05be2a4cf670df6a1d898157bceb420342bec280 | 2021-11-12 |
|
||||
| alpine:3.13 | sha256:026f721af4cf2843e07bba648e158fb35ecc876d822130633cc49f707f0fc88c | 2021-11-12 |
|
||||
| alpine:3.14 | sha256:635f0aa53d99017b38d1a0aa5b2082f7812b03e3cdb299103fe77b5c8a07f1d2 | 2021-11-12 |
|
||||
| buildpack-deps:bullseye | sha256:b83c9c8628517694fc9adea2dc25f70113f511606482c79e1a7689ba4893f7c4 | 2021-11-17 |
|
||||
| buildpack-deps:buster | sha256:184194bf02563c474132a6982ed5878ef32b19b9f2a10029422ab304ca88ade1 | 2021-11-17 |
|
||||
| buildpack-deps:stretch | sha256:36fba449401e28a20c9fc9ebae94b4071c0a69bab5aade3340539ac9c857375a | 2021-11-17 |
|
||||
| debian:10 | sha256:e5333f8697a86fa1be53b2a7e994247083f61885166df0cdda9f812acb514d7c | 2021-11-17 |
|
||||
| debian:11 | sha256:e8c184b56a94db0947a9d51ec68f42ef5584442f20547fa3bd8cbd00203b2e7a | 2021-11-17 |
|
||||
| debian:9 | sha256:d8ee86bf0afeb901de293c692a540307a670306cbdb7a06e2c840f17b0c35374 | 2021-11-17 |
|
||||
| moby/buildkit:latest | sha256:d6c89b7085b106301645ddcc77cf64eb7b705ab507b72d52d130ac33f1300417 | 2021-11-18 |
|
||||
| node:12 | sha256:cb615135757e6e2eed4fad6d80f07b13d9f35072700c01da6de26fde5c9e8632 | 2021-11-17 |
|
||||
| node:12-alpine | sha256:0eca266c5fe38ba93aebac00e45c9ac1bb7328b0702a6dc10e1a6ea543d49301 | 2021-11-13 |
|
||||
| node:14 | sha256:fbd6954d3941ebd1e12cd995dc10a4994535aa44d47271a91a829a2d1f88fc4c | 2021-11-17 |
|
||||
| node:14-alpine | sha256:240e1e6ef6dfba3bb70d6e88cca6cbb0b5a6f3a2b4496ed7edc5474e8ed594bd | 2021-11-13 |
|
||||
| node:16 | sha256:580a0850049c59a48f06090edd48c9f966c5e6572bbbabc369ba3ecbc4855dba | 2021-11-17 |
|
||||
| node:16-alpine | sha256:60ef0bed1dc2ec835cfe3c4226d074fdfaba571fd619c280474cc04e93f0ec5b | 2021-11-13 |
|
||||
| ubuntu:16.04 | sha256:0f71fa8d4d2d4292c3c617fda2b36f6dabe5c8b6e34c3dc5b0d17d4e704bd39c | 2021-08-31 |
|
||||
| ubuntu:18.04 | sha256:0fedbd5bd9fb72089c7bbca476949e10593cebed9b1fb9edf5b79dbbacddd7d6 | 2021-10-01 |
|
||||
| ubuntu:20.04 | sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322 | 2021-10-16 |
|
||||
| alpine:3.12 | sha256:c75ac27b49326926b803b9ed43bf088bc220d22556de1bc5f72d742c91398f69 | 2022-04-05 |
|
||||
| alpine:3.13 | sha256:ccf92aa53bc6c3b25be2ad0cce80baec1778f007f7e076b0ffbd1b225d0b3a9b | 2022-04-05 |
|
||||
| alpine:3.14 | sha256:06b5d462c92fc39303e6363c65e074559f8d6b1363250027ed5053557e3398c5 | 2022-04-05 |
|
||||
| buildpack-deps:bullseye | sha256:f4369ea9e313fc97029c736d68a9ea705d14fd1884a70be33aae25196d59288b | 2022-05-11 |
|
||||
| buildpack-deps:buster | sha256:3485150b7bd19da1e2ddbf567ee47c5ebd1ed62d55a334ff363a718057d713c3 | 2022-05-11 |
|
||||
| buildpack-deps:stretch | sha256:1929159d9dfd9fc9cc8f6fb0c8414452ec4613b824e152b87e24de9a6e3b5879 | 2022-05-11 |
|
||||
| debian:10 | sha256:405f48fbb359190809bd91aac79c3f6c346c1e79878c839351c6a817db5e9fc4 | 2022-05-11 |
|
||||
| debian:11 | sha256:6137c67e2009e881526386c42ba99b3657e4f92f546814a33d35b14e60579777 | 2022-05-11 |
|
||||
| debian:9 | sha256:3487fb8dc9312f88dd4aa03364c15d98a998c5c7c3453f0469002f9d593916f6 | 2022-05-11 |
|
||||
| moby/buildkit:latest | sha256:0dc312b04eac1b44cd2cad566deb1e886c753109208affbbec8384f381ff7f38 | 2022-05-06 |
|
||||
| node:12 | sha256:01627afeb110b3054ba4a1405541ca095c8bfca1cb6f2be9479c767a2711879e | 2022-04-20 |
|
||||
| node:12-alpine | sha256:d4b15b3d48f42059a15bd659be60afe21762aae9d6cbea6f124440895c27db68 | 2022-04-11 |
|
||||
| node:14 | sha256:61168c39af89331ffaa6ba41c2a44f4d5132a857a6034175f994948b5798b588 | 2022-05-11 |
|
||||
| node:14-alpine | sha256:8845b4f88f64f8c56a39236648ba22946e806a6153c10911f77b70e5a2edb4ca | 2022-04-05 |
|
||||
| node:16 | sha256:1817bb941c9a30fe2a6d75ff8675a8f6def408efe3d3ff43dbb006e2b534fa14 | 2022-05-11 |
|
||||
| node:16-alpine | sha256:1a9a71ea86aad332aa7740316d4111ee1bd4e890df47d3b5eff3e5bded3b3d10 | 2022-04-27 |
|
||||
| ubuntu:16.04 | sha256:20858ebbc96215d6c3c574f781133ebffdc7c18d98af4f294cc4c04871a6fe61 | 2021-08-31 |
|
||||
| ubuntu:18.04 | sha256:d21b6ba9e19feffa328cb3864316e6918e30acfd55e285b5d3df1d8ca3c7fd3f | 2022-04-29 |
|
||||
| ubuntu:20.04 | sha256:47f14534bda344d9fe6ffd6effb95eefe579f4be0d508b7445cf77f61a0e5724 | 2022-04-29 |
|
||||
|
||||
### Installed apt packages
|
||||
| Name | Version |
|
||||
| ---------------------- | --------------------------------- |
|
||||
| acl | 2.2.53-6 |
|
||||
| aria2 | 1.35.0-1build1 |
|
||||
| autoconf | 2.69-11.1 |
|
||||
| automake | 1:1.16.1-4ubuntu6 |
|
||||
| binutils | 2.34-6ubuntu1.3 |
|
||||
| bison | 2:3.5.1+dfsg-1 |
|
||||
| brotli | 1.0.7-6ubuntu0.1 |
|
||||
| build-essential | 12.8ubuntu1.1 |
|
||||
| bzip2 | 1.0.8-2 |
|
||||
| coreutils | 8.30-3ubuntu2 |
|
||||
| curl | 7.68.0-1ubuntu2.7 |
|
||||
| dbus | 1.12.16-2ubuntu2.1 |
|
||||
| dnsutils | 1:9.16.1-0ubuntu2.9 |
|
||||
| curl | 7.68.0-1ubuntu2.11 |
|
||||
| dbus | 1.12.16-2ubuntu2.2 |
|
||||
| dnsutils | 1:9.16.1-0ubuntu2.10 |
|
||||
| dpkg | 1.19.7ubuntu3 |
|
||||
| fakeroot | 1.24-1 |
|
||||
| file | 1:5.38-4 |
|
||||
@@ -324,29 +336,30 @@
|
||||
| iproute2 | 5.5.0-1ubuntu1 |
|
||||
| iputils-ping | 3:20190709-3 |
|
||||
| jq | 1.6-1ubuntu0.20.04.1 |
|
||||
| lib32z1 | 1:1.2.11.dfsg-2ubuntu1.2 |
|
||||
| lib32z1 | 1:1.2.11.dfsg-2ubuntu1.3 |
|
||||
| libc++-dev | 1:10.0-50\~exp1 |
|
||||
| libc++abi-dev | 1:10.0-50\~exp1 |
|
||||
| libcurl4 | 7.68.0-1ubuntu2.7 |
|
||||
| libgbm-dev | 21.0.3-0ubuntu0.3\~20.04.4 |
|
||||
| libcurl4 | 7.68.0-1ubuntu2.11 |
|
||||
| libgbm-dev | 21.2.6-0ubuntu0.1\~20.04.2 |
|
||||
| libgconf-2-4 | 3.2.6-6ubuntu1 |
|
||||
| libgsl-dev | 2.5+dfsg-6build1 |
|
||||
| libgtk-3-0 | 3.24.20-0ubuntu1 |
|
||||
| libgtk-3-0 | 3.24.20-0ubuntu1.1 |
|
||||
| libmagic-dev | 1:5.38-4 |
|
||||
| libmagickcore-dev | 8:6.9.10.23+dfsg-2.1ubuntu11.4 |
|
||||
| libmagickwand-dev | 8:6.9.10.23+dfsg-2.1ubuntu11.4 |
|
||||
| libsecret-1-dev | 0.20.4-0ubuntu1 |
|
||||
| libsqlite3-dev | 3.31.1-4ubuntu0.2 |
|
||||
| libsqlite3-dev | 3.31.1-4ubuntu0.3 |
|
||||
| libtool | 2.4.6-14 |
|
||||
| libunwind8 | 1.2.1-9build1 |
|
||||
| libxkbfile-dev | 1:1.1.0-1 |
|
||||
| libxss1 | 1:1.2.3-1 |
|
||||
| locales | 2.31-0ubuntu9.2 |
|
||||
| locales | 2.31-0ubuntu9.9 |
|
||||
| m4 | 1.4.18-4 |
|
||||
| mediainfo | 19.09-1build1 |
|
||||
| mercurial | 5.3.1-1ubuntu1 |
|
||||
| net-tools | 1.60+git20180626.aebd88e-1ubuntu1 |
|
||||
| netcat | 1.206-1ubuntu1 |
|
||||
| openssh-client | 1:8.2p1-4ubuntu0.3 |
|
||||
| openssh-client | 1:8.2p1-4ubuntu0.5 |
|
||||
| p7zip-full | 16.02+dfsg-7build1 |
|
||||
| p7zip-rar | 16.02-3build1 |
|
||||
| parallel | 20161222-1.1 |
|
||||
@@ -356,26 +369,26 @@
|
||||
| pollinate | 4.33-3ubuntu1.20.04.1 |
|
||||
| python-is-python3 | 3.8.2-4 |
|
||||
| rpm | 4.14.2.1+dfsg1-1build2 |
|
||||
| rsync | 3.1.3-8ubuntu0.1 |
|
||||
| rsync | 3.1.3-8ubuntu0.3 |
|
||||
| shellcheck | 0.7.0-2build2 |
|
||||
| sphinxsearch | 2.2.11-2ubuntu2 |
|
||||
| sqlite3 | 3.31.1-4ubuntu0.2 |
|
||||
| ssh | 1:8.2p1-4ubuntu0.3 |
|
||||
| sqlite3 | 3.31.1-4ubuntu0.3 |
|
||||
| ssh | 1:8.2p1-4ubuntu0.5 |
|
||||
| sshpass | 1.06-1 |
|
||||
| subversion | 1.13.0-3 |
|
||||
| subversion | 1.13.0-3ubuntu0.1 |
|
||||
| sudo | 1.8.31-1ubuntu1.2 |
|
||||
| swig | 4.0.1-5build1 |
|
||||
| telnet | 0.17-41.2build1 |
|
||||
| texinfo | 6.7.0.dfsg.2-5 |
|
||||
| time | 1.7-25.1build1 |
|
||||
| tk | 8.6.9+1 |
|
||||
| tzdata | 2021e-0ubuntu0.20.04 |
|
||||
| tzdata | 2022a-0ubuntu0.20.04 |
|
||||
| unzip | 6.0-25ubuntu1 |
|
||||
| upx | 3.95-2build1 |
|
||||
| wget | 1.20.3-1ubuntu1 |
|
||||
| wget | 1.20.3-1ubuntu2 |
|
||||
| xorriso | 1.5.2-1 |
|
||||
| xvfb | 2:1.20.11-1ubuntu1\~20.04.2 |
|
||||
| xz-utils | 5.2.4-1ubuntu1 |
|
||||
| xvfb | 2:1.20.13-1ubuntu1\~20.04.2 |
|
||||
| xz-utils | 5.2.4-1ubuntu1.1 |
|
||||
| zip | 3.0-11build1 |
|
||||
| zsync | 0.6.2-3ubuntu1 |
|
||||
|
||||
@@ -0,0 +1,328 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[Ubuntu] Container tools (buildah, podman, skopeo) will be removed from Ubuntu 18 & 20 images](https://github.com/actions/virtual-environments/issues/5578) |
|
||||
| [(Public Beta) Ubuntu 22.04 is now available](https://github.com/actions/virtual-environments/issues/5490) |
|
||||
***
|
||||
# Ubuntu 22.04 LTS
|
||||
- Linux kernel version: 5.15.0-1005-azure
|
||||
- Image Version: 20220522.1
|
||||
|
||||
## Installed Software
|
||||
### Language and Runtime
|
||||
- Bash 5.1.16(1)-release
|
||||
- Clang 11.1.0, 12.0.1
|
||||
- Clang-format 11.1.0, 12.0.1
|
||||
- GNU C++ 9.4.0, 10.3.0, 11.2.0
|
||||
- GNU Fortran 9.4.0, 10.3.0, 11.2.0
|
||||
- Julia 1.7.2
|
||||
- Node 16.15.0
|
||||
- Perl 5.34.0
|
||||
- Python 3.10.4
|
||||
- Python3 3.10.4
|
||||
- Ruby 3.0.2p107
|
||||
|
||||
### Package Management
|
||||
- cpan 1.64
|
||||
- Helm 3.9.0
|
||||
- Homebrew 3.4.11
|
||||
- Miniconda 4.12.0
|
||||
- Npm 8.5.5
|
||||
- Pip 22.0.2
|
||||
- Pip3 22.0.2
|
||||
- Pipx 1.0.0
|
||||
- RubyGems 3.3.5
|
||||
- Vcpkg (build from master \<314018fef>)
|
||||
- Yarn 1.22.18
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| ----------------------- | ---------------------- |
|
||||
| CONDA | /usr/share/miniconda |
|
||||
| VCPKG_INSTALLATION_ROOT | /usr/local/share/vcpkg |
|
||||
|
||||
### Project Management
|
||||
- Lerna 4.0.0
|
||||
|
||||
### Tools
|
||||
- Ansible 2.12.5
|
||||
- apt-fast 1.9.12
|
||||
- AzCopy 10.15.0 (available by `azcopy` and `azcopy10` aliases)
|
||||
- Bazel 5.1.1
|
||||
- Bazelisk 1.11.0
|
||||
- Bicep 0.6.18
|
||||
- Buildah 1.23.1
|
||||
- CMake 3.23.1
|
||||
- CodeQL Action Bundle 2.9.2
|
||||
- Docker Amazon ECR Credential Helper 0.6.0
|
||||
- Docker Compose v1 1.29.2
|
||||
- Docker Compose v2 2.4.1+azure-1
|
||||
- Docker-Buildx 0.8.2
|
||||
- Docker-Moby Client 20.10.15+azure-1
|
||||
- Docker-Moby Server 20.10.16+azure-2
|
||||
- Fastlane 2.206.1
|
||||
- Git 2.36.1 (apt source repository: ppa:git-core/ppa)
|
||||
- Git LFS 3.1.4 (apt source repository: https://packagecloud.io/install/repositories/github/git-lfs)
|
||||
- Git-ftp 1.6.0
|
||||
- Haveged 1.9.14
|
||||
- Heroku 7.60.2
|
||||
- jq 1.6
|
||||
- Kind 0.14.0
|
||||
- Kubectl 1.24.0
|
||||
- Kustomize 4.5.5
|
||||
- MediaInfo 21.09
|
||||
- Mercurial 6.1.1
|
||||
- Minikube 1.25.2
|
||||
- n 8.2.0
|
||||
- Newman 5.3.2
|
||||
- nvm 0.39.1
|
||||
- OpenSSL 3.0.2-0ubuntu1.2
|
||||
- Packer 1.8.0
|
||||
- Parcel 2.5.0
|
||||
- Podman 3.4.4
|
||||
- Pulumi 3.33.1
|
||||
- R 4.2.0
|
||||
- Skopeo 1.4.1
|
||||
- Sphinx Open Source Search Server 2.2.11
|
||||
- SVN 1.14.1
|
||||
- Terraform 1.2.0
|
||||
- yamllint 1.26.3
|
||||
- yq 4.25.1
|
||||
- zstd 1.5.2 (homebrew)
|
||||
|
||||
### CLI Tools
|
||||
- Alibaba Cloud CLI 3.0.120
|
||||
- AWS CLI 2.7.2
|
||||
- AWS CLI Session manager plugin 1.2.323.0
|
||||
- AWS SAM CLI 1.50.0
|
||||
- Azure CLI (azure-cli) 2.36.0 (installation method: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt)
|
||||
- Azure CLI (azure-devops) 0.25.0
|
||||
- GitHub CLI 2.10.1
|
||||
- Google Cloud SDK 369.0.0 (apt source repository: https://packages.cloud.google.com/apt)
|
||||
- Hub CLI 2.14.2
|
||||
- Netlify CLI 10.3.1
|
||||
- OpenShift CLI 4.10.14
|
||||
- ORAS CLI 0.12.0
|
||||
- Vercel CLI 24.2.4
|
||||
|
||||
### GraalVM
|
||||
| Version | Environment variables |
|
||||
| --------- | --------------------- |
|
||||
| CE 22.1.0 | GRAALVM_11_ROOT |
|
||||
|
||||
### PHP
|
||||
| Tool | Version |
|
||||
| -------- | ------- |
|
||||
| PHP | 8.1.6 |
|
||||
| Composer | 2.3.5 |
|
||||
| PHPUnit | 8.5.26 |
|
||||
```
|
||||
Both Xdebug and PCOV extensions are installed, but only Xdebug is enabled.
|
||||
```
|
||||
### Haskell
|
||||
- Cabal 3.6.2.0
|
||||
- GHC 9.2.2
|
||||
- GHCup 0.1.17.8
|
||||
- Stack 2.7.5
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.61.0
|
||||
- Rust 1.61.0
|
||||
- Rustdoc 1.61.0
|
||||
- Rustup 1.24.3
|
||||
|
||||
#### Packages
|
||||
- Bindgen 0.59.2
|
||||
- Cargo audit 0.16.0
|
||||
- Cargo clippy 0.1.61
|
||||
- Cargo outdated 0.11.1
|
||||
- Cbindgen 0.23.0
|
||||
- Rustfmt 1.4.38
|
||||
|
||||
### Browsers and Drivers
|
||||
- Google Chrome 101.0.4951.64
|
||||
- ChromeDriver 101.0.4951.41
|
||||
- Chromium 101.0.4951.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| ----------------- | ------------------------------ |
|
||||
| CHROMEWEBDRIVER | /usr/local/share/chrome_driver |
|
||||
| GECKOWEBDRIVER | |
|
||||
| SELENIUM_JAR_PATH | |
|
||||
|
||||
### .NET Core SDK
|
||||
- 6.0.300
|
||||
|
||||
### .NET tools
|
||||
- nbgv 3.5.107+6463ef6068
|
||||
|
||||
### Databases
|
||||
- sqlite3 3.37.2
|
||||
|
||||
#### PostgreSQL
|
||||
- PostgreSQL 14.3 (apt source repository: https://apt.postgresql.org/pub/repos/apt/)
|
||||
- PostgreSQL Server (user:postgres)
|
||||
|
||||
```
|
||||
PostgreSQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start postgresql.service'
|
||||
```
|
||||
#### MySQL
|
||||
- MySQL 8.0.29-0ubuntu0.22.04.2
|
||||
- MySQL Server (user:root password:root)
|
||||
|
||||
```
|
||||
MySQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start mysql.service'
|
||||
```
|
||||
### Cached Tools
|
||||
#### Go
|
||||
- 1.17.10
|
||||
- 1.18.2
|
||||
|
||||
#### Node.js
|
||||
- 14.19.3
|
||||
- 16.15.0
|
||||
|
||||
#### PyPy
|
||||
- 3.7.13 [PyPy 7.3.9]
|
||||
- 3.8.13 [PyPy 7.3.9]
|
||||
- 3.9.12 [PyPy 7.3.9]
|
||||
|
||||
#### Python
|
||||
- 3.7.13
|
||||
- 3.8.12
|
||||
- 3.9.13
|
||||
- 3.10.4
|
||||
|
||||
#### Ruby
|
||||
- 3.1.2
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value | Architecture |
|
||||
| --------------- | ----------------------------------- | ------------ |
|
||||
| GOROOT_1_17_X64 | /opt/hostedtoolcache/go/1.17.10/x64 | x64 |
|
||||
| GOROOT_1_18_X64 | /opt/hostedtoolcache/go/1.18.2/x64 | x64 |
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.2.4
|
||||
|
||||
#### PowerShell Modules
|
||||
| Module | Version |
|
||||
| ---------------- | ------- |
|
||||
| MarkdownPS | 1.9 |
|
||||
| Microsoft.Graph | 1.9.6 |
|
||||
| Pester | 5.3.3 |
|
||||
| PSScriptAnalyzer | 1.20.0 |
|
||||
|
||||
#### Az PowerShell Modules
|
||||
- 7.3.2
|
||||
|
||||
### Web Servers
|
||||
| Name | Version | ConfigFile | ServiceStatus | ListenPort |
|
||||
| ------- | ------- | ------------------------- | ------------- | ---------- |
|
||||
| apache2 | 2.4.52 | /etc/apache2/apache2.conf | inactive | 80 |
|
||||
| nginx | 1.18.0 | /etc/nginx/nginx.conf | inactive | 80 |
|
||||
|
||||
### Cached Docker images
|
||||
| Repository:Tag | Digest | Created |
|
||||
| ----------------------- | ------------------------------------------------------------------------ | ---------- |
|
||||
| alpine:3.14 | sha256:06b5d462c92fc39303e6363c65e074559f8d6b1363250027ed5053557e3398c5 | 2022-04-05 |
|
||||
| alpine:3.15 | sha256:4edbd2beb5f78b1014028f4fbb99f3237d9561100b6881aabbf5acce2c4f9454 | 2022-04-05 |
|
||||
| buildpack-deps:bullseye | sha256:f4369ea9e313fc97029c736d68a9ea705d14fd1884a70be33aae25196d59288b | 2022-05-11 |
|
||||
| buildpack-deps:buster | sha256:3485150b7bd19da1e2ddbf567ee47c5ebd1ed62d55a334ff363a718057d713c3 | 2022-05-11 |
|
||||
| debian:10 | sha256:405f48fbb359190809bd91aac79c3f6c346c1e79878c839351c6a817db5e9fc4 | 2022-05-11 |
|
||||
| debian:11 | sha256:6137c67e2009e881526386c42ba99b3657e4f92f546814a33d35b14e60579777 | 2022-05-11 |
|
||||
| moby/buildkit:latest | sha256:0dc312b04eac1b44cd2cad566deb1e886c753109208affbbec8384f381ff7f38 | 2022-05-06 |
|
||||
| node:14 | sha256:42353ba2f129758dd5df19c6bcc3107d519436585467b231883b07f21336a484 | 2022-05-18 |
|
||||
| node:14-alpine | sha256:c9b8829068199346e2a9ae46f870bbb82ce44de6580321300bf3945d00dee0f1 | 2022-05-18 |
|
||||
| node:16 | sha256:1817bb941c9a30fe2a6d75ff8675a8f6def408efe3d3ff43dbb006e2b534fa14 | 2022-05-11 |
|
||||
| node:16-alpine | sha256:1a9a71ea86aad332aa7740316d4111ee1bd4e890df47d3b5eff3e5bded3b3d10 | 2022-04-27 |
|
||||
| ubuntu:18.04 | sha256:d21b6ba9e19feffa328cb3864316e6918e30acfd55e285b5d3df1d8ca3c7fd3f | 2022-04-29 |
|
||||
| ubuntu:20.04 | sha256:47f14534bda344d9fe6ffd6effb95eefe579f4be0d508b7445cf77f61a0e5724 | 2022-04-29 |
|
||||
| ubuntu:22.04 | sha256:26c68657ccce2cb0a31b330cb0be2b5e108d467f641c62e13ab40cbec258c68d | 2022-04-29 |
|
||||
|
||||
### Installed apt packages
|
||||
| Name | Version |
|
||||
| ---------------------- | --------------------------------- |
|
||||
| acl | 2.3.1-1 |
|
||||
| aria2 | 1.36.0-1 |
|
||||
| autoconf | 2.71-2 |
|
||||
| automake | 1:1.16.5-1.3 |
|
||||
| binutils | 2.38-3ubuntu1 |
|
||||
| bison | 2:3.8.2+dfsg-1build1 |
|
||||
| brotli | 1.0.9-2build6 |
|
||||
| build-essential | 12.9ubuntu3 |
|
||||
| bzip2 | 1.0.8-5build1 |
|
||||
| coreutils | 8.32-4.1ubuntu1 |
|
||||
| curl | 7.81.0-1ubuntu1.2 |
|
||||
| dbus | 1.12.20-2ubuntu4 |
|
||||
| dnsutils | 1:9.18.1-1ubuntu1.1 |
|
||||
| dpkg | 1.21.1ubuntu2 |
|
||||
| fakeroot | 1.28-1ubuntu1 |
|
||||
| file | 1:5.41-3 |
|
||||
| flex | 2.6.4-8build2 |
|
||||
| fonts-noto-color-emoji | 2.034-1 |
|
||||
| ftp | 20210827-4build1 |
|
||||
| gnupg2 | 2.2.27-3ubuntu2 |
|
||||
| haveged | 1.9.14-1ubuntu1 |
|
||||
| imagemagick | 8:6.9.11.60+dfsg-1.3build2 |
|
||||
| iproute2 | 5.15.0-1ubuntu2 |
|
||||
| iputils-ping | 3:20211215-1 |
|
||||
| jq | 1.6-2.1ubuntu3 |
|
||||
| lib32z1 | 1:1.2.11.dfsg-2ubuntu9 |
|
||||
| libc++-dev | 1:14.0-55\~exp2 |
|
||||
| libc++abi-dev | 1:14.0-55\~exp2 |
|
||||
| libcurl4 | 7.81.0-1ubuntu1.2 |
|
||||
| libgbm-dev | 22.0.1-1ubuntu2 |
|
||||
| libgconf-2-4 | 3.2.6-7ubuntu2 |
|
||||
| libgsl-dev | 2.7.1+dfsg-3 |
|
||||
| libgtk-3-0 | 3.24.33-1ubuntu1 |
|
||||
| libmagic-dev | 1:5.41-3 |
|
||||
| libmagickcore-dev | 8:6.9.11.60+dfsg-1.3build2 |
|
||||
| libmagickwand-dev | 8:6.9.11.60+dfsg-1.3build2 |
|
||||
| libsecret-1-dev | 0.20.5-2 |
|
||||
| libsqlite3-dev | 3.37.2-2 |
|
||||
| libssl-dev | 3.0.2-0ubuntu1.2 |
|
||||
| libtool | 2.4.6-15build2 |
|
||||
| libunwind8 | 1.3.2-2build2 |
|
||||
| libxkbfile-dev | 1:1.1.0-1build3 |
|
||||
| libxss1 | 1:1.2.3-1build2 |
|
||||
| locales | 2.35-0ubuntu3 |
|
||||
| m4 | 1.4.18-5ubuntu2 |
|
||||
| mediainfo | 22.03-1 |
|
||||
| mercurial | 6.1.1-1ubuntu1 |
|
||||
| net-tools | 1.60+git20181103.0eebece-1ubuntu5 |
|
||||
| netcat | 1.218-4ubuntu1 |
|
||||
| openssh-client | 1:8.9p1-3 |
|
||||
| p7zip-full | 16.02+dfsg-8 |
|
||||
| p7zip-rar | 16.02-3build1 |
|
||||
| parallel | 20210822+ds-2 |
|
||||
| pass | 1.7.4-5 |
|
||||
| patchelf | 0.14.3-1 |
|
||||
| pkg-config | 0.29.2-1ubuntu3 |
|
||||
| pollinate | 4.33-3ubuntu2 |
|
||||
| python-is-python3 | 3.9.2-2 |
|
||||
| rpm | 4.17.0+dfsg1-4build1 |
|
||||
| rsync | 3.2.3-8ubuntu3 |
|
||||
| shellcheck | 0.8.0-2 |
|
||||
| sphinxsearch | 2.2.11-8 |
|
||||
| sqlite3 | 3.37.2-2 |
|
||||
| ssh | 1:8.9p1-3 |
|
||||
| sshpass | 1.09-1 |
|
||||
| subversion | 1.14.1-3build4 |
|
||||
| sudo | 1.9.9-1ubuntu2 |
|
||||
| swig | 4.0.2-1ubuntu1 |
|
||||
| telnet | 0.17-44build1 |
|
||||
| texinfo | 6.8-4build1 |
|
||||
| time | 1.9-0.1build2 |
|
||||
| tk | 8.6.11+1build2 |
|
||||
| tzdata | 2022a-0ubuntu1 |
|
||||
| unzip | 6.0-26ubuntu3 |
|
||||
| upx | 3.96-3 |
|
||||
| wget | 1.21.2-2ubuntu1 |
|
||||
| xorriso | 1.5.4-2 |
|
||||
| xvfb | 2:21.1.3-2ubuntu2 |
|
||||
| xz-utils | 5.2.5-2ubuntu1 |
|
||||
| zip | 3.0-12build2 |
|
||||
| zsync | 0.6.2-3ubuntu1 |
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# Name of pool supported by this image
|
||||
POOL_NAME="Ubuntu 2204"
|
||||
@@ -1,18 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Fix permissions for Homebrew
|
||||
# https://github.com/actions/virtual-environments/issues/1568
|
||||
|
||||
# Reset brew repository directory to make the brew clean after chmoding /home
|
||||
cd $(brew --repo)
|
||||
git reset --hard
|
||||
|
||||
brew_folder="/home/linuxbrew/"
|
||||
homebrew_user=$(cut -d: -f1 /etc/passwd | tail -1)
|
||||
|
||||
if [ -d "$brew_folder" ]; then
|
||||
brew_folder_owner=$(ls -ld $brew_folder | awk '{print $3}')
|
||||
if [ "$homebrew_user" != "$brew_folder_owner" ]; then
|
||||
chown "$homebrew_user":docker -R $brew_folder
|
||||
fi
|
||||
fi
|
||||
@@ -83,7 +83,7 @@ function Get-NodeVersion {
|
||||
}
|
||||
|
||||
function Get-OpensslVersion {
|
||||
return $(openssl version)
|
||||
return "OpenSSL $(dpkg-query -W -f '${Version}' openssl)"
|
||||
}
|
||||
|
||||
function Get-PerlVersion {
|
||||
@@ -140,7 +140,7 @@ function Get-HomebrewVersion {
|
||||
}
|
||||
|
||||
function Get-CpanVersion {
|
||||
$result = Get-CommandResult "cpan --version"
|
||||
$result = Get-CommandResult "cpan --version" -ExpectExitCode @(25, 255)
|
||||
$result.Output -match "version (?<version>\d+\.\d+) " | Out-Null
|
||||
$cpanVersion = $Matches.version
|
||||
return "cpan $cpanVersion"
|
||||
@@ -174,6 +174,11 @@ function Get-YarnVersion {
|
||||
return "Yarn $yarnVersion"
|
||||
}
|
||||
|
||||
function Get-ParcelVersion {
|
||||
$parcelVersion = parcel --version
|
||||
return "Parcel $parcelVersion"
|
||||
}
|
||||
|
||||
function Get-PipVersion {
|
||||
$result = Get-CommandResult "pip --version"
|
||||
$result.Output -match "pip (?<version>\d+\.\d+\.\d+)" | Out-Null
|
||||
@@ -231,8 +236,8 @@ function Get-PHPVersions {
|
||||
}
|
||||
|
||||
function Get-ComposerVersion {
|
||||
$(composer --version) -match "Composer version (?<version>\d+\.\d+\.\d+)\s" | Out-Null
|
||||
return $Matches.version
|
||||
$composerVersion = (composer --version) -replace " version" | Take-OutputPart -Part 1
|
||||
return $composerVersion
|
||||
}
|
||||
|
||||
function Get-PHPUnitVersion {
|
||||
@@ -326,6 +331,20 @@ function Get-DotNetCoreSdkVersions {
|
||||
return $dotNetCoreSdkVersion
|
||||
}
|
||||
|
||||
function Get-DotnetTools {
|
||||
$env:PATH = "/etc/skel/.dotnet/tools:$($env:PATH)"
|
||||
|
||||
$dotnetTools = (Get-ToolsetContent).dotnet.tools
|
||||
|
||||
$toolsList = @()
|
||||
|
||||
ForEach ($dotnetTool in $dotnetTools) {
|
||||
$toolsList += $dotnetTool.name + " " + (Invoke-Expression $dotnetTool.getversion)
|
||||
}
|
||||
|
||||
return $toolsList
|
||||
}
|
||||
|
||||
function Get-CachedDockerImages {
|
||||
$toolsetJson = Get-ToolsetContent
|
||||
$images = $toolsetJson.docker.images
|
||||
|
||||
@@ -16,7 +16,10 @@ function Get-SqliteVersion {
|
||||
}
|
||||
|
||||
function Get-MySQLVersion {
|
||||
$mySQLVersion = mysqld --version | Take-OutputPart -Part 2 | Take-OutputPart -Part 0 -Delimiter "-"
|
||||
$mySQLVersion = mysqld --version | Take-OutputPart -Part 2
|
||||
if (Test-IsUbuntu18) {
|
||||
$mySQLVersion = $mySQLVersion | Take-OutputPart -Part 0 -Delimiter "-"
|
||||
}
|
||||
return "MySQL $mySQLVersion"
|
||||
}
|
||||
|
||||
@@ -30,6 +33,21 @@ function Get-SqlPackageVersion {
|
||||
return "SqlPackage $sqlPackageVersion"
|
||||
}
|
||||
|
||||
function Build-PostgreSqlSection {
|
||||
$output = ""
|
||||
|
||||
$output += New-MDHeader "PostgreSQL" -Level 4
|
||||
$output += New-MDList -Style Unordered -Lines @(
|
||||
(Get-PostgreSqlVersion ),
|
||||
"PostgreSQL Server (user:postgres)"
|
||||
)
|
||||
$output += New-MDCode -Lines @(
|
||||
"PostgreSQL service is disabled by default. Use the following command as a part of your job to start the service: 'sudo systemctl start postgresql.service'"
|
||||
)
|
||||
|
||||
return $output
|
||||
}
|
||||
|
||||
function Build-MySQLSection {
|
||||
$output = ""
|
||||
|
||||
|
||||
@@ -3,7 +3,9 @@ param (
|
||||
$OutputDirectory
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$global:ErrorActionPreference = "Stop"
|
||||
$global:ErrorView = "NormalView"
|
||||
Set-StrictMode -Version Latest
|
||||
|
||||
Import-Module MarkdownPS
|
||||
Import-Module (Join-Path $PSScriptRoot "SoftwareReport.Android.psm1") -DisableNameChecking
|
||||
@@ -36,41 +38,46 @@ $markdown += New-MDHeader "Installed Software" -Level 2
|
||||
$markdown += New-MDHeader "Language and Runtime" -Level 3
|
||||
|
||||
$runtimesList = @(
|
||||
(Get-BashVersion),
|
||||
(Get-CPPVersions),
|
||||
(Get-FortranVersions),
|
||||
(Get-BashVersion),
|
||||
(Get-CPPVersions),
|
||||
(Get-FortranVersions),
|
||||
(Get-NodeVersion),
|
||||
(Get-PerlVersion),
|
||||
(Get-PythonVersion),
|
||||
(Get-Python3Version),
|
||||
(Get-RubyVersion),
|
||||
(Get-JuliaVersion),
|
||||
(Get-ClangVersions),
|
||||
(Get-ClangFormatVersions)
|
||||
)
|
||||
|
||||
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
|
||||
$runtimesList += @(
|
||||
(Get-MsbuildVersion),
|
||||
(Get-KotlinVersion),
|
||||
(Get-MonoVersion),
|
||||
(Get-ErlangVersion),
|
||||
(Get-ErlangRebar3Version),
|
||||
(Get-MonoVersion),
|
||||
(Get-MsbuildVersion),
|
||||
(Get-NodeVersion),
|
||||
(Get-PerlVersion),
|
||||
(Get-PythonVersion),
|
||||
(Get-Python3Version),
|
||||
(Get-RubyVersion),
|
||||
(Get-SwiftVersion),
|
||||
(Get-JuliaVersion),
|
||||
(Get-KotlinVersion),
|
||||
(Get-ClangVersions),
|
||||
(Get-ClangFormatVersions)
|
||||
)
|
||||
(Get-SwiftVersion)
|
||||
)
|
||||
}
|
||||
|
||||
$markdown += New-MDList -Style Unordered -Lines ($runtimesList | Sort-Object)
|
||||
|
||||
$markdown += New-MDHeader "Package Management" -Level 3
|
||||
|
||||
$packageManagementList = @(
|
||||
(Get-HomebrewVersion),
|
||||
(Get-CpanVersion),
|
||||
(Get-GemVersion),
|
||||
(Get-MinicondaVersion),
|
||||
(Get-HelmVersion),
|
||||
(Get-NpmVersion),
|
||||
(Get-YarnVersion),
|
||||
(Get-PipxVersion),
|
||||
(Get-PipVersion),
|
||||
(Get-Pip3Version),
|
||||
(Get-VcpkgVersion)
|
||||
(Get-HomebrewVersion),
|
||||
(Get-CpanVersion),
|
||||
(Get-GemVersion),
|
||||
(Get-MinicondaVersion),
|
||||
(Get-HelmVersion),
|
||||
(Get-NpmVersion),
|
||||
(Get-YarnVersion),
|
||||
(Get-PipxVersion),
|
||||
(Get-PipVersion),
|
||||
(Get-Pip3Version),
|
||||
(Get-VcpkgVersion)
|
||||
)
|
||||
|
||||
$markdown += New-MDList -Style Unordered -Lines ($packageManagementList | Sort-Object)
|
||||
@@ -79,14 +86,17 @@ $markdown += Build-PackageManagementEnvironmentTable | New-MDTable
|
||||
$markdown += New-MDNewLine
|
||||
|
||||
$markdown += New-MDHeader "Project Management" -Level 3
|
||||
$projectManagementList = @(
|
||||
(Get-AntVersion),
|
||||
(Get-GradleVersion),
|
||||
(Get-MavenVersion),
|
||||
(Get-SbtVersion)
|
||||
)
|
||||
$projectManagementList = @()
|
||||
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
|
||||
$projectManagementList += @(
|
||||
(Get-AntVersion),
|
||||
(Get-GradleVersion),
|
||||
(Get-MavenVersion),
|
||||
(Get-SbtVersion)
|
||||
)
|
||||
}
|
||||
|
||||
if (Test-IsUbuntu20) {
|
||||
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
|
||||
$projectManagementList += @(
|
||||
(Get-LernaVersion)
|
||||
)
|
||||
@@ -101,7 +111,6 @@ $toolsList = @(
|
||||
(Get-BazelVersion),
|
||||
(Get-BazeliskVersion),
|
||||
(Get-BicepVersion),
|
||||
(Get-BuildahVersion),
|
||||
(Get-CodeQLBundleVersion),
|
||||
(Get-CMakeVersion),
|
||||
(Get-DockerMobyClientVersion),
|
||||
@@ -109,19 +118,18 @@ $toolsList = @(
|
||||
(Get-DockerComposeV1Version),
|
||||
(Get-DockerComposeV2Version),
|
||||
(Get-DockerBuildxVersion),
|
||||
(Get-DockerAmazonECRCredHelperVersion),
|
||||
(Get-GitVersion),
|
||||
(Get-GitLFSVersion),
|
||||
(Get-GitFTPVersion),
|
||||
(Get-HavegedVersion),
|
||||
(Get-HerokuVersion),
|
||||
(Get-HHVMVersion),
|
||||
(Get-SVNVersion),
|
||||
(Get-JqVersion),
|
||||
(Get-YqVersion),
|
||||
(Get-KindVersion),
|
||||
(Get-KubectlVersion),
|
||||
(Get-KustomizeVersion),
|
||||
(Get-LeiningenVersion),
|
||||
(Get-MediainfoVersion),
|
||||
(Get-HGVersion),
|
||||
(Get-MinikubeVersion),
|
||||
@@ -130,18 +138,31 @@ $toolsList = @(
|
||||
(Get-NvmVersion),
|
||||
(Get-OpensslVersion),
|
||||
(Get-PackerVersion),
|
||||
(Get-PhantomJSVersion),
|
||||
(Get-PodManVersion),
|
||||
(Get-ParcelVersion),
|
||||
(Get-PulumiVersion),
|
||||
(Get-RVersion),
|
||||
(Get-SkopeoVersion),
|
||||
(Get-SphinxVersion),
|
||||
(Get-TerraformVersion),
|
||||
(Get-YamllintVersion),
|
||||
(Get-ZstdVersion)
|
||||
)
|
||||
|
||||
if (Test-IsUbuntu20) {
|
||||
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
|
||||
$toolsList += @(
|
||||
(Get-PhantomJSVersion),
|
||||
(Get-LeiningenVersion),
|
||||
(Get-HHVMVersion)
|
||||
)
|
||||
}
|
||||
if (Test-IsUbuntu22) {
|
||||
$toolsList += @(
|
||||
(Get-BuildahVersion),
|
||||
(Get-PodManVersion),
|
||||
(Get-SkopeoVersion)
|
||||
)
|
||||
}
|
||||
|
||||
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
|
||||
$toolsList += (Get-FastlaneVersion)
|
||||
}
|
||||
|
||||
@@ -165,11 +186,13 @@ $markdown += New-MDList -Style Unordered -Lines (@(
|
||||
) | Sort-Object
|
||||
)
|
||||
|
||||
$markdown += New-MDHeader "Java" -Level 3
|
||||
$markdown += Get-JavaVersions | New-MDTable
|
||||
$markdown += New-MDNewLine
|
||||
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
|
||||
$markdown += New-MDHeader "Java" -Level 3
|
||||
$markdown += Get-JavaVersions | New-MDTable
|
||||
$markdown += New-MDNewLine
|
||||
}
|
||||
|
||||
if (Test-IsUbuntu20) {
|
||||
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
|
||||
$markdown += New-MDHeader "GraalVM" -Level 3
|
||||
$markdown += Build-GraalVMTable | New-MDTable
|
||||
$markdown += New-MDNewLine
|
||||
@@ -211,12 +234,17 @@ $markdown += New-MDHeader "Browsers and Drivers" -Level 3
|
||||
$browsersAndDriversList = @(
|
||||
(Get-ChromeVersion),
|
||||
(Get-ChromeDriverVersion),
|
||||
(Get-FirefoxVersion),
|
||||
(Get-GeckodriverVersion),
|
||||
(Get-ChromiumVersion),
|
||||
(Get-SeleniumVersion)
|
||||
(Get-ChromiumVersion)
|
||||
)
|
||||
|
||||
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
|
||||
$browsersAndDriversList += @(
|
||||
(Get-FirefoxVersion),
|
||||
(Get-GeckodriverVersion),
|
||||
(Get-SeleniumVersion)
|
||||
)
|
||||
}
|
||||
|
||||
$markdown += New-MDList -Style Unordered -Lines $browsersAndDriversList
|
||||
$markdown += New-MDHeader "Environment variables" -Level 4
|
||||
$markdown += Build-BrowserWebdriversEnvironmentTable | New-MDTable
|
||||
@@ -227,16 +255,28 @@ $markdown += New-MDList -Style Unordered -Lines @(
|
||||
(Get-DotNetCoreSdkVersions)
|
||||
)
|
||||
|
||||
$markdown += New-MDHeader ".NET tools" -Level 3
|
||||
$tools = Get-DotnetTools
|
||||
$markdown += New-MDList -Lines $tools -Style Unordered
|
||||
|
||||
$markdown += New-MDHeader "Databases" -Level 3
|
||||
$markdown += New-MDList -Style Unordered -Lines (@(
|
||||
(Get-PostgreSqlVersion),
|
||||
(Get-MongoDbVersion),
|
||||
$databaseLists = @(
|
||||
(Get-SqliteVersion)
|
||||
) | Sort-Object
|
||||
)
|
||||
|
||||
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
|
||||
$databaseLists += @(
|
||||
(Get-MongoDbVersion)
|
||||
)
|
||||
}
|
||||
|
||||
$markdown += New-MDList -Style Unordered -Lines ( $databaseLists | Sort-Object )
|
||||
|
||||
$markdown += Build-PostgreSqlSection
|
||||
$markdown += Build-MySQLSection
|
||||
$markdown += Build-MSSQLToolsSection
|
||||
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
|
||||
$markdown += Build-MSSQLToolsSection
|
||||
}
|
||||
|
||||
$markdown += New-MDHeader "Cached Tools" -Level 3
|
||||
$markdown += Build-CachedToolsSection
|
||||
@@ -258,12 +298,14 @@ $markdown += New-MDList -Style Unordered -Lines @(
|
||||
|
||||
$markdown += Build-WebServersSection
|
||||
|
||||
$markdown += New-MDHeader "Android" -Level 3
|
||||
$markdown += Build-AndroidTable | New-MDTable
|
||||
$markdown += New-MDNewLine
|
||||
$markdown += New-MDHeader "Environment variables" -Level 4
|
||||
$markdown += Build-AndroidEnvironmentTable | New-MDTable
|
||||
$markdown += New-MDNewLine
|
||||
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
|
||||
$markdown += New-MDHeader "Android" -Level 3
|
||||
$markdown += Build-AndroidTable | New-MDTable
|
||||
$markdown += New-MDNewLine
|
||||
$markdown += New-MDHeader "Environment variables" -Level 4
|
||||
$markdown += Build-AndroidEnvironmentTable | New-MDTable
|
||||
$markdown += New-MDNewLine
|
||||
}
|
||||
|
||||
$markdown += New-MDHeader "Cached Docker images" -Level 3
|
||||
$markdown += Get-CachedDockerImagesTableData | New-MDTable
|
||||
@@ -272,4 +314,5 @@ $markdown += New-MDNewLine
|
||||
$markdown += New-MDHeader "Installed apt packages" -Level 3
|
||||
$markdown += Get-AptPackages | New-MDTable
|
||||
|
||||
Test-BlankElement
|
||||
$markdown | Out-File -FilePath "${OutputDirectory}/Ubuntu-Readme.md"
|
||||
|
||||
@@ -1,19 +1,22 @@
|
||||
function Get-JavaVersions {
|
||||
$toolcachePath = Join-Path $env:AGENT_TOOLSDIRECTORY "Java_Adopt_jdk"
|
||||
$javaToolcacheVersions = Get-ChildItem $toolcachePath -Name | Sort-Object { [int]$_.Split(".")[0] }
|
||||
$javaToolcacheVersions = Get-ChildItem $env:AGENT_TOOLSDIRECTORY/Java*/* -Directory | Sort-Object { [int]$_.Name.Split(".")[0] }
|
||||
|
||||
return $javaToolcacheVersions | ForEach-Object {
|
||||
$majorVersion = $_.split(".")[0]
|
||||
$fullVersion = $_.Replace("-", "+")
|
||||
$existingVersions = $javaToolcacheVersions | ForEach-Object {
|
||||
$majorVersion = $_.Name.split(".")[0]
|
||||
$fullVersion = $_.Name.Replace("-", "+")
|
||||
$defaultJavaPath = $env:JAVA_HOME
|
||||
$javaPath = Get-Item env:JAVA_HOME_${majorVersion}_X64
|
||||
|
||||
$defaultPostfix = ($javaPath.Value -eq $defaultJavaPath) ? " (default)" : ""
|
||||
$vendorName = ($_.FullName -like '*Java_Adopt_jdk*') ? "Adopt OpenJDK" : "Eclipse Temurin"
|
||||
|
||||
[PSCustomObject] @{
|
||||
"Version" = $fullVersion + $defaultPostfix
|
||||
"Vendor" = "Adopt OpenJDK"
|
||||
"Vendor" = $vendorName
|
||||
"Environment Variable" = $javaPath.Name
|
||||
}
|
||||
}
|
||||
}
|
||||
# Return all the vendors which are not Adopt, also look for version 12 of Adopt (Eclipse Temurin does not have this version)
|
||||
$versionsToReturn = $existingVersions | Where-Object {$_.Vendor -notlike "Adopt*" -or $_.Version.Split(".")[0] -eq 12}
|
||||
return $versionsToReturn
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ function Get-CargoAuditVersion {
|
||||
}
|
||||
|
||||
function Get-CargoOutdatedVersion {
|
||||
$cargoOutdatedVersion = $(cargo outdated --version) | Take-OutputPart -Part 1 -Delimiter "v"
|
||||
$cargoOutdatedVersion = cargo outdated --version | Take-OutputPart -Part 1
|
||||
return "Cargo outdated $cargoOutdatedVersion"
|
||||
}
|
||||
|
||||
|
||||
@@ -42,20 +42,17 @@ function Get-CodeQLBundleVersion {
|
||||
|
||||
function Get-PodManVersion {
|
||||
$podmanVersion = podman --version | Take-OutputPart -Part 2
|
||||
$aptSourceRepo = Get-AptSourceRepository -PackageName "containers"
|
||||
return "Podman $podmanVersion (apt source repository: $aptSourceRepo)"
|
||||
return "Podman $podmanVersion"
|
||||
}
|
||||
|
||||
function Get-BuildahVersion {
|
||||
$buildahVersion = buildah --version | Take-OutputPart -Part 2
|
||||
$aptSourceRepo = Get-AptSourceRepository -PackageName "containers"
|
||||
return "Buildah $buildahVersion (apt source repository: $aptSourceRepo)"
|
||||
return "Buildah $buildahVersion"
|
||||
}
|
||||
|
||||
function Get-SkopeoVersion {
|
||||
$skopeoVersion = skopeo --version | Take-OutputPart -Part 2
|
||||
$aptSourceRepo = Get-AptSourceRepository -PackageName "containers"
|
||||
return "Skopeo $skopeoVersion (apt source repository: $aptSourceRepo)"
|
||||
return "Skopeo $skopeoVersion"
|
||||
}
|
||||
|
||||
function Get-CMakeVersion {
|
||||
@@ -88,9 +85,13 @@ function Get-DockerBuildxVersion {
|
||||
return "Docker-Buildx $buildxVersion"
|
||||
}
|
||||
|
||||
function Get-DockerAmazonECRCredHelperVersion {
|
||||
$ecrVersion = docker-credential-ecr-login -v | Select-String "Version:" | Take-OutputPart -Part 1
|
||||
return "Docker Amazon ECR Credential Helper $ecrVersion"
|
||||
}
|
||||
|
||||
function Get-GitVersion {
|
||||
$result = Get-CommandResult "git --version"
|
||||
$gitVersion = $result.Output | Take-OutputPart -Part 2
|
||||
$gitVersion = git --version | Take-OutputPart -Part -1
|
||||
$aptSourceRepo = Get-AptSourceRepository -PackageName "git-core"
|
||||
return "Git $gitVersion (apt source repository: $aptSourceRepo)"
|
||||
}
|
||||
@@ -143,7 +144,7 @@ function Get-KindVersion {
|
||||
}
|
||||
|
||||
function Get-KubectlVersion {
|
||||
$kubectlVersion = kubectl version --client --short | Take-OutputPart -Part 2 | Take-OutputPart -Part 0 -Delimiter "v"
|
||||
$kubectlVersion = (kubectl version --client --output=json | ConvertFrom-Json).clientVersion.gitVersion.Replace('v','')
|
||||
return "Kubectl $kubectlVersion"
|
||||
}
|
||||
|
||||
@@ -182,7 +183,7 @@ function Get-NvmVersion {
|
||||
|
||||
function Get-PackerVersion {
|
||||
# Packer 1.7.1 has a bug and outputs version to stderr instead of stdout https://github.com/hashicorp/packer/issues/10855
|
||||
$result = (Get-CommandResult -Command "packer --version").Output
|
||||
$result = (Get-CommandResult "packer --version").Output
|
||||
$packerVersion = [regex]::matches($result, "(\d+.){2}\d+").Value
|
||||
return "Packer $packerVersion"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash -e
|
||||
# https://github.com/hashicorp/packer/issues/11656
|
||||
echo PubkeyAcceptedKeyTypes=+ssh-rsa >> /etc/ssh/sshd_config
|
||||
systemctl reload sshd.service
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
# Put snapd auto refresh on hold
|
||||
# as it may generate too much traffic on Canonical's snap server
|
||||
# when they are rolling a new major update out.
|
||||
# Hold is calculated as today's date + 60 days
|
||||
|
||||
# snapd is started automatically, but during image generation
|
||||
# a unix socket may die, restart snapd.service (and therefore snapd.socket)
|
||||
# to make sure the socket is alive.
|
||||
|
||||
systemctl restart snapd.socket
|
||||
systemctl restart snapd
|
||||
snap set system refresh.hold="$(date --date='today+60 days' +%Y-%m-%dT%H:%M:%S%:z)"
|
||||
@@ -2,11 +2,27 @@ function Get-CommandResult {
|
||||
param (
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string] $Command,
|
||||
[switch] $Multiline
|
||||
[int[]] $ExpectExitCode = 0,
|
||||
[switch] $Multiline,
|
||||
[bool] $ValidateExitCode = $true
|
||||
)
|
||||
|
||||
# Bash trick to suppress and show error output because some commands write to stderr (for example, "python --version")
|
||||
$stdout = & bash -c "$Command 2>&1"
|
||||
$exitCode = $LASTEXITCODE
|
||||
|
||||
if ($ValidateExitCode) {
|
||||
if ($ExpectExitCode -notcontains $exitCode) {
|
||||
try {
|
||||
throw "StdOut: '$stdout' ExitCode: '$exitCode'"
|
||||
} catch {
|
||||
Write-Host $_.Exception.Message
|
||||
Write-Host $_.ScriptStackTrace
|
||||
exit $LASTEXITCODE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return @{
|
||||
Output = If ($Multiline -eq $true) { $stdout } else { [string]$stdout }
|
||||
ExitCode = $exitCode
|
||||
@@ -30,6 +46,10 @@ function Test-IsUbuntu20 {
|
||||
return (lsb_release -rs) -eq "20.04"
|
||||
}
|
||||
|
||||
function Test-IsUbuntu22 {
|
||||
return (lsb_release -rs) -eq "22.04"
|
||||
}
|
||||
|
||||
function Get-ToolsetContent {
|
||||
$toolset = Join-Path $env:INSTALLER_SCRIPT_FOLDER "toolset.json"
|
||||
Get-Content $toolset -Raw | ConvertFrom-Json
|
||||
@@ -53,7 +73,7 @@ function Get-ToolsetValue {
|
||||
|
||||
function Get-AndroidPackages {
|
||||
$androidSDKManagerPath = "/usr/local/lib/android/sdk/cmdline-tools/latest/bin/sdkmanager"
|
||||
$androidPackages = & $androidSDKManagerPath --list --verbose
|
||||
$androidPackages = & $androidSDKManagerPath --list --verbose 2>&1
|
||||
return $androidPackages
|
||||
}
|
||||
|
||||
|
||||
@@ -110,3 +110,49 @@ function Get-AptSourceRepository {
|
||||
return $sourceUrl
|
||||
}
|
||||
|
||||
function Test-BlankElement {
|
||||
param(
|
||||
[string] $Markdown
|
||||
)
|
||||
|
||||
$splitByLines = $Markdown.Split("`n")
|
||||
# Validate entry without version
|
||||
$blankVersions = $splitByLines -match "^-" -notmatch "Image Version|MySQL Server|Vcpkg|\d\." | Out-String
|
||||
|
||||
# Validate tables with blank rows
|
||||
$blankRows = ""
|
||||
for($i = 0; $i -lt $splitByLines.Length; $i++) {
|
||||
$addRows= $false
|
||||
$table = @()
|
||||
if ($splitByLines[$i].StartsWith("#") -and $splitByLines[$i+1].StartsWith("|")) {
|
||||
$table += $splitByLines[$i,($i+1),($i+2)]
|
||||
$i += 3
|
||||
$current = $splitByLines[$i]
|
||||
while ($current.StartsWith("|")) {
|
||||
$isBlankRow = $current.Substring(1, $current.LastIndexOf("|") - 2).Split("|").Trim() -contains ""
|
||||
if ($isBlankRow) {
|
||||
$table += $current
|
||||
$addRows = $true
|
||||
}
|
||||
$current = $splitByLines[++$i]
|
||||
}
|
||||
if ($addRows) {
|
||||
$blankRows += $table | Out-String
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Display report
|
||||
$isReport = $false
|
||||
if ($blankVersions) {
|
||||
Write-Host "Software list with blank version:`n${blankVersions}"
|
||||
$isReport = $true
|
||||
}
|
||||
if ($blankRows) {
|
||||
Write-Host "Tables with blank rows:`n${blankRows}"
|
||||
$isReport = $true
|
||||
}
|
||||
if ($isReport) {
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,12 +44,12 @@ function Invoke-PesterTests {
|
||||
|
||||
function ShouldReturnZeroExitCode {
|
||||
Param(
|
||||
[String] $ActualValue,
|
||||
[string] $ActualValue,
|
||||
[switch] $Negate,
|
||||
[string] $Because # This parameter is unused but we need it to match Pester asserts signature
|
||||
)
|
||||
|
||||
$result = Get-CommandResult $ActualValue
|
||||
$result = Get-CommandResult $ActualValue -ValidateExitCode $false
|
||||
|
||||
[bool]$succeeded = $result.ExitCode -eq 0
|
||||
if ($Negate) { $succeeded = -not $succeeded }
|
||||
@@ -69,12 +69,12 @@ function ShouldReturnZeroExitCode {
|
||||
|
||||
function ShouldMatchCommandOutput {
|
||||
Param(
|
||||
[String] $ActualValue,
|
||||
[String] $RegularExpression,
|
||||
[string] $ActualValue,
|
||||
[string] $RegularExpression,
|
||||
[switch] $Negate
|
||||
)
|
||||
|
||||
$output = (Get-CommandResult $ActualValue).Output | Out-String
|
||||
$output = (Get-CommandResult $ActualValue -ValidateExitCode $false).Output | Out-String
|
||||
[bool] $succeeded = $output -cmatch $RegularExpression
|
||||
|
||||
if ($Negate) {
|
||||
|
||||
@@ -66,3 +66,22 @@ get_toolset_value() {
|
||||
local query=$1
|
||||
echo "$(jq -r "$query" $toolset_path)"
|
||||
}
|
||||
|
||||
get_github_package_download_url() {
|
||||
local REPO_ORG=$1
|
||||
local FILTER=$2
|
||||
local VERSION=$3
|
||||
local SEARCH_IN_COUNT="100"
|
||||
|
||||
json=$(curl -s "https://api.github.com/repos/${REPO_ORG}/releases?per_page=${SEARCH_IN_COUNT}")
|
||||
|
||||
if [ -n "$VERSION" ]; then
|
||||
tagName=$(echo $json | jq -r '.[] | select(.prerelease==false).tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]|beta" | egrep "\w*${VERSION}" | tail -1)
|
||||
else
|
||||
tagName=$(echo $json | jq -r '.[] | select(.prerelease==false).tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]|beta" | tail -1)
|
||||
fi
|
||||
|
||||
downloadUrl=$(echo $json | jq -r ".[] | select(.tag_name==\"${tagName}\").assets[].browser_download_url | select(${FILTER})" | head -n 1)
|
||||
|
||||
echo $downloadUrl
|
||||
}
|
||||
@@ -14,6 +14,11 @@ function isUbuntu20
|
||||
lsb_release -d | grep -q 'Ubuntu 20'
|
||||
}
|
||||
|
||||
function isUbuntu22
|
||||
{
|
||||
lsb_release -d | grep -q 'Ubuntu 22'
|
||||
}
|
||||
|
||||
function getOSVersionLabel
|
||||
{
|
||||
lsb_release -cs
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
# Install Alibaba Cloud CLI
|
||||
URL=$(curl -s https://api.github.com/repos/aliyun/aliyun-cli/releases/latest | jq -r '.assets[].browser_download_url | select(contains("aliyun-cli-linux") and endswith("amd64.tgz"))')
|
||||
download_with_retries $URL "/tmp"
|
||||
downloadUrl="https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz"
|
||||
download_with_retries $downloadUrl "/tmp"
|
||||
tar xzf /tmp/aliyun-cli-linux-*-amd64.tgz
|
||||
mv aliyun /usr/local/bin
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@ filter_components_by_version $minimumBuildToolVersion "${availableBuildTools[@]}
|
||||
echo "y" | $SDKMANAGER ${components[@]}
|
||||
|
||||
# Old skdmanager from sdk tools doesn't work with Java > 8, set version 8 explicitly
|
||||
if isUbuntu20; then
|
||||
if isUbuntu20 || isUbuntu22; then
|
||||
sed -i "2i export JAVA_HOME=${JAVA_HOME_8_X64}" ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager
|
||||
fi
|
||||
|
||||
|
||||
@@ -8,18 +8,16 @@
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
# Install the AWS CLI v1 Ubuntu18 and AWS CLI v2 on Ubuntu20
|
||||
if isUbuntu20 ; then
|
||||
download_with_retries "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" "/tmp" "awscliv2.zip"
|
||||
unzip -qq /tmp/awscliv2.zip -d /tmp
|
||||
/tmp/aws/install -i /usr/local/aws-cli -b /usr/local/bin
|
||||
fi
|
||||
|
||||
# Install the AWS CLI v1 Ubuntu18 and AWS CLI v2 on Ubuntu20, Ubuntu22
|
||||
# The installation should be run after python3 is installed as aws-cli V1 dropped python2 support
|
||||
if isUbuntu18 ; then
|
||||
download_with_retries "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" "/tmp" "awscli-bundle.zip"
|
||||
unzip -qq /tmp/awscli-bundle.zip -d /tmp
|
||||
python3 /tmp/awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
|
||||
else
|
||||
download_with_retries "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" "/tmp" "awscliv2.zip"
|
||||
unzip -qq /tmp/awscliv2.zip -d /tmp
|
||||
/tmp/aws/install -i /usr/local/aws-cli -b /usr/local/bin
|
||||
fi
|
||||
|
||||
download_with_retries "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" "/tmp" "session-manager-plugin.deb"
|
||||
|
||||
@@ -7,6 +7,7 @@ before=$(df / -Pm | awk 'NR==2{print $4}')
|
||||
# It removes everything but the lock file from /var/cache/apt/archives/ and /var/cache/apt/archives/partial
|
||||
apt-get clean
|
||||
rm -rf /tmp/*
|
||||
rm -rf /root/.cache
|
||||
|
||||
# journalctl
|
||||
if command -v journalctl; then
|
||||
|
||||
@@ -4,15 +4,16 @@
|
||||
## Desc: Installs CMake
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
# Test to see if the software in question is already installed, if not install it
|
||||
echo "Checking to see if the installer script has already been run"
|
||||
if command -v cmake; then
|
||||
echo "cmake is already installed"
|
||||
else
|
||||
json=$(curl -s "https://api.github.com/repos/Kitware/CMake/releases")
|
||||
latest_tag=$(echo $json | jq -r '.[] | select(.prerelease==false).tag_name' | sort --unique --version-sort | grep -v "rc" | tail -1)
|
||||
sh_url=$(echo $json | jq -r ".[] | select(.tag_name==\"${latest_tag}\").assets[].browser_download_url | select(endswith(\"inux-x86_64.sh\"))")
|
||||
curl -sL ${sh_url} -o cmakeinstall.sh \
|
||||
downloadUrl=$(get_github_package_download_url "Kitware/CMake" "endswith(\"inux-x86_64.sh\")")
|
||||
curl -sL ${downloadUrl} -o cmakeinstall.sh \
|
||||
&& chmod +x cmakeinstall.sh \
|
||||
&& ./cmakeinstall.sh --prefix=/usr/local --exclude-subdir \
|
||||
&& rm cmakeinstall.sh
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
# Retrieve the name of the CodeQL bundle preferred by the Action (in the format codeql-bundle-YYYYMMDD).
|
||||
codeql_bundle_name="$(curl -sSL https://raw.githubusercontent.com/github/codeql-action/main/src/defaults.json | jq -r .bundleVersion)"
|
||||
codeql_bundle_name="$(curl -sSL https://raw.githubusercontent.com/github/codeql-action/v1/src/defaults.json | jq -r .bundleVersion)"
|
||||
# Convert the bundle name to a version number (0.0.0-YYYYMMDD).
|
||||
codeql_bundle_version="0.0.0-${codeql_bundle_name##*-}"
|
||||
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
# Set ImageVersion and ImageOS env variables
|
||||
echo ImageVersion=$IMAGE_VERSION | tee -a /etc/environment
|
||||
echo ImageOS=$IMAGE_OS | tee -a /etc/environment
|
||||
@@ -31,4 +34,18 @@ echo 'vm.max_map_count=262144' | tee -a /etc/sysctl.conf
|
||||
|
||||
# Create symlink for tests running
|
||||
chmod +x $HELPER_SCRIPTS/invoke-tests.sh
|
||||
ln -s $HELPER_SCRIPTS/invoke-tests.sh /usr/local/bin/invoke_tests
|
||||
ln -s $HELPER_SCRIPTS/invoke-tests.sh /usr/local/bin/invoke_tests
|
||||
|
||||
# Disable motd updates metadata
|
||||
sed -i 's/ENABLED=1/ENABLED=0/g' /etc/default/motd-news
|
||||
|
||||
if [[ -f "/etc/fwupd/daemon.conf" ]]; then
|
||||
sed -i 's/UpdateMotd=true/UpdateMotd=false/g' /etc/fwupd/daemon.conf
|
||||
systemctl mask fwupd-refresh.timer
|
||||
fi
|
||||
|
||||
# Disable to load providers
|
||||
# https://github.com/microsoft/azure-pipelines-agent/issues/3834
|
||||
if isUbuntu22; then
|
||||
sed -i 's/openssl_conf = openssl_init/#openssl_conf = openssl_init/g' /etc/ssl/openssl.cnf
|
||||
fi
|
||||
|
||||
@@ -4,25 +4,11 @@
|
||||
## Desc: Installs container tools: podman, buildah and skopeo onto the image
|
||||
################################################################################
|
||||
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
install_packages=(podman buildah skopeo)
|
||||
REPO_URL="https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable"
|
||||
|
||||
# Install podman, buildah, scopeo container's tools (on Ubuntu20 these tools can be installed without adding new repository)
|
||||
source /etc/os-release
|
||||
sh -c "echo 'deb ${REPO_URL}/x${NAME}_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"
|
||||
wget -qnv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/x${NAME}_${VERSION_ID}/Release.key -O Release.key
|
||||
apt-key add Release.key
|
||||
apt-get update -qq
|
||||
# Install podman, buildah, scopeo container's tools
|
||||
apt-get -qq -y install ${install_packages[@]}
|
||||
mkdir -p /etc/containers
|
||||
echo -e "[registries.search]\nregistries = ['docker.io', 'quay.io']" | tee /etc/containers/registries.conf
|
||||
|
||||
# Remove source repo
|
||||
rm /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
|
||||
|
||||
# Document source repo
|
||||
echo "containers $REPO_URL" >> $HELPER_SCRIPTS/apt-sources.txt
|
||||
|
||||
invoke_tests "Tools" "Containers"
|
||||
|
||||
@@ -46,4 +46,10 @@ done
|
||||
# stored from earlier.
|
||||
docker logout
|
||||
|
||||
# Install amazon-ecr-credential-helper
|
||||
aws_latest_release_url="https://api.github.com/repos/awslabs/amazon-ecr-credential-helper/releases/latest"
|
||||
aws_helper_url=$(curl "${authString[@]}" -sL $aws_latest_release_url | jq -r '.body' | awk -F'[()]' '/linux-amd64/ {print $2}')
|
||||
download_with_retries "$aws_helper_url" "/usr/bin" docker-credential-ecr-login
|
||||
chmod +x /usr/bin/docker-credential-ecr-login
|
||||
|
||||
invoke_tests "Tools" "Docker"
|
||||
|
||||
@@ -11,6 +11,7 @@ source $HELPER_SCRIPTS/os.sh
|
||||
# Ubuntu 20 doesn't support EOL versions
|
||||
LATEST_DOTNET_PACKAGES=$(get_toolset_value '.dotnet.aptPackages[]')
|
||||
DOTNET_VERSIONS=$(get_toolset_value '.dotnet.versions[]')
|
||||
DOTNET_TOOLS=$(get_toolset_value '.dotnet.tools[].name')
|
||||
|
||||
# Disable telemetry
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
@@ -31,12 +32,16 @@ for version in ${DOTNET_VERSIONS[@]}; do
|
||||
release_url="https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/${version}/releases.json"
|
||||
download_with_retries "${release_url}" "." "${version}.json"
|
||||
releases=$(cat "./${version}.json")
|
||||
sdks=("${sdks[@]}" $(echo "${releases}" | jq '.releases[]' | jq '.sdk.version'))
|
||||
sdks=("${sdks[@]}" $(echo "${releases}" | jq '.releases[]' | jq '.sdks[]?' | jq '.version'))
|
||||
if [[ $version == "6.0" ]]; then
|
||||
sdks=("${sdks[@]}" $(echo "${releases}" | jq -r 'first(.releases[].sdks[]?.version | select(contains("preview") or contains("rc") | not))'))
|
||||
else
|
||||
sdks=("${sdks[@]}" $(echo "${releases}" | jq -r '.releases[].sdk.version | select(contains("preview") or contains("rc") | not)'))
|
||||
sdks=("${sdks[@]}" $(echo "${releases}" | jq -r '.releases[].sdks[]?.version | select(contains("preview") or contains("rc") | not)'))
|
||||
fi
|
||||
rm ./${version}.json
|
||||
done
|
||||
|
||||
sortedSdks=$(echo ${sdks[@]} | tr ' ' '\n' | grep -v preview | grep -v rc | grep -v display | cut -d\" -f2 | sort -r | uniq -w 5)
|
||||
sortedSdks=$(echo ${sdks[@]} | tr ' ' '\n' | sort -r | uniq -w 5)
|
||||
|
||||
extract_dotnet_sdk() {
|
||||
local ARCHIVE_NAME="$1"
|
||||
@@ -67,4 +72,10 @@ setEtcEnvironmentVariable DOTNET_NOLOGO 1
|
||||
setEtcEnvironmentVariable DOTNET_MULTILEVEL_LOOKUP 0
|
||||
prependEtcEnvironmentPath '$HOME/.dotnet/tools'
|
||||
|
||||
# install dotnet tools
|
||||
for dotnet_tool in ${DOTNET_TOOLS[@]}; do
|
||||
echo "Installing dotnet tool $dotnet_tool"
|
||||
dotnet tool install $dotnet_tool --tool-path '/etc/skel/.dotnet/tools'
|
||||
done
|
||||
|
||||
invoke_tests "DotnetSDK"
|
||||
|
||||
@@ -16,9 +16,7 @@ apt-get update
|
||||
apt-get install -y --no-install-recommends esl-erlang
|
||||
|
||||
# Install rebar3
|
||||
json=$(curl -sL "https://api.github.com/repos/erlang/rebar3/releases")
|
||||
rebar3Version=$(echo $json | jq -r '.[] | select(.tag_name | contains("-") | not).tag_name' | sort -V | tail -n1)
|
||||
rebar3DownloadUrl=$(echo $json | jq -r ".[] | select(.tag_name==\"$rebar3Version\").assets[].browser_download_url")
|
||||
rebar3DownloadUrl=$(get_github_package_download_url "erlang/rebar3" "endswith(\"rebar3\")")
|
||||
download_with_retries $rebar3DownloadUrl "/tmp"
|
||||
mv /tmp/rebar3 /usr/local/bin/rebar3
|
||||
chmod +x /usr/local/bin/rebar3
|
||||
|
||||
@@ -15,9 +15,9 @@ apt-get install -y firefox
|
||||
echo 'pref("intl.locale.requested","en_US");' >> "/usr/lib/firefox/browser/defaults/preferences/syspref.js"
|
||||
|
||||
# Download and unpack latest release of geckodriver
|
||||
URL=$(curl -s https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r '.assets[].browser_download_url | select(test("linux64.tar.gz$"))')
|
||||
echo "Downloading geckodriver $URL"
|
||||
download_with_retries "$URL" "/tmp" geckodriver.tar.gz
|
||||
downloadUrl=$(get_github_package_download_url "mozilla/geckodriver" "test(\"linux64.tar.gz$\")")
|
||||
echo "Downloading geckodriver $downloadUrl"
|
||||
download_with_retries "$downloadUrl" "/tmp" geckodriver.tar.gz
|
||||
|
||||
GECKODRIVER_DIR="/usr/local/share/gecko_driver"
|
||||
GECKODRIVER_BIN="$GECKODRIVER_DIR/geckodriver"
|
||||
|
||||
@@ -15,6 +15,11 @@ add-apt-repository $GIT_REPO -y
|
||||
apt-get update
|
||||
apt-get install git -y
|
||||
git --version
|
||||
# Git version 2.35.2 introduces security fix that breaks action\checkout https://github.com/actions/checkout/issues/760
|
||||
cat <<EOF >> /etc/gitconfig
|
||||
[safe]
|
||||
directory = *
|
||||
EOF
|
||||
|
||||
# Install git-lfs
|
||||
curl -s $GIT_LFS_REPO/script.deb.sh | bash
|
||||
@@ -34,13 +39,13 @@ echo "git-lfs $GIT_LFS_REPO" >> $HELPER_SCRIPTS/apt-sources.txt
|
||||
#Install hub
|
||||
tmp_hub="/tmp/hub"
|
||||
mkdir -p "$tmp_hub"
|
||||
url=$(curl -s https://api.github.com/repos/github/hub/releases/latest | jq -r '.assets[].browser_download_url | select(contains("hub-linux-amd64"))')
|
||||
download_with_retries "$url" "$tmp_hub"
|
||||
downloadUrl=$(get_github_package_download_url "github/hub" "contains(\"hub-linux-amd64\")")
|
||||
download_with_retries "$downloadUrl" "$tmp_hub"
|
||||
tar xzf "$tmp_hub"/hub-linux-amd64-*.tgz --strip-components 1 -C "$tmp_hub"
|
||||
mv "$tmp_hub"/bin/hub /usr/local/bin
|
||||
|
||||
# Add well-known SSH host keys to known_hosts
|
||||
ssh-keyscan -t rsa github.com >> /etc/ssh/ssh_known_hosts
|
||||
ssh-keyscan -t rsa,ecdsa,ed25519 github.com >> /etc/ssh/ssh_known_hosts
|
||||
ssh-keyscan -t rsa ssh.dev.azure.com >> /etc/ssh/ssh_known_hosts
|
||||
|
||||
invoke_tests "Tools" "Git"
|
||||
@@ -9,8 +9,8 @@
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
# Install GitHub CLI
|
||||
url=$(curl -s https://api.github.com/repos/cli/cli/releases/latest | jq -r '.assets[].browser_download_url|select(contains("linux") and contains("amd64") and contains(".deb"))')
|
||||
download_with_retries $url "/tmp"
|
||||
downloadUrl=$(get_github_package_download_url "cli/cli" "contains(\"linux\") and contains(\"amd64\") and contains(\".deb\")")
|
||||
download_with_retries $downloadUrl "/tmp"
|
||||
apt install /tmp/gh_*_linux_amd64.deb
|
||||
|
||||
invoke_tests "CLI.Tools" "GitHub CLI"
|
||||
|
||||
@@ -14,12 +14,22 @@ function GetChromiumRevision {
|
||||
URL="https://omahaproxy.appspot.com/deps.json?version=${CHROME_VERSION}"
|
||||
REVISION=$(curl -s $URL | jq -r '.chromium_base_position')
|
||||
|
||||
# Some Google Chrome versions are based on Chromium revisions for which a (usually very old) Chromium release with the same number exist. So far this has heppened with 4 digits long Chromium revisions (1060, 1086).
|
||||
# Use the previous Chromium release when this happens to avoid downloading and installing very old Chromium releases that would break image build because of incompatibilities.
|
||||
# First reported with: https://github.com/actions/virtual-environments/issues/5256
|
||||
if [ ${#REVISION} -eq 4 ]; then
|
||||
CURRENT_REVISIONS=$(curl -s "https://omahaproxy.appspot.com/all.json?os=linux&channel=stable")
|
||||
PREVIOUS_VERSION=$(echo "$CURRENT_REVISIONS" | jq -r '.[].versions[].previous_version')
|
||||
URL="https://omahaproxy.appspot.com/deps.json?version=${PREVIOUS_VERSION}"
|
||||
REVISION=$(curl -s $URL | jq -r '.chromium_base_position')
|
||||
fi
|
||||
# Take the first part of the revision variable to search not only for a specific version,
|
||||
# but also for similar ones, so that we can get a previous one if the required revision is not found
|
||||
FIRST_PART_OF_REVISION=${REVISION:0:${#REVISION}/2}
|
||||
FIRST_PART_OF_PREVIOUS_REVISION=$(expr $FIRST_PART_OF_REVISION - 1)
|
||||
URL="https://www.googleapis.com/storage/v1/b/chromium-browser-snapshots/o?delimiter=/&prefix=Linux_x64"
|
||||
VERSIONS=$((curl -s $URL/${FIRST_PART_OF_REVISION} | jq -r '.prefixes[]' && curl -s $URL/${FIRST_PART_OF_PREVIOUS_REVISION} | jq -r '.prefixes[]') | cut -d "/" -f 2 | sort --version-sort)
|
||||
# Revision can include a hash instead of a number. Need to filter it out https://github.com/actions/virtual-environments/issues/5256
|
||||
VERSIONS=$((curl -s $URL/${FIRST_PART_OF_REVISION} | jq -r '.prefixes[]' && curl -s $URL/${FIRST_PART_OF_PREVIOUS_REVISION} | jq -r '.prefixes[]') | grep -E "Linux_x64\/[0-9]+\/"| cut -d "/" -f 2 | sort --version-sort)
|
||||
|
||||
# If required Chromium revision is not found in the list
|
||||
# we should have to decrement the revision number until we find one.
|
||||
@@ -27,7 +37,7 @@ function GetChromiumRevision {
|
||||
# https://www.chromium.org/getting-involved/download-chromium
|
||||
RIGHT_REVISION=$(echo $VERSIONS | cut -f 1 -d " ")
|
||||
for version in $VERSIONS; do
|
||||
if [ $REVISION -lt $version ]; then
|
||||
if [ $REVISION -lt $version ]; then
|
||||
echo $RIGHT_REVISION
|
||||
return
|
||||
fi
|
||||
|
||||
@@ -10,7 +10,8 @@ REPO_URL="https://packages.cloud.google.com/apt"
|
||||
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] $REPO_URL cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
|
||||
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y google-cloud-sdk
|
||||
# temporary downgrade google-cloud-sdk as python component has linking bugs
|
||||
sudo apt-get install -y google-cloud-sdk=369.0.0-0
|
||||
|
||||
# remove apt
|
||||
rm /etc/apt/sources.list.d/google-cloud-sdk.list
|
||||
@@ -19,4 +20,4 @@ rm /usr/share/keyrings/cloud.google.gpg /usr/share/keyrings/cloud.google.gpg~
|
||||
# add repo to the apt-sources.txt
|
||||
echo "google-cloud-sdk $REPO_URL" >> $HELPER_SCRIPTS/apt-sources.txt
|
||||
|
||||
invoke_tests "CLI.Tools" "Google Cloud SDK"
|
||||
invoke_tests "CLI.Tools" "Google Cloud SDK"
|
||||
|
||||
@@ -7,11 +7,8 @@ source $HELPER_SCRIPTS/etc-environment.sh
|
||||
GRAALVM_ROOT=/usr/local/graalvm
|
||||
export GRAALVM_11_ROOT=$GRAALVM_ROOT/graalvm-ce-java11*
|
||||
|
||||
json=$(curl -s "https://api.github.com/repos/graalvm/graalvm-ce-builds/releases")
|
||||
latest_tag=$(echo $json | jq -r '.[] | select(.prerelease==false).tag_name' | sort --unique --version-sort | tail -1)
|
||||
url=$(echo $json | jq -r ".[] | select(.tag_name==\"${latest_tag}\").assets[].browser_download_url | select(contains(\"graalvm-ce-java11-linux-amd64\") and endswith(\"tar.gz\"))")
|
||||
|
||||
download_with_retries "$url" "/tmp" "graalvm-archive.tar.gz"
|
||||
downloadUrl=$(get_github_package_download_url "graalvm/graalvm-ce-builds" "contains(\"graalvm-ce-java11-linux-amd64\") and endswith(\"tar.gz\")")
|
||||
download_with_retries "$downloadUrl" "/tmp" "graalvm-archive.tar.gz"
|
||||
mkdir $GRAALVM_ROOT
|
||||
tar -xzf "/tmp/graalvm-archive.tar.gz" -C $GRAALVM_ROOT
|
||||
|
||||
|
||||
@@ -8,52 +8,126 @@ source $HELPER_SCRIPTS/install.sh
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
source $HELPER_SCRIPTS/etc-environment.sh
|
||||
|
||||
JAVA_VERSIONS_LIST=$(get_toolset_value '.java.versions | .[]')
|
||||
DEFAULT_JDK_VERSION=$(get_toolset_value '.java.default')
|
||||
JAVA_TOOLCACHE_PATH="$AGENT_TOOLSDIRECTORY/Java_Adopt_jdk"
|
||||
createJavaEnvironmentalVariable() {
|
||||
local JAVA_VERSION=$1
|
||||
local VENDOR_NAME=$2
|
||||
local DEFAULT=$3
|
||||
|
||||
# Install GPG Key for Adopt Open JDK. See https://adoptopenjdk.net/installation.html
|
||||
wget -qO - "https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public" | apt-key add -
|
||||
add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
|
||||
case ${VENDOR_NAME} in
|
||||
|
||||
if isUbuntu18 ; then
|
||||
# Install GPG Key for Azul Open JDK. See https://www.azul.com/downloads/azure-only/zulu/
|
||||
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
|
||||
apt-add-repository "deb https://repos.azul.com/azure-only/zulu/apt stable main"
|
||||
fi
|
||||
"Adopt" )
|
||||
INSTALL_PATH_PATTERN="/usr/lib/jvm/adoptopenjdk-${JAVA_VERSION}-hotspot-amd64" ;;
|
||||
|
||||
apt-get update
|
||||
"Temurin-Hotspot" )
|
||||
INSTALL_PATH_PATTERN="/usr/lib/jvm/temurin-${JAVA_VERSION}-jdk-amd64" ;;
|
||||
*)
|
||||
echo "Unknown vendor"
|
||||
exit 1
|
||||
|
||||
for JAVA_VERSION in ${JAVA_VERSIONS_LIST[@]}; do
|
||||
apt-get -y install adoptopenjdk-$JAVA_VERSION-hotspot=\*
|
||||
javaVersionPath="/usr/lib/jvm/adoptopenjdk-${JAVA_VERSION}-hotspot-amd64"
|
||||
echo "JAVA_HOME_${JAVA_VERSION}_X64=$javaVersionPath" | tee -a /etc/environment
|
||||
fullJavaVersion=$(cat "$javaVersionPath/release" | grep "^SEMANTIC" | cut -d "=" -f 2 | tr -d "\"" | tr "+" "-")
|
||||
esac
|
||||
|
||||
# If there is no semver in java release, then extract java version from -fullversion
|
||||
if [[ -z $fullJavaVersion ]]; then
|
||||
fullJavaVersion=$(java -fullversion 2>&1 | tr -d "\"" | tr "+" "-" | awk '{print $4}')
|
||||
if [[ ${DEFAULT} == "True" ]]; then
|
||||
echo "Setting up JAVA_HOME variable to ${INSTALL_PATH_PATTERN}"
|
||||
addEtcEnvironmentVariable JAVA_HOME ${INSTALL_PATH_PATTERN}
|
||||
echo "Setting up default symlink"
|
||||
update-java-alternatives -s ${INSTALL_PATH_PATTERN}
|
||||
fi
|
||||
|
||||
javaToolcacheVersionPath="$JAVA_TOOLCACHE_PATH/$fullJavaVersion"
|
||||
mkdir -p "$javaToolcacheVersionPath"
|
||||
echo "Setting up JAVA_HOME_${JAVA_VERSION}_X64 variable to ${INSTALL_PATH_PATTERN}"
|
||||
addEtcEnvironmentVariable JAVA_HOME_${JAVA_VERSION}_X64 ${INSTALL_PATH_PATTERN}
|
||||
}
|
||||
|
||||
enableRepositories() {
|
||||
# Add Adopt PPA
|
||||
wget -qO - "https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public" | apt-key add -
|
||||
add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
|
||||
|
||||
# Add Addoptium PPA
|
||||
wget -qO - "https://packages.adoptium.net/artifactory/api/gpg/key/public" | apt-key add -
|
||||
add-apt-repository --yes https://packages.adoptium.net/artifactory/deb/
|
||||
|
||||
if isUbuntu18 ; then
|
||||
# Install GPG Key for Azul Open JDK. See https://www.azul.com/downloads/azure-only/zulu/
|
||||
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
|
||||
apt-add-repository "deb https://repos.azul.com/azure-only/zulu/apt stable main"
|
||||
fi
|
||||
}
|
||||
|
||||
installOpenJDK() {
|
||||
local JAVA_VERSION=$1
|
||||
local VENDOR_NAME=$2
|
||||
|
||||
# Install Java from PPA repositories.
|
||||
if [[ ${VENDOR_NAME} == "Temurin-Hotspot" ]]; then
|
||||
apt-get -y install temurin-${JAVA_VERSION}-jdk=\*
|
||||
javaVersionPath="/usr/lib/jvm/temurin-${JAVA_VERSION}-jdk-amd64"
|
||||
elif [[ ${VENDOR_NAME} == "Adopt" ]]; then
|
||||
apt-get -y install adoptopenjdk-${JAVA_VERSION}-hotspot=\*
|
||||
javaVersionPath="/usr/lib/jvm/adoptopenjdk-${JAVA_VERSION}-hotspot-amd64"
|
||||
else
|
||||
echo "${VENDOR_NAME} is invalid, valid names are: Temurin-Hotspot and Adopt"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
JAVA_TOOLCACHE_PATH="${AGENT_TOOLSDIRECTORY}/Java_${VENDOR_NAME}_jdk"
|
||||
|
||||
fullJavaVersion=$(cat "${javaVersionPath}/release" | grep "^SEMANTIC" | cut -d "=" -f 2 | tr -d "\"" | tr "+" "-")
|
||||
|
||||
# If there is no semver in java release, then extract java version from -fullversion
|
||||
[[ -z ${fullJavaVersion} ]] && fullJavaVersion=$(${javaVersionPath}/bin/java -fullversion 2>&1 | tr -d "\"" | tr "+" "-" | awk '{print $4}')
|
||||
|
||||
# Convert non valid semver like 11.0.14.1-9 -> 11.0.14-9
|
||||
# https://github.com/adoptium/temurin-build/issues/2248
|
||||
[[ ${fullJavaVersion} =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+ ]] && fullJavaVersion=$(echo $fullJavaVersion | sed -E 's/\.[0-9]+-/-/')
|
||||
|
||||
javaToolcacheVersionPath="${JAVA_TOOLCACHE_PATH}/${fullJavaVersion}"
|
||||
mkdir -p "${javaToolcacheVersionPath}"
|
||||
|
||||
# Create a complete file
|
||||
touch "$javaToolcacheVersionPath/x64.complete"
|
||||
touch "${javaToolcacheVersionPath}/x64.complete"
|
||||
|
||||
# Create symlink for Java
|
||||
ln -s $javaVersionPath "$javaToolcacheVersionPath/x64"
|
||||
ln -s ${javaVersionPath} "${javaToolcacheVersionPath}/x64"
|
||||
|
||||
# add extra permissions to be able execute command without sudo
|
||||
chmod -R 777 /usr/lib/jvm
|
||||
}
|
||||
|
||||
# Fetch repositories data
|
||||
enableRepositories
|
||||
|
||||
# Get all the updates from enabled repositories.
|
||||
apt-get update
|
||||
|
||||
defaultVersion=$(get_toolset_value '.java.default')
|
||||
defaultVendor=$(get_toolset_value '.java.default_vendor')
|
||||
jdkVendors=($(get_toolset_value '.java.vendors[].name'))
|
||||
|
||||
for jdkVendor in ${jdkVendors[@]}; do
|
||||
|
||||
# get vendor-specific versions
|
||||
jdkVersionsToInstall=($(get_toolset_value ".java.vendors[] | select (.name==\"${jdkVendor}\") | .versions[]"))
|
||||
|
||||
for jdkVersionToInstall in ${jdkVersionsToInstall[@]}; do
|
||||
|
||||
installOpenJDK ${jdkVersionToInstall} ${jdkVendor}
|
||||
|
||||
isDefaultVersion=False; [[ ${jdkVersionToInstall} == ${defaultVersion} ]] && isDefaultVersion=True
|
||||
|
||||
if [[ ${jdkVendor} == ${defaultVendor} ]]; then
|
||||
createJavaEnvironmentalVariable ${jdkVersionToInstall} ${jdkVendor} ${isDefaultVersion}
|
||||
fi
|
||||
|
||||
done
|
||||
done
|
||||
|
||||
# Set Default Java version
|
||||
update-java-alternatives -s /usr/lib/jvm/adoptopenjdk-${DEFAULT_JDK_VERSION}-hotspot-amd64
|
||||
# Adopt 12 is only available for Ubuntu 18.04
|
||||
if isUbuntu18; then
|
||||
createJavaEnvironmentalVariable "12" "Adopt"
|
||||
fi
|
||||
|
||||
echo "JAVA_HOME=/usr/lib/jvm/adoptopenjdk-${DEFAULT_JDK_VERSION}-hotspot-amd64" | tee -a /etc/environment
|
||||
|
||||
# add extra permissions to be able execute command without sudo
|
||||
chmod -R 777 /usr/lib/jvm
|
||||
# Install Ant
|
||||
apt-fast install -y --no-install-recommends ant ant-optional
|
||||
apt-get install -y --no-install-recommends ant ant-optional
|
||||
echo "ANT_HOME=/usr/share/ant" | tee -a /etc/environment
|
||||
|
||||
# Install Maven
|
||||
@@ -67,11 +141,11 @@ ln -s /usr/share/apache-maven-${mavenVersion}/bin/mvn /usr/bin/mvn
|
||||
# This script founds the latest gradle release from https://services.gradle.org/versions/all
|
||||
# The release is downloaded, extracted, a symlink is created that points to it, and GRADLE_HOME is set.
|
||||
gradleJson=$(curl -s https://services.gradle.org/versions/all)
|
||||
gradleLatestVersion=$(echo $gradleJson | jq -r '.[] | select(.version | contains("-") | not).version' | sort -V | tail -n1)
|
||||
gradleDownloadUrl=$(echo $gradleJson | jq -r ".[] | select(.version==\"$gradleLatestVersion\") | .downloadUrl")
|
||||
echo "gradleUrl=$gradleDownloadUrl"
|
||||
echo "gradleVersion=$gradleLatestVersion"
|
||||
download_with_retries $gradleDownloadUrl "/tmp" "gradleLatest.zip"
|
||||
gradleLatestVersion=$(echo ${gradleJson} | jq -r '.[] | select(.version | contains("-") | not).version' | sort -V | tail -n1)
|
||||
gradleDownloadUrl=$(echo ${gradleJson} | jq -r ".[] | select(.version==\"$gradleLatestVersion\") | .downloadUrl")
|
||||
echo "gradleUrl=${gradleDownloadUrl}"
|
||||
echo "gradleVersion=${gradleLatestVersion}"
|
||||
download_with_retries ${gradleDownloadUrl} "/tmp" "gradleLatest.zip"
|
||||
unzip -qq -d /usr/share /tmp/gradleLatest.zip
|
||||
ln -s /usr/share/gradle-"${gradleLatestVersion}"/bin/gradle /usr/bin/gradle
|
||||
echo "GRADLE_HOME=$(find /usr/share -depth -maxdepth 1 -name "gradle*")" | tee -a /etc/environment
|
||||
|
||||
@@ -7,9 +7,8 @@
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
KOTLIN_ROOT="/usr/share"
|
||||
|
||||
URL=$(curl -s https://api.github.com/repos/JetBrains/kotlin/releases/latest | jq -r '.assets[].browser_download_url | select(contains("kotlin-compiler"))')
|
||||
download_with_retries $URL "/tmp"
|
||||
downloadUrl=$(get_github_package_download_url "JetBrains/kotlin" "contains(\"kotlin-compiler\")")
|
||||
download_with_retries "$downloadUrl" "/tmp"
|
||||
|
||||
unzip -qq /tmp/kotlin-compiler*.zip -d $KOTLIN_ROOT
|
||||
rm $KOTLIN_ROOT/kotlinc/bin/*.bat
|
||||
|
||||
@@ -4,8 +4,11 @@
|
||||
## Desc: Installs kubectl, helm, kustomize
|
||||
################################################################################
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
# Install KIND
|
||||
URL=$(curl -s https://api.github.com/repos/kubernetes-sigs/kind/releases/latest | jq -r '.assets[].browser_download_url | select(contains("kind-linux-amd64"))')
|
||||
URL=$(get_github_package_download_url "kubernetes-sigs/kind" "contains(\"kind-linux-amd64\")")
|
||||
curl -L -o /usr/local/bin/kind $URL
|
||||
chmod +x /usr/local/bin/kind
|
||||
|
||||
|
||||
@@ -4,13 +4,16 @@
|
||||
## Desc: Installs MySQL Client
|
||||
################################################################################
|
||||
|
||||
export ACCEPT_EULA=Y
|
||||
source /etc/os-release
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
# Mysql setting up root password
|
||||
MYSQL_ROOT_PASSWORD=root
|
||||
echo "mysql-server mysql-server/root_password password $MYSQL_ROOT_PASSWORD" | debconf-set-selections
|
||||
echo "mysql-server mysql-server/root_password_again password $MYSQL_ROOT_PASSWORD" | debconf-set-selections
|
||||
|
||||
export ACCEPT_EULA=Y
|
||||
|
||||
# Install MySQL Client
|
||||
apt-get install mysql-client -y
|
||||
|
||||
|
||||
@@ -14,20 +14,7 @@ bash ~/n $defaultVersion
|
||||
|
||||
# Install node modules
|
||||
node_modules=$(get_toolset_value '.node_modules[].name')
|
||||
|
||||
# remove commenting out of this line as nmp migrated to v7
|
||||
# npm install -g $node_modules
|
||||
|
||||
# TODO: workaround for Netlify CLI with npm6. Remove 19-28 and uncomment 17 if migration to npm7 compelted
|
||||
for module in $node_modules; do
|
||||
echo "Installing node module $module"
|
||||
if [ $module = "netlify-cli" ];then
|
||||
# Install the Netlify CLI using --unsafe-perm=true options to avoid permission issues
|
||||
npm install -g --unsafe-perm=true $module
|
||||
else
|
||||
npm install -g $module
|
||||
fi
|
||||
done
|
||||
npm install -g $node_modules
|
||||
|
||||
echo "Creating the symlink for [now] command to vercel CLI"
|
||||
ln -s /usr/local/bin/vercel /usr/local/bin/now
|
||||
|
||||
@@ -7,8 +7,7 @@
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
# Determine latest ORAS CLI version
|
||||
ORAS_CLI_LATEST_VERSION_URL=https://api.github.com/repos/oras-project/oras/releases/latest
|
||||
ORAS_CLI_DOWNLOAD_URL=$(curl -sfL $ORAS_CLI_LATEST_VERSION_URL | jq -r '.assets[].browser_download_url | select(endswith("linux_amd64.tar.gz"))')
|
||||
ORAS_CLI_DOWNLOAD_URL=$(get_github_package_download_url "oras-project/oras" "endswith(\"linux_amd64.tar.gz\")")
|
||||
ORAS_CLI_ARCHIVE=$(basename $ORAS_CLI_DOWNLOAD_URL)
|
||||
|
||||
# Install ORAS CLI
|
||||
|
||||
@@ -18,7 +18,7 @@ php_versions=$(get_toolset_value '.php.versions[]')
|
||||
|
||||
for version in $php_versions; do
|
||||
echo "Installing PHP $version"
|
||||
apt-fast install -y --no-install-recommends \
|
||||
apt-get install -y --no-install-recommends \
|
||||
php$version \
|
||||
php$version-amqp \
|
||||
php$version-apcu \
|
||||
@@ -64,34 +64,24 @@ for version in $php_versions; do
|
||||
php$version-zip \
|
||||
php$version-zmq
|
||||
|
||||
if [[ $version == "5.6" || $version == "7.0" || $version == "7.1" ]]; then
|
||||
apt-fast install -y --no-install-recommends php$version-mcrypt php$version-recode
|
||||
fi
|
||||
|
||||
if [[ $version == "7.2" || $version == "7.3" ]]; then
|
||||
apt-fast install -y --no-install-recommends php$version-recode
|
||||
fi
|
||||
|
||||
if [[ $version != "8.0" ]]; then
|
||||
apt-fast install -y --no-install-recommends php$version-xmlrpc php$version-json
|
||||
fi
|
||||
|
||||
if [[ $version != "5.6" && $version != "7.0" ]]; then
|
||||
apt-fast install -y --no-install-recommends php$version-pcov
|
||||
apt-get install -y --no-install-recommends php$version-pcov
|
||||
|
||||
# Disable PCOV, as Xdebug is enabled by default
|
||||
# https://github.com/krakjoe/pcov#interoperability
|
||||
phpdismod -v $version pcov
|
||||
|
||||
if [[ $version == "7.2" || $version == "7.3" ]]; then
|
||||
apt-get install -y --no-install-recommends php$version-recode
|
||||
fi
|
||||
|
||||
if [[ $version = "7.0" || $version = "7.1" ]]; then
|
||||
apt-fast install -y --no-install-recommends php$version-sodium
|
||||
if [[ $version != "8.0" && $version != "8.1" ]]; then
|
||||
apt-get install -y --no-install-recommends php$version-xmlrpc php$version-json
|
||||
fi
|
||||
done
|
||||
|
||||
apt-fast install -y --no-install-recommends php-pear
|
||||
apt-get install -y --no-install-recommends php-pear
|
||||
|
||||
apt-fast install -y --no-install-recommends snmp
|
||||
apt-get install -y --no-install-recommends snmp
|
||||
|
||||
# Install composer
|
||||
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||||
@@ -113,8 +103,8 @@ mv phpunit /usr/local/bin/phpunit
|
||||
|
||||
# ubuntu 20.04 libzip-dev is libzip5 based and is not compatible libzip-dev of ppa:ondrej/php
|
||||
# see https://github.com/actions/virtual-environments/issues/1084
|
||||
if isUbuntu20 ; then
|
||||
rm /etc/apt/sources.list.d/ondrej-ubuntu-php-focal.list
|
||||
if isUbuntu20 || isUbuntu22; then
|
||||
rm /etc/apt/sources.list.d/ondrej-*.list
|
||||
apt-get update
|
||||
fi
|
||||
|
||||
|
||||
@@ -10,8 +10,6 @@ echo "chmod -R 777 /opt"
|
||||
chmod -R 777 /opt
|
||||
echo "chmod -R 777 /usr/share"
|
||||
chmod -R 777 /usr/share
|
||||
echo "chmod -R 777 /home"
|
||||
chmod -R 777 /home
|
||||
|
||||
# remove installer and helper folders
|
||||
rm -rf $HELPER_SCRIPT_FOLDER
|
||||
@@ -27,4 +25,4 @@ echo "Updated /etc/environment: $(cat /etc/environment)"
|
||||
|
||||
# Clean yarn and npm cache
|
||||
yarn cache clean
|
||||
npm cache clean --force
|
||||
npm cache clean --force
|
||||
|
||||
@@ -5,4 +5,4 @@
|
||||
################################################################################
|
||||
|
||||
# Install Powershell
|
||||
apt-get install -y powershell
|
||||
apt-get install -y powershell
|
||||
|
||||
@@ -3,18 +3,14 @@
|
||||
imagedata_file=$IMAGEDATA_FILE
|
||||
image_version=$IMAGE_VERSION
|
||||
os_name=$(lsb_release -ds | sed "s/ /\\\n/g")
|
||||
image_label="ubuntu-$(lsb_release -rs)"
|
||||
os_version=$(lsb_release -rs)
|
||||
image_label="ubuntu-${os_version}"
|
||||
version_major=${os_version/.*/}
|
||||
version_wo_dot=${os_version/./}
|
||||
github_url="https://github.com/actions/virtual-environments/blob"
|
||||
|
||||
if [[ "$image_label" =~ "ubuntu-20" ]]; then
|
||||
software_url="${github_url}/ubuntu20/${image_version}/images/linux/Ubuntu2004-README.md"
|
||||
releaseUrl="https://github.com/actions/virtual-environments/releases/tag/ubuntu20%2F${image_version}"
|
||||
fi
|
||||
|
||||
if [[ "$image_label" =~ "ubuntu-18" ]]; then
|
||||
software_url="${github_url}/ubuntu18/${image_version}/images/linux/Ubuntu1804-README.md"
|
||||
releaseUrl="https://github.com/actions/virtual-environments/releases/tag/ubuntu18%2F${image_version}"
|
||||
fi
|
||||
software_url="${github_url}/ubuntu${version_major}/${image_version}/images/linux/Ubuntu${version_wo_dot}-Readme.md"
|
||||
releaseUrl="https://github.com/actions/virtual-environments/releases/tag/ubuntu${version_major}%2F${image_version}"
|
||||
|
||||
cat <<EOF > $imagedata_file
|
||||
[
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/etc-environment.sh
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
export RUSTUP_HOME=/etc/skel/.rustup
|
||||
export CARGO_HOME=/etc/skel/.cargo
|
||||
@@ -17,7 +18,12 @@ source $CARGO_HOME/env
|
||||
|
||||
# Install common tools
|
||||
rustup component add rustfmt clippy
|
||||
cargo install --locked bindgen cbindgen cargo-audit cargo-outdated
|
||||
|
||||
if isUbuntu22; then
|
||||
cargo install bindgen cbindgen cargo-audit cargo-outdated
|
||||
else
|
||||
cargo install --locked bindgen cbindgen cargo-audit cargo-outdated
|
||||
fi
|
||||
|
||||
# Cleanup Cargo cache
|
||||
rm -rf ${CARGO_HOME}/registry/*
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
# Install latest sbt release
|
||||
sbtVersion=$(curl -s -L "https://api.github.com/repos/sbt/sbt/releases" | jq -r '.[] | select(.prerelease==false).name' | sort --unique --version-sort | grep -ve "-.*" | tail -1)
|
||||
download_with_retries "https://github.com/sbt/sbt/releases/download/v${sbtVersion}/sbt-${sbtVersion}.tgz" "/tmp" "sbt.tgz"
|
||||
downloadUrl=$(get_github_package_download_url "sbt/sbt" "endswith(\".tgz\")")
|
||||
download_with_retries "$downloadUrl" "/tmp" "sbt.tgz"
|
||||
tar zxf /tmp/sbt.tgz -C /usr/share
|
||||
ln -s /usr/share/sbt/bin/sbt /usr/bin/sbt
|
||||
|
||||
|
||||
@@ -12,8 +12,7 @@ SELENIUM_MAJOR_VERSION=$(get_toolset_value '.selenium.version')
|
||||
SELENIUM_BINARY_NAME=$(get_toolset_value '.selenium.binary_name')
|
||||
SELENIUM_JAR_PATH="/usr/share/java"
|
||||
SELENIUM_JAR_NAME="$SELENIUM_BINARY_NAME.jar"
|
||||
json=$(curl -s "https://api.github.com/repos/SeleniumHQ/selenium/releases?per_page=100")
|
||||
SELENIUM_DOWNLOAD_URL=$(echo $json | jq -r ".[] | select(.prerelease==false).assets[].browser_download_url | select(contains(\"${SELENIUM_BINARY_NAME}-${SELENIUM_MAJOR_VERSION}\") and endswith(\".jar\"))" | head -1)
|
||||
SELENIUM_DOWNLOAD_URL=$(get_github_package_download_url "SeleniumHQ/selenium" "contains(\"${SELENIUM_BINARY_NAME}-${SELENIUM_MAJOR_VERSION}\") and endswith(\".jar\")")
|
||||
download_with_retries $SELENIUM_DOWNLOAD_URL $SELENIUM_JAR_PATH $SELENIUM_JAR_NAME
|
||||
|
||||
# Create an epmty file to retrive selenium version
|
||||
|
||||
@@ -6,6 +6,13 @@
|
||||
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
|
||||
# Install libssl1.1 dependency
|
||||
if isUbuntu22; then
|
||||
download_with_retries "http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1l-1ubuntu1.3_amd64.deb" "/tmp"
|
||||
dpkg -i /tmp/libssl1.1_1.1.1l-1ubuntu1.3_amd64.deb
|
||||
fi
|
||||
|
||||
# Install SqlPackage
|
||||
download_with_retries "https://aka.ms/sqlpackage-linux" "." "sqlpackage.zip"
|
||||
|
||||
@@ -6,7 +6,7 @@ source $HELPER_SCRIPTS/install.sh
|
||||
YQ_BINARY=yq_linux_amd64
|
||||
|
||||
# As per https://github.com/mikefarah/yq#wget
|
||||
YQ_URL=$(curl -s https://api.github.com/repos/mikefarah/yq/releases/latest | jq -r ".assets[].browser_download_url | select(endswith(\"$YQ_BINARY.tar.gz\"))")
|
||||
YQ_URL=$(get_github_package_download_url "mikefarah/yq" "endswith(\"$YQ_BINARY.tar.gz\")")
|
||||
echo "Downloading latest yq from $YQ_URL"
|
||||
|
||||
download_with_retries "$YQ_URL" "/tmp" "${YQ_BINARY}.tar.gz"
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
Describe "Android" {
|
||||
if (Test-IsUbuntu22) { return }
|
||||
|
||||
$androidSdkManagerPackages = Get-AndroidPackages
|
||||
[int]$platformMinVersion = Get-ToolsetValue "android.platform_min_version"
|
||||
[version]$buildToolsMinVersion = Get-ToolsetValue "android.build_tools_min_version"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Describe "Firefox" {
|
||||
Describe "Firefox" -Skip:(Test-IsUbuntu22) {
|
||||
It "Firefox" {
|
||||
"sudo -i firefox --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ Describe "PHP" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Swift" {
|
||||
Describe "Swift" -Skip:(Test-IsUbuntu22) {
|
||||
It "swift" {
|
||||
"swift --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Describe "MongoDB" {
|
||||
Describe "MongoDB" -Skip:(Test-IsUbuntu22) {
|
||||
It "<ToolName>" -TestCases @(
|
||||
@{ ToolName = "mongo" }
|
||||
@{ ToolName = "mongod" }
|
||||
@@ -11,8 +11,8 @@ Describe "MongoDB" {
|
||||
Describe "PostgreSQL" {
|
||||
It "PostgreSQL Service" {
|
||||
"sudo systemctl start postgresql" | Should -ReturnZeroExitCode
|
||||
(Get-CommandResult "pg_isready").Output | Should -Be "/var/run/postgresql:5432 - accepting connections"
|
||||
"sudo systemctl stop postgresql" | Should -ReturnZeroExitCode
|
||||
"pg_isready" | Should -MatchCommandOutput "/var/run/postgresql:5432 - accepting connections"
|
||||
"sudo systemctl stop postgresql" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
It "PostgreSQL version should correspond to the version in the toolset" {
|
||||
@@ -34,6 +34,6 @@ Describe "MySQL" {
|
||||
mysql -s -N -h localhost -uroot -proot -e "select count(*) from mysql.user where user='root' and authentication_string is null;" | Should -BeExactly 0
|
||||
"sudo mysql -vvv -e 'CREATE DATABASE smoke_test' -uroot -proot" | Should -ReturnZeroExitCode
|
||||
"sudo mysql -vvv -e 'DROP DATABASE smoke_test' -uroot -proot" | Should -ReturnZeroExitCode
|
||||
"sudo systemctl stop mysql" | Should -ReturnZeroExitCode
|
||||
"sudo systemctl stop mysql" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
|
||||
|
||||
Describe "Dotnet" {
|
||||
Describe "Dotnet and tools" {
|
||||
|
||||
BeforeAll {
|
||||
$env:PATH = "/etc/skel/.dotnet/tools:$($env:PATH)"
|
||||
$dotnetSDKs = dotnet --list-sdks | ConvertTo-Json
|
||||
$dotnetRuntimes = dotnet --list-runtimes | ConvertTo-Json
|
||||
}
|
||||
@@ -28,4 +29,14 @@ Describe "Dotnet" {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Context "Dotnet tools" {
|
||||
$dotnetTools = (Get-ToolsetContent).dotnet.tools
|
||||
$testCases = $dotnetTools | ForEach-Object { @{ ToolName = $_.name; TestInstance = $_.test }}
|
||||
|
||||
It "<ToolName> is available" -TestCases $testCases {
|
||||
"$TestInstance" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,10 +1,15 @@
|
||||
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1" -DisableNameChecking
|
||||
|
||||
Describe "Java" {
|
||||
[array]$jdkVersions = (Get-ToolsetContent).java.versions | ForEach-Object { @{Version = $_} }
|
||||
$defaultJavaVersion = (Get-ToolsetContent).java.default
|
||||
Describe "Java" -Skip:(Test-IsUbuntu22) {
|
||||
$toolsetJava = (Get-ToolsetContent).java
|
||||
$defaultVersion = $toolsetJava.default
|
||||
$defaultVendor = $toolsetJava.default_vendor
|
||||
$javaVendors = $toolsetJava.vendors
|
||||
|
||||
It "Java <DefaultJavaVersion> is default" -TestCases @{ DefaultJavaVersion = $defaultJavaVersion } {
|
||||
[array]$jdkVersions = ($javaVendors | Where-Object {$_.name -eq $defaultVendor}).versions | ForEach-Object { @{Version = $_} }
|
||||
[array]$adoptJdkVersions = ($javaVendors | Where-Object {$_.name -eq "Adopt"}).versions | ForEach-Object { @{Version = $_} }
|
||||
|
||||
It "Java <DefaultJavaVersion> is default" -TestCases @{ DefaultJavaVersion = $defaultVersion } {
|
||||
$actualJavaPath = Get-EnvironmentVariable "JAVA_HOME"
|
||||
$expectedJavaPath = Get-EnvironmentVariable "JAVA_HOME_${DefaultJavaVersion}_X64"
|
||||
|
||||
@@ -29,8 +34,7 @@ Describe "Java" {
|
||||
$gradleVariableValue | Should -BeLike "/usr/share/gradle-*"
|
||||
|
||||
$gradlePath = Join-Path $env:GRADLE_HOME "bin/gradle"
|
||||
$result = Get-CommandResult "`"$GradlePath`" -version"
|
||||
$result.ExitCode | Should -Be 0
|
||||
"`"$GradlePath`" -version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
It "Java <Version>" -TestCases $jdkVersions {
|
||||
@@ -38,12 +42,21 @@ Describe "Java" {
|
||||
$javaVariableValue | Should -Not -BeNullOrEmpty
|
||||
$javaPath = Join-Path $javaVariableValue "bin/java"
|
||||
|
||||
$result = Get-CommandResult "`"$javaPath`" -version"
|
||||
$result.ExitCode | Should -Be 0
|
||||
"`"$javaPath`" -version" | Should -ReturnZeroExitCode
|
||||
|
||||
if ($Version -eq 8) {
|
||||
$Version = "1.${Version}"
|
||||
}
|
||||
$result.Output | Should -Match ([regex]::Escape("openjdk version `"${Version}."))
|
||||
"`"$javaPath`" -version" | Should -MatchCommandOutput ([regex]::Escape("openjdk version `"${Version}."))
|
||||
}
|
||||
}
|
||||
|
||||
It "Java Adopt <Version>" -TestCases $adoptJdkVersions {
|
||||
$javaPath = Join-Path (Get-ChildItem ${env:AGENT_TOOLSDIRECTORY}\Java_Adopt_jdk\${Version}*) "x64\bin\java"
|
||||
"`"$javaPath`" -version" | Should -ReturnZeroExitCode
|
||||
|
||||
if ($Version -eq 8) {
|
||||
$Version = "1.${Version}"
|
||||
}
|
||||
"`"$javaPath`" -version" | Should -MatchCommandOutput ([regex]::Escape("openjdk version `"${Version}."))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,8 +20,7 @@ Describe "Rust" {
|
||||
$env:RUSTUP_HOME = "/etc/skel/.rustup"
|
||||
$env:CARGO_HOME = "/etc/skel/.cargo"
|
||||
}
|
||||
|
||||
|
||||
|
||||
It "Rustup is installed" {
|
||||
"rustup --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
@@ -77,6 +76,10 @@ Describe "Docker" {
|
||||
"docker compose" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
It "docker-credential-ecr-login" {
|
||||
"docker-credential-ecr-login -v" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
Context "docker images" {
|
||||
$testCases = (Get-ToolsetContent).docker.images | ForEach-Object { @{ ImageName = $_ } }
|
||||
|
||||
@@ -117,7 +120,7 @@ Describe "clang" {
|
||||
|
||||
"clang-$ClangVersion --version" | Should -ReturnZeroExitCode
|
||||
"clang++-$ClangVersion --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Cmake" {
|
||||
@@ -126,7 +129,7 @@ Describe "Cmake" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "erlang" {
|
||||
Describe "erlang" -Skip:(Test-IsUbuntu22) {
|
||||
$testCases = @("erl -version", "erlc -v", "rebar3 -v") | ForEach-Object { @{ErlangCommand = $_} }
|
||||
|
||||
It "erlang <ErlangCommand>" -TestCases $testCases {
|
||||
@@ -162,7 +165,7 @@ Describe "gfortran" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Mono" {
|
||||
Describe "Mono" -Skip:(Test-IsUbuntu22) {
|
||||
It "mono" {
|
||||
"mono --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
@@ -176,7 +179,7 @@ Describe "Mono" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "MSSQLCommandLineTools" {
|
||||
Describe "MSSQLCommandLineTools" -Skip:(Test-IsUbuntu22) {
|
||||
It "sqlcmd" {
|
||||
"sqlcmd -?" | Should -ReturnZeroExitCode
|
||||
}
|
||||
@@ -200,7 +203,7 @@ Describe "Sbt" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Selenium" {
|
||||
Describe "Selenium" -Skip:(Test-IsUbuntu22) {
|
||||
It "Selenium is installed" {
|
||||
$seleniumBinaryName = (Get-ToolsetContent).selenium.binary_name
|
||||
$seleniumPath = Join-Path "/usr/share/java" "$seleniumBinaryName.jar"
|
||||
@@ -244,7 +247,7 @@ Describe "Heroku" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "HHVM" {
|
||||
Describe "HHVM" -Skip:(Test-IsUbuntu22) {
|
||||
It "hhvm" {
|
||||
"hhvm --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
@@ -292,7 +295,7 @@ Describe "Kubernetes tools" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Leiningen" {
|
||||
Describe "Leiningen" -Skip:(Test-IsUbuntu22) {
|
||||
It "leiningen" {
|
||||
"lein --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
@@ -316,13 +319,13 @@ Describe "Pulumi" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Phantomjs" {
|
||||
Describe "Phantomjs" -Skip:(Test-IsUbuntu22) {
|
||||
It "phantomjs" {
|
||||
"phantomjs --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
|
||||
Describe "GraalVM" -Skip:(-not (Test-IsUbuntu20)) {
|
||||
Describe "GraalVM" -Skip:(Test-IsUbuntu18) {
|
||||
It "graalvm" {
|
||||
'$GRAALVM_11_ROOT/bin/java -version' | Should -ReturnZeroExitCode
|
||||
}
|
||||
@@ -332,7 +335,7 @@ Describe "GraalVM" -Skip:(-not (Test-IsUbuntu20)) {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Containers" {
|
||||
Describe "Containers" -Skip:(-not (Test-IsUbuntu22)) {
|
||||
$testCases = @("podman", "buildah", "skopeo") | ForEach-Object { @{ContainerCommand = $_} }
|
||||
|
||||
It "<ContainerCommand>" -TestCases $testCases {
|
||||
@@ -341,7 +344,7 @@ Describe "Containers" {
|
||||
)
|
||||
|
||||
"$ContainerCommand -v" | Should -ReturnZeroExitCode
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Describe "nvm" {
|
||||
@@ -391,7 +394,7 @@ Describe "yq" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Kotlin" {
|
||||
Describe "Kotlin" -Skip:(Test-IsUbuntu22) {
|
||||
It "kapt" {
|
||||
"kapt -version"| Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
"arch": "x64",
|
||||
"versions": [
|
||||
"2.7.*",
|
||||
"3.5.*",
|
||||
"3.6.*",
|
||||
"3.7.*",
|
||||
"3.8.*",
|
||||
@@ -22,7 +21,8 @@
|
||||
"platform" : "linux",
|
||||
"versions": [
|
||||
"2.7",
|
||||
"3.6"
|
||||
"3.6",
|
||||
"3.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -42,11 +42,11 @@
|
||||
"arch": "x64",
|
||||
"platform" : "linux",
|
||||
"versions": [
|
||||
"1.15.*",
|
||||
"1.16.*",
|
||||
"1.17.*"
|
||||
"1.17.*",
|
||||
"1.18.*"
|
||||
],
|
||||
"default": "1.15.*"
|
||||
"default": "1.17.*"
|
||||
},
|
||||
{
|
||||
"name": "Ruby",
|
||||
@@ -57,7 +57,8 @@
|
||||
"2.5.*",
|
||||
"2.6.*",
|
||||
"2.7.*",
|
||||
"3.0.*"
|
||||
"3.0.*",
|
||||
"3.1.*"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -71,10 +72,18 @@
|
||||
],
|
||||
"java": {
|
||||
"default": "8",
|
||||
"versions": [
|
||||
"8", "11", "12"
|
||||
"default_vendor": "Temurin-Hotspot",
|
||||
"vendors": [
|
||||
{
|
||||
"name": "Temurin-Hotspot",
|
||||
"versions": [ "8", "11", "17" ]
|
||||
},
|
||||
{
|
||||
"name": "Adopt",
|
||||
"versions": [ "8", "11", "12" ]
|
||||
}
|
||||
],
|
||||
"maven": "3.8.4"
|
||||
"maven": "3.8.5"
|
||||
},
|
||||
"android": {
|
||||
"platform_min_version": "23",
|
||||
@@ -103,6 +112,7 @@
|
||||
},
|
||||
"powershellModules": [
|
||||
{"name": "MarkdownPS"},
|
||||
{"name": "Microsoft.Graph"},
|
||||
{"name": "Pester"}
|
||||
],
|
||||
"azureModules": [
|
||||
@@ -110,17 +120,20 @@
|
||||
"name": "az",
|
||||
"url" : "https://raw.githubusercontent.com/Azure/az-ps-module-versions/main/versions-manifest.json",
|
||||
"versions": [
|
||||
"6.4.0"
|
||||
"7.3.2"
|
||||
],
|
||||
"zip_versions": [
|
||||
"3.1.0",
|
||||
"4.4.0",
|
||||
"5.9.0"
|
||||
"5.9.0",
|
||||
"6.6.0"
|
||||
]
|
||||
}
|
||||
],
|
||||
"apt": {
|
||||
"common_packages": [
|
||||
"autoconf",
|
||||
"automake",
|
||||
"build-essential",
|
||||
"dbus",
|
||||
"dnsutils",
|
||||
@@ -143,6 +156,7 @@
|
||||
"libmagickwand-dev",
|
||||
"libsecret-1-dev",
|
||||
"libsqlite3-dev",
|
||||
"libtool",
|
||||
"libunwind8",
|
||||
"libxkbfile-dev",
|
||||
"libxss1",
|
||||
@@ -239,12 +253,16 @@
|
||||
"dotnet": {
|
||||
"aptPackages": [
|
||||
"dotnet-sdk-3.1",
|
||||
"dotnet-sdk-5.0"
|
||||
"dotnet-sdk-5.0",
|
||||
"dotnet-sdk-6.0"
|
||||
],
|
||||
"versions": [
|
||||
"2.1",
|
||||
"3.1",
|
||||
"5.0"
|
||||
"5.0",
|
||||
"6.0"
|
||||
],
|
||||
"tools": [
|
||||
{ "name": "nbgv", "test": "nbgv --version", "getversion" : "nbgv --version" }
|
||||
]
|
||||
},
|
||||
"clang": {
|
||||
@@ -267,11 +285,11 @@
|
||||
},
|
||||
"php": {
|
||||
"versions": [
|
||||
"7.1",
|
||||
"7.2",
|
||||
"7.3",
|
||||
"7.4",
|
||||
"8.0"
|
||||
"8.0",
|
||||
"8.1"
|
||||
]
|
||||
},
|
||||
"selenium": {
|
||||
@@ -296,7 +314,7 @@
|
||||
"command": "n"
|
||||
},
|
||||
{
|
||||
"name": "parcel-bundler",
|
||||
"name": "parcel",
|
||||
"command": "parcel"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
"arch": "x64",
|
||||
"versions": [
|
||||
"2.7.*",
|
||||
"3.5.*",
|
||||
"3.6.*",
|
||||
"3.7.*",
|
||||
"3.8.*",
|
||||
@@ -24,7 +23,8 @@
|
||||
"2.7",
|
||||
"3.6",
|
||||
"3.7",
|
||||
"3.8"
|
||||
"3.8",
|
||||
"3.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -44,11 +44,11 @@
|
||||
"arch": "x64",
|
||||
"platform" : "linux",
|
||||
"versions": [
|
||||
"1.15.*",
|
||||
"1.16.*",
|
||||
"1.17.*"
|
||||
"1.17.*",
|
||||
"1.18.*"
|
||||
],
|
||||
"default": "1.15.*"
|
||||
"default": "1.17.*"
|
||||
},
|
||||
{
|
||||
"name": "Ruby",
|
||||
@@ -58,7 +58,8 @@
|
||||
"2.5.*",
|
||||
"2.6.*",
|
||||
"2.7.*",
|
||||
"3.0.*"
|
||||
"3.0.*",
|
||||
"3.1.*"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -72,10 +73,18 @@
|
||||
],
|
||||
"java": {
|
||||
"default": "11",
|
||||
"versions": [
|
||||
"8", "11"
|
||||
"default_vendor": "Temurin-Hotspot",
|
||||
"vendors": [
|
||||
{
|
||||
"name": "Temurin-Hotspot",
|
||||
"versions": [ "8", "11", "17" ]
|
||||
},
|
||||
{
|
||||
"name": "Adopt",
|
||||
"versions": [ "8", "11" ]
|
||||
}
|
||||
],
|
||||
"maven": "3.8.4"
|
||||
"maven": "3.8.5"
|
||||
},
|
||||
"android": {
|
||||
"platform_min_version": "27",
|
||||
@@ -100,6 +109,7 @@
|
||||
},
|
||||
"powershellModules": [
|
||||
{"name": "MarkdownPS"},
|
||||
{"name": "Microsoft.Graph"},
|
||||
{"name": "Pester"},
|
||||
{"name": "PSScriptAnalyzer"}
|
||||
],
|
||||
@@ -108,17 +118,20 @@
|
||||
"name": "az",
|
||||
"url" : "https://raw.githubusercontent.com/Azure/az-ps-module-versions/main/versions-manifest.json",
|
||||
"versions": [
|
||||
"6.4.0"
|
||||
"7.3.2"
|
||||
],
|
||||
"zip_versions": [
|
||||
"3.1.0",
|
||||
"4.4.0",
|
||||
"5.9.0"
|
||||
"5.9.0",
|
||||
"6.6.0"
|
||||
]
|
||||
}
|
||||
],
|
||||
"apt": {
|
||||
"common_packages": [
|
||||
"autoconf",
|
||||
"automake",
|
||||
"build-essential",
|
||||
"dbus",
|
||||
"dnsutils",
|
||||
@@ -142,6 +155,7 @@
|
||||
"libmagickwand-dev",
|
||||
"libsecret-1-dev",
|
||||
"libsqlite3-dev",
|
||||
"libtool",
|
||||
"libunwind8",
|
||||
"libxkbfile-dev",
|
||||
"libxss1",
|
||||
@@ -239,12 +253,16 @@
|
||||
"dotnet": {
|
||||
"aptPackages": [
|
||||
"dotnet-sdk-3.1",
|
||||
"dotnet-sdk-5.0"
|
||||
"dotnet-sdk-5.0",
|
||||
"dotnet-sdk-6.0"
|
||||
],
|
||||
"versions": [
|
||||
"2.1",
|
||||
"3.1",
|
||||
"5.0"
|
||||
"5.0",
|
||||
"6.0"
|
||||
],
|
||||
"tools": [
|
||||
{ "name": "nbgv", "test": "nbgv --version", "getversion" : "nbgv --version" }
|
||||
]
|
||||
},
|
||||
"clang": {
|
||||
@@ -270,7 +288,8 @@
|
||||
"php": {
|
||||
"versions": [
|
||||
"7.4",
|
||||
"8.0"
|
||||
"8.0",
|
||||
"8.1"
|
||||
]
|
||||
},
|
||||
"rubygems": [
|
||||
@@ -297,7 +316,7 @@
|
||||
"command": "n"
|
||||
},
|
||||
{
|
||||
"name": "parcel-bundler",
|
||||
"name": "parcel",
|
||||
"command": "parcel"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -0,0 +1,332 @@
|
||||
{
|
||||
"toolcache": [
|
||||
{
|
||||
"name": "Python",
|
||||
"url" : "https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json",
|
||||
"platform" : "linux",
|
||||
"platform_version": "22.04",
|
||||
"arch": "x64",
|
||||
"versions": [
|
||||
"3.7.*",
|
||||
"3.8.*",
|
||||
"3.9.*",
|
||||
"3.10.*"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "PyPy",
|
||||
"arch": "x64",
|
||||
"platform" : "linux",
|
||||
"versions": [
|
||||
"3.7",
|
||||
"3.8",
|
||||
"3.9"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "node",
|
||||
"url" : "https://raw.githubusercontent.com/actions/node-versions/main/versions-manifest.json",
|
||||
"platform" : "linux",
|
||||
"arch": "x64",
|
||||
"versions": [
|
||||
"14.*",
|
||||
"16.*"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "go",
|
||||
"url" : "https://raw.githubusercontent.com/actions/go-versions/main/versions-manifest.json",
|
||||
"arch": "x64",
|
||||
"platform" : "linux",
|
||||
"versions": [
|
||||
"1.17.*",
|
||||
"1.18.*"
|
||||
],
|
||||
"default": "1.18.*"
|
||||
},
|
||||
{
|
||||
"name": "Ruby",
|
||||
"platform_version": "22.04",
|
||||
"arch": "x64",
|
||||
"versions": [
|
||||
"3.1.*"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "CodeQL",
|
||||
"platform" : "linux",
|
||||
"arch": "x64",
|
||||
"versions": [
|
||||
"*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"java": {
|
||||
"default": "11",
|
||||
"default_vendor": "Temurin-Hotspot",
|
||||
"vendors": [
|
||||
{
|
||||
"name": "Temurin-Hotspot",
|
||||
"versions": [ "8", "11", "17" ]
|
||||
}
|
||||
],
|
||||
"maven": "3.8.5"
|
||||
},
|
||||
"android": {
|
||||
"platform_min_version": "27",
|
||||
"build_tools_min_version": "27.0.0",
|
||||
"extra_list": [
|
||||
"android;m2repository",
|
||||
"google;m2repository",
|
||||
"google;google_play_services"
|
||||
],
|
||||
"addon_list": [
|
||||
],
|
||||
"additional_tools": [
|
||||
"cmake;3.10.2.4988404",
|
||||
"cmake;3.18.1"
|
||||
],
|
||||
"ndk": {
|
||||
"default": "21",
|
||||
"versions": [
|
||||
"21", "22", "23"
|
||||
]
|
||||
}
|
||||
},
|
||||
"powershellModules": [
|
||||
{"name": "MarkdownPS"},
|
||||
{"name": "Microsoft.Graph"},
|
||||
{"name": "Pester"},
|
||||
{"name": "PSScriptAnalyzer"}
|
||||
],
|
||||
"azureModules": [
|
||||
{
|
||||
"name": "az",
|
||||
"url" : "https://raw.githubusercontent.com/Azure/az-ps-module-versions/main/versions-manifest.json",
|
||||
"versions": [
|
||||
"7.3.2"
|
||||
],
|
||||
"zip_versions": [
|
||||
]
|
||||
}
|
||||
],
|
||||
"apt": {
|
||||
"common_packages": [
|
||||
"autoconf",
|
||||
"automake",
|
||||
"build-essential",
|
||||
"dbus",
|
||||
"dnsutils",
|
||||
"dpkg",
|
||||
"fakeroot",
|
||||
"fonts-noto-color-emoji",
|
||||
"gnupg2",
|
||||
"imagemagick",
|
||||
"iproute2",
|
||||
"iputils-ping",
|
||||
"lib32z1",
|
||||
"libc++abi-dev",
|
||||
"libc++-dev",
|
||||
"libcurl4",
|
||||
"libgbm-dev",
|
||||
"libgconf-2-4",
|
||||
"libgsl-dev",
|
||||
"libgtk-3-0",
|
||||
"libmagic-dev",
|
||||
"libmagickcore-dev",
|
||||
"libmagickwand-dev",
|
||||
"libsecret-1-dev",
|
||||
"libsqlite3-dev",
|
||||
"libtool",
|
||||
"libunwind8",
|
||||
"libxkbfile-dev",
|
||||
"libxss1",
|
||||
"libssl-dev",
|
||||
"locales",
|
||||
"mercurial",
|
||||
"openssh-client",
|
||||
"p7zip-rar",
|
||||
"pkg-config",
|
||||
"python-is-python3",
|
||||
"rpm",
|
||||
"texinfo",
|
||||
"tk",
|
||||
"tzdata",
|
||||
"upx",
|
||||
"xorriso",
|
||||
"xvfb",
|
||||
"xz-utils",
|
||||
"zsync"
|
||||
],
|
||||
"cmd_packages": [
|
||||
"acl",
|
||||
"aria2",
|
||||
"binutils",
|
||||
"bison",
|
||||
"brotli",
|
||||
"bzip2",
|
||||
"coreutils",
|
||||
"curl",
|
||||
"file",
|
||||
"flex",
|
||||
"ftp",
|
||||
"haveged",
|
||||
"jq",
|
||||
"m4",
|
||||
"mediainfo",
|
||||
"netcat",
|
||||
"net-tools",
|
||||
"p7zip-full",
|
||||
"parallel",
|
||||
"pass",
|
||||
"patchelf",
|
||||
"pollinate",
|
||||
"rsync",
|
||||
"shellcheck",
|
||||
"sphinxsearch",
|
||||
"sqlite3",
|
||||
"ssh",
|
||||
"sshpass",
|
||||
"subversion",
|
||||
"sudo",
|
||||
"swig",
|
||||
"telnet",
|
||||
"time",
|
||||
"unzip",
|
||||
"wget",
|
||||
"zip"
|
||||
]
|
||||
},
|
||||
"brew": [
|
||||
{"name": "zstd"}
|
||||
],
|
||||
"docker": {
|
||||
"images": [
|
||||
"alpine:3.14",
|
||||
"alpine:3.15",
|
||||
"buildpack-deps:buster",
|
||||
"buildpack-deps:bullseye",
|
||||
"debian:10",
|
||||
"debian:11",
|
||||
"moby/buildkit:latest",
|
||||
"node:14",
|
||||
"node:16",
|
||||
"node:14-alpine",
|
||||
"node:16-alpine",
|
||||
"ubuntu:18.04",
|
||||
"ubuntu:20.04",
|
||||
"ubuntu:22.04"
|
||||
]
|
||||
},
|
||||
"pipx": [
|
||||
{
|
||||
"package": "yamllint",
|
||||
"cmd": "yamllint"
|
||||
},
|
||||
{
|
||||
"package": "ansible-core",
|
||||
"cmd": "ansible"
|
||||
}
|
||||
],
|
||||
"dotnet": {
|
||||
"aptPackages": [
|
||||
"dotnet-sdk-6.0"
|
||||
],
|
||||
"versions": [
|
||||
"6.0"
|
||||
],
|
||||
"tools": [
|
||||
{ "name": "nbgv", "test": "nbgv --version", "getversion" : "nbgv --version" }
|
||||
]
|
||||
},
|
||||
"clang": {
|
||||
"versions": [
|
||||
"11",
|
||||
"12"
|
||||
],
|
||||
"default_version": "11"
|
||||
},
|
||||
"gcc": {
|
||||
"versions": [
|
||||
"g++-9",
|
||||
"g++-10"
|
||||
]
|
||||
},
|
||||
"gfortran": {
|
||||
"versions": [
|
||||
"gfortran-9",
|
||||
"gfortran-10"
|
||||
]
|
||||
},
|
||||
"php": {
|
||||
"versions": [
|
||||
"8.1"
|
||||
]
|
||||
},
|
||||
"rubygems": [
|
||||
{"name": "fastlane"}
|
||||
],
|
||||
"selenium": {
|
||||
"version": "4",
|
||||
"binary_name": "selenium-server"
|
||||
},
|
||||
"node": {
|
||||
"default": "16"
|
||||
},
|
||||
"node_modules": [
|
||||
{
|
||||
"name": "grunt",
|
||||
"command": "grunt"
|
||||
},
|
||||
{
|
||||
"name": "gulp",
|
||||
"command": "gulp"
|
||||
},
|
||||
{
|
||||
"name": "n",
|
||||
"command": "n"
|
||||
},
|
||||
{
|
||||
"name": "parcel",
|
||||
"command": "parcel"
|
||||
},
|
||||
{
|
||||
"name": "typescript",
|
||||
"command": "tsc"
|
||||
},
|
||||
{
|
||||
"name": "newman",
|
||||
"command": "newman"
|
||||
},
|
||||
{
|
||||
"name": "vercel",
|
||||
"command": "vercel"
|
||||
},
|
||||
{
|
||||
"name": "webpack",
|
||||
"command": "webpack"
|
||||
},
|
||||
{
|
||||
"name": "webpack-cli",
|
||||
"command": "webpack-cli"
|
||||
},
|
||||
{
|
||||
"name": "netlify-cli",
|
||||
"command": "netlify"
|
||||
},
|
||||
{
|
||||
"name": "lerna",
|
||||
"command": "lerna"
|
||||
},
|
||||
{
|
||||
"name": "yarn",
|
||||
"command": "yarn"
|
||||
}
|
||||
],
|
||||
"mongodb": {
|
||||
"version": "5.0"
|
||||
},
|
||||
"postgresql": {
|
||||
"version": "14"
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
"variables": {
|
||||
"client_id": "{{env `ARM_CLIENT_ID`}}",
|
||||
"client_secret": "{{env `ARM_CLIENT_SECRET`}}",
|
||||
"client_cert_path": "{{env `ARM_CLIENT_CERT_PATH`}}",
|
||||
"subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}",
|
||||
"tenant_id": "{{env `ARM_TENANT_ID`}}",
|
||||
"resource_group": "{{env `ARM_RESOURCE_GROUP`}}",
|
||||
@@ -34,6 +35,7 @@
|
||||
"type": "azure-arm",
|
||||
"client_id": "{{user `client_id`}}",
|
||||
"client_secret": "{{user `client_secret`}}",
|
||||
"client_cert_path": "{{user `client_cert_path`}}",
|
||||
"subscription_id": "{{user `subscription_id`}}",
|
||||
"tenant_id": "{{user `tenant_id`}}",
|
||||
"location": "{{user `location`}}",
|
||||
@@ -149,20 +151,14 @@
|
||||
{
|
||||
"type": "shell",
|
||||
"scripts": [
|
||||
"{{template_dir}}/scripts/installers/complete-snap-setup.sh"
|
||||
"{{template_dir}}/scripts/installers/complete-snap-setup.sh",
|
||||
"{{template_dir}}/scripts/installers/powershellcore.sh"
|
||||
],
|
||||
"environment_vars": [
|
||||
"HELPER_SCRIPTS={{user `helper_script_folder`}}"
|
||||
],
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"scripts": [
|
||||
"{{template_dir}}/scripts/installers/powershellcore.sh"
|
||||
],
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"scripts": [
|
||||
@@ -203,7 +199,6 @@
|
||||
"{{template_dir}}/scripts/installers/swift.sh",
|
||||
"{{template_dir}}/scripts/installers/cmake.sh",
|
||||
"{{template_dir}}/scripts/installers/codeql-bundle.sh",
|
||||
"{{template_dir}}/scripts/installers/containers.sh",
|
||||
"{{template_dir}}/scripts/installers/dotnetcore-sdk.sh",
|
||||
"{{template_dir}}/scripts/installers/erlang.sh",
|
||||
"{{template_dir}}/scripts/installers/firefox.sh",
|
||||
@@ -294,6 +289,11 @@
|
||||
],
|
||||
"execute_command": "/bin/sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"script": "{{template_dir}}/scripts/base/snap.sh",
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"expect_disconnect": true,
|
||||
@@ -330,7 +330,7 @@
|
||||
{
|
||||
"type": "file",
|
||||
"source": "{{user `image_folder`}}/Ubuntu-Readme.md",
|
||||
"destination": "{{template_dir}}/Ubuntu1804-README.md",
|
||||
"destination": "{{template_dir}}/Ubuntu1804-Readme.md",
|
||||
"direction": "download"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"variables": {
|
||||
"client_id": "{{env `ARM_CLIENT_ID`}}",
|
||||
"client_secret": "{{env `ARM_CLIENT_SECRET`}}",
|
||||
"client_cert_path": "{{env `ARM_CLIENT_CERT_PATH`}}",
|
||||
"subscription_id": "{{env `ARM_SUBSCRIPTION_ID`}}",
|
||||
"tenant_id": "{{env `ARM_TENANT_ID`}}",
|
||||
"resource_group": "{{env `ARM_RESOURCE_GROUP`}}",
|
||||
@@ -34,6 +35,7 @@
|
||||
"type": "azure-arm",
|
||||
"client_id": "{{user `client_id`}}",
|
||||
"client_secret": "{{user `client_secret`}}",
|
||||
"client_cert_path": "{{user `client_cert_path`}}",
|
||||
"subscription_id": "{{user `subscription_id`}}",
|
||||
"tenant_id": "{{user `tenant_id`}}",
|
||||
"location": "{{user `location`}}",
|
||||
@@ -149,20 +151,14 @@
|
||||
{
|
||||
"type": "shell",
|
||||
"scripts": [
|
||||
"{{template_dir}}/scripts/installers/complete-snap-setup.sh"
|
||||
"{{template_dir}}/scripts/installers/complete-snap-setup.sh",
|
||||
"{{template_dir}}/scripts/installers/powershellcore.sh"
|
||||
],
|
||||
"environment_vars": [
|
||||
"HELPER_SCRIPTS={{user `helper_script_folder`}}"
|
||||
],
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"scripts": [
|
||||
"{{template_dir}}/scripts/installers/powershellcore.sh"
|
||||
],
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"scripts": [
|
||||
@@ -204,7 +200,6 @@
|
||||
"{{template_dir}}/scripts/installers/swift.sh",
|
||||
"{{template_dir}}/scripts/installers/cmake.sh",
|
||||
"{{template_dir}}/scripts/installers/codeql-bundle.sh",
|
||||
"{{template_dir}}/scripts/installers/containers.sh",
|
||||
"{{template_dir}}/scripts/installers/dotnetcore-sdk.sh",
|
||||
"{{template_dir}}/scripts/installers/erlang.sh",
|
||||
"{{template_dir}}/scripts/installers/firefox.sh",
|
||||
@@ -295,6 +290,11 @@
|
||||
],
|
||||
"execute_command": "/bin/sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"script": "{{template_dir}}/scripts/base/snap.sh",
|
||||
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"expect_disconnect": true,
|
||||
@@ -331,7 +331,7 @@
|
||||
{
|
||||
"type": "file",
|
||||
"source": "{{user `image_folder`}}/Ubuntu-Readme.md",
|
||||
"destination": "{{template_dir}}/Ubuntu2004-README.md",
|
||||
"destination": "{{template_dir}}/Ubuntu2004-Readme.md",
|
||||
"direction": "download"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -0,0 +1,396 @@
|
||||
|
||||
variable "allowed_inbound_ip_addresses" {
|
||||
default = []
|
||||
}
|
||||
|
||||
variable "build_resource_group_name" {
|
||||
type = string
|
||||
default = "${env("BUILD_RESOURCE_GROUP_NAME")}"
|
||||
}
|
||||
|
||||
variable "capture_name_prefix" {
|
||||
type = string
|
||||
default = "packer"
|
||||
}
|
||||
|
||||
variable "client_id" {
|
||||
type = string
|
||||
default = "${env("ARM_CLIENT_ID")}"
|
||||
}
|
||||
|
||||
variable "client_secret" {
|
||||
type = string
|
||||
default = "${env("ARM_CLIENT_SECRET")}"
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "client_cert_path" {
|
||||
type = string
|
||||
default = "${env("ARM_CLIENT_CERT_PATH")}"
|
||||
}
|
||||
|
||||
variable "commit_url" {
|
||||
type = string
|
||||
default = ""
|
||||
}
|
||||
|
||||
variable "dockerhub_login" {
|
||||
type = string
|
||||
default = "${env("DOCKERHUB_LOGIN")}"
|
||||
}
|
||||
|
||||
variable "dockerhub_password" {
|
||||
type = string
|
||||
default = "${env("DOCKERHUB_PASSWORD")}"
|
||||
}
|
||||
|
||||
variable "helper_script_folder" {
|
||||
type = string
|
||||
default = "/imagegeneration/helpers"
|
||||
}
|
||||
|
||||
variable "image_folder" {
|
||||
type = string
|
||||
default = "/imagegeneration"
|
||||
}
|
||||
|
||||
variable "image_os" {
|
||||
type = string
|
||||
default = "ubuntu22"
|
||||
}
|
||||
|
||||
variable "image_repository_path" {
|
||||
type = string
|
||||
default = "${env("IMAGEREPOSITORYPATH")}"
|
||||
}
|
||||
|
||||
variable "image_version" {
|
||||
type = string
|
||||
default = "dev"
|
||||
}
|
||||
|
||||
variable "imagedata_file" {
|
||||
type = string
|
||||
default = "/imagegeneration/imagedata.json"
|
||||
}
|
||||
|
||||
variable "installer_script_folder" {
|
||||
type = string
|
||||
default = "/imagegeneration/installers"
|
||||
}
|
||||
|
||||
variable "install_password" {
|
||||
type = string
|
||||
default = ""
|
||||
}
|
||||
|
||||
variable "location" {
|
||||
type = string
|
||||
default = "${env("ARM_RESOURCE_LOCATION")}"
|
||||
}
|
||||
|
||||
variable "private_virtual_network_with_public_ip" {
|
||||
type = bool
|
||||
default = false
|
||||
}
|
||||
|
||||
variable "resource_group" {
|
||||
type = string
|
||||
default = "${env("ARM_RESOURCE_GROUP")}"
|
||||
}
|
||||
|
||||
variable "run_validation_diskspace" {
|
||||
type = bool
|
||||
default = false
|
||||
}
|
||||
|
||||
variable "storage_account" {
|
||||
type = string
|
||||
default = "${env("ARM_STORAGE_ACCOUNT")}"
|
||||
}
|
||||
|
||||
variable "subscription_id" {
|
||||
type = string
|
||||
default = "${env("ARM_SUBSCRIPTION_ID")}"
|
||||
}
|
||||
|
||||
variable "temp_resource_group_name" {
|
||||
type = string
|
||||
default = "${env("TEMP_RESOURCE_GROUP_NAME")}"
|
||||
}
|
||||
|
||||
variable "tenant_id" {
|
||||
type = string
|
||||
default = "${env("ARM_TENANT_ID")}"
|
||||
}
|
||||
|
||||
variable "virtual_network_name" {
|
||||
type = string
|
||||
default = "${env("VNET_NAME")}"
|
||||
}
|
||||
|
||||
variable "virtual_network_resource_group_name" {
|
||||
type = string
|
||||
default = "${env("VNET_RESOURCE_GROUP")}"
|
||||
}
|
||||
|
||||
variable "virtual_network_subnet_name" {
|
||||
type = string
|
||||
default = "${env("VNET_SUBNET")}"
|
||||
}
|
||||
|
||||
variable "vm_size" {
|
||||
type = string
|
||||
default = "Standard_D4s_v4"
|
||||
}
|
||||
|
||||
source "azure-arm" "build_vhd" {
|
||||
allowed_inbound_ip_addresses = "${var.allowed_inbound_ip_addresses}"
|
||||
build_resource_group_name = "${var.build_resource_group_name}"
|
||||
capture_container_name = "images"
|
||||
capture_name_prefix = "${var.capture_name_prefix}"
|
||||
client_id = "${var.client_id}"
|
||||
client_secret = "${var.client_secret}"
|
||||
client_cert_path = "${var.client_cert_path}"
|
||||
image_offer = "0001-com-ubuntu-server-jammy"
|
||||
image_publisher = "canonical"
|
||||
image_sku = "22_04-lts"
|
||||
location = "${var.location}"
|
||||
os_disk_size_gb = "86"
|
||||
os_type = "Linux"
|
||||
private_virtual_network_with_public_ip = "${var.private_virtual_network_with_public_ip}"
|
||||
resource_group_name = "${var.resource_group}"
|
||||
storage_account = "${var.storage_account}"
|
||||
subscription_id = "${var.subscription_id}"
|
||||
temp_resource_group_name = "${var.temp_resource_group_name}"
|
||||
tenant_id = "${var.tenant_id}"
|
||||
user_data_file = "${var.image_repository_path}/images/linux/scripts/base/configure-legacy-ssh.sh"
|
||||
virtual_network_name = "${var.virtual_network_name}"
|
||||
virtual_network_resource_group_name = "${var.virtual_network_resource_group_name}"
|
||||
virtual_network_subnet_name = "${var.virtual_network_subnet_name}"
|
||||
vm_size = "${var.vm_size}"
|
||||
}
|
||||
|
||||
build {
|
||||
sources = ["source.azure-arm.build_vhd"]
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
inline = ["mkdir ${var.image_folder}", "chmod 777 ${var.image_folder}"]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
script = "${path.root}/scripts/base/apt-mock.sh"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
environment_vars = ["DEBIAN_FRONTEND=noninteractive"]
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
scripts = ["${path.root}/scripts/base/repos.sh"]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
environment_vars = ["DEBIAN_FRONTEND=noninteractive"]
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
script = "${path.root}/scripts/base/apt.sh"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
script = "${path.root}/scripts/base/limits.sh"
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${var.helper_script_folder}"
|
||||
source = "${path.root}/scripts/helpers"
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${var.installer_script_folder}"
|
||||
source = "${path.root}/scripts/installers"
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${var.image_folder}"
|
||||
source = "${path.root}/post-generation"
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${var.image_folder}"
|
||||
source = "${path.root}/scripts/tests"
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${var.image_folder}"
|
||||
source = "${path.root}/scripts/SoftwareReport"
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${var.installer_script_folder}/toolset.json"
|
||||
source = "${path.root}/toolsets/toolset-2204.json"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
environment_vars = ["IMAGE_VERSION=${var.image_version}", "IMAGEDATA_FILE=${var.imagedata_file}"]
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
scripts = ["${path.root}/scripts/installers/preimagedata.sh"]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
environment_vars = ["IMAGE_VERSION=${var.image_version}", "IMAGE_OS=${var.image_os}", "HELPER_SCRIPTS=${var.helper_script_folder}"]
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
scripts = ["${path.root}/scripts/installers/configure-environment.sh"]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}"]
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
scripts = ["${path.root}/scripts/installers/complete-snap-setup.sh", "${path.root}/scripts/installers/powershellcore.sh"]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"]
|
||||
execute_command = "sudo sh -c '{{ .Vars }} pwsh -f {{ .Path }}'"
|
||||
scripts = ["${path.root}/scripts/installers/Install-PowerShellModules.ps1", "${path.root}/scripts/installers/Install-AzureModules.ps1"]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}", "DOCKERHUB_LOGIN=${var.dockerhub_login}", "DOCKERHUB_PASSWORD=${var.dockerhub_password}"]
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
scripts = ["${path.root}/scripts/installers/docker-compose.sh", "${path.root}/scripts/installers/docker-moby.sh"]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}", "DEBIAN_FRONTEND=noninteractive"]
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
scripts = [
|
||||
"${path.root}/scripts/installers/azcopy.sh",
|
||||
"${path.root}/scripts/installers/azure-cli.sh",
|
||||
"${path.root}/scripts/installers/azure-devops-cli.sh",
|
||||
"${path.root}/scripts/installers/basic.sh",
|
||||
"${path.root}/scripts/installers/bicep.sh",
|
||||
"${path.root}/scripts/installers/aliyun-cli.sh",
|
||||
"${path.root}/scripts/installers/apache.sh",
|
||||
"${path.root}/scripts/installers/aws.sh",
|
||||
"${path.root}/scripts/installers/clang.sh",
|
||||
"${path.root}/scripts/installers/cmake.sh",
|
||||
"${path.root}/scripts/installers/codeql-bundle.sh",
|
||||
"${path.root}/scripts/installers/containers.sh",
|
||||
"${path.root}/scripts/installers/dotnetcore-sdk.sh",
|
||||
"${path.root}/scripts/installers/gcc.sh",
|
||||
"${path.root}/scripts/installers/gfortran.sh",
|
||||
"${path.root}/scripts/installers/git.sh",
|
||||
"${path.root}/scripts/installers/github-cli.sh",
|
||||
"${path.root}/scripts/installers/google-chrome.sh",
|
||||
"${path.root}/scripts/installers/google-cloud-sdk.sh",
|
||||
"${path.root}/scripts/installers/haskell.sh",
|
||||
"${path.root}/scripts/installers/heroku.sh",
|
||||
"${path.root}/scripts/installers/kubernetes-tools.sh",
|
||||
"${path.root}/scripts/installers/oc.sh",
|
||||
"${path.root}/scripts/installers/miniconda.sh",
|
||||
"${path.root}/scripts/installers/mysql.sh",
|
||||
"${path.root}/scripts/installers/sqlpackage.sh",
|
||||
"${path.root}/scripts/installers/nginx.sh",
|
||||
"${path.root}/scripts/installers/nvm.sh",
|
||||
"${path.root}/scripts/installers/nodejs.sh",
|
||||
"${path.root}/scripts/installers/bazel.sh",
|
||||
"${path.root}/scripts/installers/oras-cli.sh",
|
||||
"${path.root}/scripts/installers/php.sh",
|
||||
"${path.root}/scripts/installers/postgresql.sh",
|
||||
"${path.root}/scripts/installers/pulumi.sh",
|
||||
"${path.root}/scripts/installers/ruby.sh",
|
||||
"${path.root}/scripts/installers/r.sh",
|
||||
"${path.root}/scripts/installers/rust.sh",
|
||||
"${path.root}/scripts/installers/julia.sh",
|
||||
"${path.root}/scripts/installers/sbt.sh",
|
||||
"${path.root}/scripts/installers/terraform.sh",
|
||||
"${path.root}/scripts/installers/packer.sh",
|
||||
"${path.root}/scripts/installers/vcpkg.sh",
|
||||
"${path.root}/scripts/installers/dpkg-config.sh",
|
||||
"${path.root}/scripts/installers/yq.sh",
|
||||
"${path.root}/scripts/installers/pypy.sh",
|
||||
"${path.root}/scripts/installers/python.sh",
|
||||
"${path.root}/scripts/installers/graalvm.sh"
|
||||
]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"]
|
||||
execute_command = "sudo sh -c '{{ .Vars }} pwsh -f {{ .Path }}'"
|
||||
scripts = ["${path.root}/scripts/installers/Install-Toolset.ps1", "${path.root}/scripts/installers/Configure-Toolset.ps1"]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"]
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
scripts = ["${path.root}/scripts/installers/pipx-packages.sh"]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
environment_vars = ["HELPER_SCRIPTS=${var.helper_script_folder}", "DEBIAN_FRONTEND=noninteractive", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"]
|
||||
execute_command = "/bin/sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
scripts = ["${path.root}/scripts/installers/homebrew.sh"]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
script = "${path.root}/scripts/base/snap.sh"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "/bin/sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
expect_disconnect = true
|
||||
scripts = ["${path.root}/scripts/base/reboot.sh"]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
pause_before = "1m0s"
|
||||
scripts = ["${path.root}/scripts/installers/cleanup.sh"]
|
||||
start_retry_timeout = "10m"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
script = "${path.root}/scripts/base/apt-mock-remove.sh"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
environment_vars = ["IMAGE_VERSION=${var.image_version}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}"]
|
||||
inline = ["pwsh -File ${var.image_folder}/SoftwareReport/SoftwareReport.Generator.ps1 -OutputDirectory ${var.image_folder}", "pwsh -File ${var.image_folder}/tests/RunAll-Tests.ps1 -OutputDirectory ${var.image_folder}"]
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "${path.root}/Ubuntu2204-Readme.md"
|
||||
direction = "download"
|
||||
source = "${var.image_folder}/Ubuntu-Readme.md"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
environment_vars = ["HELPER_SCRIPT_FOLDER=${var.helper_script_folder}", "INSTALLER_SCRIPT_FOLDER=${var.installer_script_folder}", "IMAGE_FOLDER=${var.image_folder}"]
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
scripts = ["${path.root}/scripts/installers/post-deployment.sh"]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
environment_vars = ["RUN_VALIDATION=${var.run_validation_diskspace}"]
|
||||
scripts = ["${path.root}/scripts/installers/validate-disk-space.sh"]
|
||||
}
|
||||
|
||||
provisioner "file" {
|
||||
destination = "/tmp/"
|
||||
source = "${path.root}/config/ubuntu2204.conf"
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
inline = ["mkdir -p /etc/vsts", "cp /tmp/ubuntu2204.conf /etc/vsts/machine_instance.conf"]
|
||||
}
|
||||
|
||||
provisioner "shell" {
|
||||
execute_command = "sudo sh -c '{{ .Vars }} {{ .Path }}'"
|
||||
inline = ["sleep 30", "/usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync"]
|
||||
}
|
||||
|
||||
}
|
||||
@@ -34,14 +34,10 @@ function Get-OSVersion {
|
||||
return [PSCustomObject]@{
|
||||
Version = $osVersion.Version
|
||||
Platform = $osVersion.Platform
|
||||
IsMojave = $osVersionMajorMinor -eq "10.14"
|
||||
IsCatalina = $osVersionMajorMinor -eq "10.15"
|
||||
IsBigSur = $osVersionMajorMinor -eq "11.0"
|
||||
IsMonterey = $osMontereyVersion.Major -eq "12"
|
||||
IsLessThanCatalina = [SemVer]$osVersion.Version -lt "10.15"
|
||||
IsLessThanBigSur = [SemVer]$osVersion.Version -lt "11.0"
|
||||
IsLessThanMonterey = $osMontereyVersion -lt "12.0"
|
||||
IsHigherThanMojave = [SemVer]$osVersion.Version -ge "10.15"
|
||||
IsHigherThanCatalina = [SemVer]$osVersion.Version -ge "11.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,6 +175,17 @@ function Build-XcodeSymlinks {
|
||||
}
|
||||
}
|
||||
|
||||
function Rebuild-XcodeLaunchServicesDb {
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
[string]$Version
|
||||
)
|
||||
|
||||
$xcodePath = Get-XcodeRootPath -Version $Version
|
||||
$lsregister = '/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister'
|
||||
Get-ChildItem -Recurse -Filter "*.app" $xcodePath | Foreach-Object { & $lsregister -f $_.FullName}
|
||||
}
|
||||
|
||||
function Build-ProvisionatorSymlink {
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
@@ -216,4 +227,4 @@ function Set-XcodeDeveloperDirEnvironmentVariables {
|
||||
Write-Host "Set ${variableName}=${variableValue}"
|
||||
"export ${variableName}=${variableValue}" | Out-File "$env:HOME/.bashrc" -Append
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,379 +0,0 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[macOS] Xcode 12.5 will be removed from Big Sur on October, 18](https://github.com/actions/virtual-environments/issues/4183) |
|
||||
| [[macOS] Default Xcode on Big Sur image will be set to Xcode 13.0 on October, 18](https://github.com/actions/virtual-environments/issues/4180) |
|
||||
| [macOS-latest workflows will use macOS-11](https://github.com/actions/virtual-environments/issues/4060) |
|
||||
***
|
||||
# macOS 10.14 info
|
||||
- System Version: macOS 10.14.6 (18G9323)
|
||||
- Kernel Version: Darwin 18.7.0
|
||||
- Image Version: 20211016.1
|
||||
|
||||
## Installed Software
|
||||
### Language and Runtime
|
||||
- .NET SDK 2.1.302 2.1.403 2.1.507
|
||||
- Bash 3.2.57(1)-release
|
||||
- Clang/LLVM 11.0.0 is default
|
||||
- Clang/LLVM 13.0.0 is available on `'$(brew --prefix llvm)/bin/clang'`
|
||||
- gcc-9 (Homebrew GCC 9.4.0) 9.4.0 - available by `gcc-9` alias
|
||||
- gcc-10 (Homebrew GCC 10.3.0) 10.3.0 - available by `gcc-10` alias
|
||||
- gcc-11 (Homebrew GCC 11.2.0) 11.2.0 - available by `gcc-11` alias
|
||||
- GNU Fortran (Homebrew GCC 9.4.0) 9.4.0 - available by `gfortran-9` alias
|
||||
- GNU Fortran (Homebrew GCC 10.3.0) 10.3.0 - available by `gfortran-10` alias
|
||||
- GNU Fortran (Homebrew GCC 11.2.0) 11.2.0 - available by `gfortran-11` alias
|
||||
- Go 1.15.15
|
||||
- julia 1.6.3
|
||||
- Kotlin 1.5.31-release-548
|
||||
- MSBuild 15.7.224.30163 (from /Library/Frameworks/Mono.framework/Versions/5.12.0/lib/mono/msbuild/15.0/bin/MSBuild.dll)
|
||||
- Node.js v8.17.0
|
||||
- NVM 0.39.0
|
||||
- NVM - Cached node versions: v10.24.1 v12.22.7 v14.18.1
|
||||
- Perl 5.34.0
|
||||
- PHP 8.0.11
|
||||
- Python 2.7.18
|
||||
- Python 3.9.7
|
||||
- R 4.1.1
|
||||
- Ruby 2.7.4p191
|
||||
|
||||
### Package Management
|
||||
- Bundler version 2.2.29
|
||||
- Carthage 0.38.0
|
||||
- CocoaPods 1.11.2
|
||||
- Composer 2.1.9
|
||||
- Homebrew 3.2.16
|
||||
- Miniconda 4.10.3
|
||||
- NPM 3.10.10
|
||||
- NuGet 4.7.0.5148
|
||||
- Pip 20.3.4 (python 2.7)
|
||||
- Pip 21.2.4 (python 3.9)
|
||||
- Pipx 0.16.4
|
||||
- RubyGems 3.2.29
|
||||
- Yarn 1.22.15
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| ----------------------- | -------------------- |
|
||||
| CONDA | /usr/local/miniconda |
|
||||
| VCPKG_INSTALLATION_ROOT | |
|
||||
|
||||
### Project Management
|
||||
- Apache Ant(TM) 1.10.11
|
||||
- Apache Maven 3.8.3
|
||||
- Gradle 7.2
|
||||
- Sbt 1.5.5
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.04
|
||||
- aria2 1.36.0
|
||||
- azcopy 10.12.2
|
||||
- bazel 3.7.1
|
||||
- bazelisk 1.10.1
|
||||
- bsdtar 2.8.3 - available by 'tar' alias
|
||||
- Curl 7.79.1
|
||||
- Git LFS: 3.0.1
|
||||
- Git: 2.33.1
|
||||
- GitHub CLI: 2.1.0
|
||||
- GNU parallel 20210922
|
||||
- GNU Tar 1.34 - available by 'gtar' alias
|
||||
- GNU Wget 1.21.2
|
||||
- gpg (GnuPG) 2.3.2
|
||||
- helm v3.7.1+g1d11fcb
|
||||
- Hub CLI: 2.14.2
|
||||
- jq 1.6
|
||||
- mongo v5.0.3
|
||||
- mongod v5.0.3
|
||||
- OpenSSL 1.1.1l 24 Aug 2021 `(/usr/local/opt/openssl@1.1 -> /usr/local/Cellar/openssl@1.1/1.1.1l_1)`
|
||||
- Packer 1.7.6
|
||||
- PostgreSQL 14.0
|
||||
- psql (PostgreSQL) 14.0
|
||||
- Sox 14.4.2
|
||||
- Subversion (SVN) 1.14.1
|
||||
- Switchaudio-osx 1.1.0
|
||||
- Vagrant 2.2.18
|
||||
- virtualbox 6.1.26r145957
|
||||
- zstd 1.5.0
|
||||
|
||||
|
||||
### Tools
|
||||
- Aliyun CLI 3.0.94
|
||||
- App Center CLI 1.2.2
|
||||
- AWS CLI 2.2.46
|
||||
- AWS SAM CLI 1.33.0
|
||||
- AWS Session Manager CLI 1.2.245.0
|
||||
- Azure CLI 2.29.0
|
||||
- Bicep CLI 0.4.1008
|
||||
- Cabal 3.4.1.0
|
||||
- Cmake 3.21.3
|
||||
- Fastlane 2.196.0
|
||||
- GHC 9.0.1
|
||||
- GHCup 0.1.17.2
|
||||
- Stack 2.7.3
|
||||
- SwiftFormat 0.48.16
|
||||
- Swig 4.0.2
|
||||
- Xcode Command Line Tools 10.3.0.0.1.1562985497
|
||||
|
||||
### Linters
|
||||
- SwiftLint 0.44.0
|
||||
- yamllint 1.26.3
|
||||
|
||||
### Browsers
|
||||
- Safari 14.1.2 (14611.3.10.1.5)
|
||||
- SafariDriver 14.1.2 (14611.3.10.1.5)
|
||||
- Google Chrome 94.0.4606.81
|
||||
- ChromeDriver 94.0.4606.61
|
||||
- Microsoft Edge 94.0.992.50
|
||||
- MSEdgeDriver 94.0.992.50
|
||||
- Mozilla Firefox 93.0
|
||||
- geckodriver 0.30.0
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| --------------- | --------------------------------------------- |
|
||||
| CHROMEWEBDRIVER | /usr/local/Caskroom/chromedriver/94.0.4606.61 |
|
||||
| EDGEWEBDRIVER | /usr/local/share/edge_driver |
|
||||
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
|
||||
|
||||
### Java
|
||||
| Version | Vendor | Environment Variable |
|
||||
| ------------------- | --------------- | -------------------- |
|
||||
| 8.0.302+8 (default) | Eclipse Temurin | JAVA_HOME_8_X64 |
|
||||
| 11.0.12+7 | Eclipse Temurin | JAVA_HOME_11_X64 |
|
||||
| 12.0.2+10.3 | Adopt OpenJDK | JAVA_HOME_12_X64 |
|
||||
| 13.0.2+8.1 | Adopt OpenJDK | JAVA_HOME_13_X64 |
|
||||
| 14.0.2+12 | Adopt OpenJDK | JAVA_HOME_14_X64 |
|
||||
| 17.0.0+35 | Eclipse Temurin | JAVA_HOME_17_X64 |
|
||||
|
||||
### Cached Tools
|
||||
#### Ruby
|
||||
- 2.4.10
|
||||
- 2.5.9
|
||||
- 2.6.8
|
||||
- 2.7.4
|
||||
- 3.0.2
|
||||
|
||||
#### Python
|
||||
- 2.7.18
|
||||
- 3.5.10
|
||||
- 3.6.15
|
||||
- 3.7.12
|
||||
- 3.8.12
|
||||
- 3.9.7
|
||||
- 3.10.0
|
||||
|
||||
#### PyPy
|
||||
- 2.7.18 [PyPy 7.3.5]
|
||||
- 3.6.12 [PyPy 7.3.3]
|
||||
|
||||
#### Node.js
|
||||
- 10.24.1
|
||||
- 12.22.7
|
||||
- 14.18.1
|
||||
|
||||
#### Go
|
||||
| Version | Architecture | Environment Variable |
|
||||
| ------- | ------------ | -------------------- |
|
||||
| 1.13.15 | x64 | GOROOT_1_13_X64 |
|
||||
| 1.14.15 | x64 | GOROOT_1_14_X64 |
|
||||
| 1.15.15 (Default) | x64 | GOROOT_1_15_X64 |
|
||||
| 1.16.9 | x64 | GOROOT_1_16_X64 |
|
||||
| 1.17.2 | x64 | GOROOT_1_17_X64 |
|
||||
### Rust Tools
|
||||
- Cargo 1.55.0
|
||||
- Rust 1.55.0
|
||||
- Rustdoc 1.55.0
|
||||
- Rustup 1.24.3
|
||||
|
||||
#### Packages
|
||||
- Bindgen 0.59.1
|
||||
- Cargo-audit 0.15.2
|
||||
- Cargo-outdated v0.9.17
|
||||
- Cbindgen 0.20.0
|
||||
- Clippy 0.1.55
|
||||
- Rustfmt 1.4.37-stable
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.1.5
|
||||
|
||||
#### PowerShell Modules
|
||||
| Module | Version |
|
||||
| ---------------- | ------- |
|
||||
| Az | 6.1.0 |
|
||||
| MarkdownPS | 1.9 |
|
||||
| Pester | 5.3.1 |
|
||||
| PSScriptAnalyzer | 1.20.0 |
|
||||
|
||||
### Xamarin
|
||||
#### Visual Studio for Mac
|
||||
- 8.5.0.3183
|
||||
|
||||
#### Xamarin bundles
|
||||
| symlink | Xamarin.Mono | Xamarin.iOS | Xamarin.Mac | Xamarin.Android |
|
||||
| ---------------- | ------------ | ----------- | ----------- | --------------- |
|
||||
| 6_8_0 | 6.8 | 13.14 | 6.14 | 10.2 |
|
||||
| 6_6_1 | 6.6 | 13.10 | 6.10 | 10.1 |
|
||||
| 6_6_0 | 6.6 | 13.8 | 6.8 | 10.1 |
|
||||
| 6_4_2 | 6.4 | 13.6 | 6.6 | 10.0 |
|
||||
| 6_4_1 | 6.4 | 13.4 | 6.4 | 10.0 |
|
||||
| 6_4_0 | 6.4 | 13.2 | 6.2 | 10.0 |
|
||||
| 6_0_0 | 6.0 | 12.14 | 5.16 | 9.4 |
|
||||
| 5_18_3 | 5.18 | 12.10 | 5.10 | 9.3 |
|
||||
| 5_18_2 | 5.18 | 12.8 | 5.8 | 9.2 |
|
||||
| 5_18_1 | 5.18 | 12.6 | 5.6 | 9.2 |
|
||||
| 5_16_0_0 | 5.16 | 12.2 | 5.2 | 9.1 |
|
||||
| 5_16_0 | 5.16 | 12.2 | 5.2 | 9.1 |
|
||||
| 5_12_0_3 | 5.12 | 12.2 | 5.3 | 9.0 |
|
||||
| 5_12_0_XC10_PRE | 5.12 | 12.0 | 5.2 | 9.0 |
|
||||
| 5_12_0 (default) | 5.12 | 11.14 | 4.6 | 9.0 |
|
||||
| 5_10_1 | 5.10 | 11.12 | 4.4 | 8.3 |
|
||||
| 5_8_1 | 5.8 | 11.9 | 4.2 | 8.2 |
|
||||
| 5_8_0 | 5.8 | 11.8 | 4.2 | 8.2 |
|
||||
| 5_4_1 | 5.4 | 11.6 | 4.0 | 8.1 |
|
||||
| 5_4_0 | 5.4 | 11.2 | 3.8 | 8.0 |
|
||||
| 5_2_0 | 5.2 | 11.0 | 3.6 | 7.4 |
|
||||
| Legacy_5_0_1 | 5.0 | 10.10 | 3.4 | 7.3 |
|
||||
| Legacy_4_8_1 | 4.8 | 10.6 | 3.0 | 7.1 |
|
||||
|
||||
#### Unit Test Framework
|
||||
- NUnit 3.6.1
|
||||
|
||||
### Xcode
|
||||
| Version | Build | Path |
|
||||
| ---------------- | ------- | ------------------------------ |
|
||||
| 11.3.1 (default) | 11C505 | /Applications/Xcode_11.3.1.app |
|
||||
| 11.3 | 11C29 | /Applications/Xcode_11.3.app |
|
||||
| 11.2.1 | 11B500 | /Applications/Xcode_11.2.1.app |
|
||||
| 11.2 | 11B52 | /Applications/Xcode_11.2.app |
|
||||
| 11.1 | 11A1027 | /Applications/Xcode_11.1.app |
|
||||
| 11.0 | 11A420a | /Applications/Xcode_11.app |
|
||||
| 10.3 | 10G8 | /Applications/Xcode_10.3.app |
|
||||
| 10.2.1 | 10E1001 | /Applications/Xcode_10.2.1.app |
|
||||
| 10.2 | 10E125 | /Applications/Xcode_10.2.app |
|
||||
| 10.1 | 10B61 | /Applications/Xcode_10.1.app |
|
||||
| 10.0 | 10A255 | /Applications/Xcode_10.app |
|
||||
| 9.4.1 | 9F2000 | /Applications/Xcode_9.4.1.app |
|
||||
|
||||
#### Xcode Support Tools
|
||||
- xcpretty 0.3.0
|
||||
- xcversion 2.8.0
|
||||
- Nomad CLI 0.0.2
|
||||
- Nomad shenzhen CLI 0.14.3
|
||||
- xctool 0.3.7
|
||||
|
||||
#### Installed SDKs
|
||||
| SDK | SDK Name | Xcode Version |
|
||||
| ----------------------- | -------------------- | -------------------------------------- |
|
||||
| macOS 10.13 | macosx10.13 | 9.4.1 |
|
||||
| macOS 10.14 | macosx10.14 | 10.0, 10.1, 10.2, 10.2.1, 10.3 |
|
||||
| macOS 10.15 | macosx10.15 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1 |
|
||||
| iOS 11.4 | iphoneos11.4 | 9.4.1 |
|
||||
| iOS 12.0 | iphoneos12.0 | 10.0 |
|
||||
| iOS 12.1 | iphoneos12.1 | 10.1 |
|
||||
| iOS 12.2 | iphoneos12.2 | 10.2, 10.2.1 |
|
||||
| iOS 12.4 | iphoneos12.4 | 10.3 |
|
||||
| iOS 13.0 | iphoneos13.0 | 11.0 |
|
||||
| iOS 13.1 | iphoneos13.1 | 11.1 |
|
||||
| iOS 13.2 | iphoneos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
|
||||
| Simulator - iOS 11.4 | iphonesimulator11.4 | 9.4.1 |
|
||||
| Simulator - iOS 12.0 | iphonesimulator12.0 | 10.0 |
|
||||
| Simulator - iOS 12.1 | iphonesimulator12.1 | 10.1 |
|
||||
| Simulator - iOS 12.2 | iphonesimulator12.2 | 10.2, 10.2.1 |
|
||||
| Simulator - iOS 12.4 | iphonesimulator12.4 | 10.3 |
|
||||
| Simulator - iOS 13.0 | iphonesimulator13.0 | 11.0 |
|
||||
| Simulator - iOS 13.1 | iphonesimulator13.1 | 11.1 |
|
||||
| Simulator - iOS 13.2 | iphonesimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
|
||||
| tvOS 11.4 | appletvos11.4 | 9.4.1 |
|
||||
| tvOS 12.0 | appletvos12.0 | 10.0 |
|
||||
| tvOS 12.1 | appletvos12.1 | 10.1 |
|
||||
| tvOS 12.2 | appletvos12.2 | 10.2, 10.2.1 |
|
||||
| tvOS 12.4 | appletvos12.4 | 10.3 |
|
||||
| tvOS 13.0 | appletvos13.0 | 11.0, 11.1 |
|
||||
| tvOS 13.2 | appletvos13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
|
||||
| Simulator - tvOS 11.4 | appletvsimulator11.4 | 9.4.1 |
|
||||
| Simulator - tvOS 12.0 | appletvsimulator12.0 | 10.0 |
|
||||
| Simulator - tvOS 12.1 | appletvsimulator12.1 | 10.1 |
|
||||
| Simulator - tvOS 12.2 | appletvsimulator12.2 | 10.2, 10.2.1 |
|
||||
| Simulator - tvOS 12.4 | appletvsimulator12.4 | 10.3 |
|
||||
| Simulator - tvOS 13.0 | appletvsimulator13.0 | 11.0, 11.1 |
|
||||
| Simulator - tvOS 13.2 | appletvsimulator13.2 | 11.2, 11.2.1, 11.3, 11.3.1 |
|
||||
| watchOS 4.3 | watchos4.3 | 9.4.1 |
|
||||
| watchOS 5.0 | watchos5.0 | 10.0 |
|
||||
| watchOS 5.1 | watchos5.1 | 10.1 |
|
||||
| watchOS 5.2 | watchos5.2 | 10.2, 10.2.1 |
|
||||
| watchOS 5.3 | watchos5.3 | 10.3 |
|
||||
| watchOS 6.0 | watchos6.0 | 11.0, 11.1 |
|
||||
| watchOS 6.1 | watchos6.1 | 11.2, 11.2.1, 11.3, 11.3.1 |
|
||||
| Simulator - watchOS 4.3 | watchsimulator4.3 | 9.4.1 |
|
||||
| Simulator - watchOS 5.0 | watchsimulator5.0 | 10.0 |
|
||||
| Simulator - watchOS 5.1 | watchsimulator5.1 | 10.1 |
|
||||
| Simulator - watchOS 5.2 | watchsimulator5.2 | 10.2, 10.2.1 |
|
||||
| Simulator - watchOS 5.3 | watchsimulator5.3 | 10.3 |
|
||||
| Simulator - watchOS 6.0 | watchsimulator6.0 | 11.0, 11.1 |
|
||||
| Simulator - watchOS 6.1 | watchsimulator6.1 | 11.2, 11.2.1, 11.3, 11.3.1 |
|
||||
| DriverKit 19.0 | driverkit.macosx19.0 | 11.0, 11.1, 11.2, 11.2.1, 11.3, 11.3.1 |
|
||||
|
||||
#### Installed Simulators
|
||||
| OS | Xcode Version | Simulators |
|
||||
| ----------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 8.4 | 9.4.1<br>10.0<br>10.1<br>10.2<br>10.2.1<br>10.3<br>11.0<br>11.1<br>11.2<br>11.2.1<br>11.3<br>11.3.1 | iPhone 4s<br>iPhone 5<br>iPhone 5s<br>iPhone 6<br>iPhone 6 Plus<br>iPad 2<br>iPad Air<br>iPad Retina |
|
||||
| iOS 9.0 | 9.4.1<br>10.0<br>10.1<br>10.2<br>10.2.1<br>10.3<br>11.0<br>11.1<br>11.2<br>11.2.1<br>11.3<br>11.3.1 | iPhone 4s<br>iPhone 5<br>iPhone 5s<br>iPhone 6<br>iPhone 6 Plus<br>iPhone 6s<br>iPhone 6s Plus<br>iPad 2<br>iPad Air<br>iPad Air 2<br>iPad Retina |
|
||||
| iOS 9.1 | 9.4.1<br>10.0<br>10.1<br>10.2<br>10.2.1<br>10.3<br>11.0<br>11.1<br>11.2<br>11.2.1<br>11.3<br>11.3.1 | iPhone 4s<br>iPhone 5<br>iPhone 5s<br>iPhone 6<br>iPhone 6 Plus<br>iPhone 6s<br>iPhone 6s Plus<br>iPad 2<br>iPad Air<br>iPad Air 2<br>iPad Pro<br>iPad Retina |
|
||||
| iOS 9.2 | 9.4.1<br>10.0<br>10.1<br>10.2<br>10.2.1<br>10.3<br>11.0<br>11.1<br>11.2<br>11.2.1<br>11.3<br>11.3.1 | iPhone 4s<br>iPhone 5<br>iPhone 5s<br>iPhone 6<br>iPhone 6 Plus<br>iPhone 6s<br>iPhone 6s Plus<br>iPad 2<br>iPad Air<br>iPad Air 2<br>iPad Pro<br>iPad Retina |
|
||||
| iOS 9.3 | 9.4.1<br>10.0<br>10.1<br>10.2<br>10.2.1<br>10.3<br>11.0<br>11.1<br>11.2<br>11.2.1<br>11.3<br>11.3.1 | iPhone 4s<br>iPhone 5<br>iPhone 5s<br>iPhone 6<br>iPhone 6 Plus<br>iPhone 6s<br>iPhone 6s Plus<br>iPad 2<br>iPad Air<br>iPad Air 2<br>iPad Pro<br>iPad Retina |
|
||||
| iOS 10.0 | 9.4.1<br>10.0<br>10.1<br>10.2<br>10.2.1<br>10.3<br>11.0<br>11.1<br>11.2<br>11.2.1<br>11.3<br>11.3.1 | iPhone 5<br>iPhone 5s<br>iPhone 6<br>iPhone 6 Plus<br>iPhone 6s<br>iPhone 6s Plus<br>iPhone SE<br>iPad Air<br>iPad Air 2<br>iPad Pro (12.9 inch)<br>iPad Pro (9.7 inch) |
|
||||
| iOS 10.1 | 9.4.1<br>10.0<br>10.1<br>10.2<br>10.2.1<br>10.3<br>11.0<br>11.1<br>11.2<br>11.2.1<br>11.3<br>11.3.1 | iPhone 5<br>iPhone 5s<br>iPhone 6<br>iPhone 6 Plus<br>iPhone 6s<br>iPhone 6s Plus<br>iPhone 7<br>iPhone 7 Plus<br>iPhone SE<br>iPad Air<br>iPad Air 2<br>iPad Pro (12.9 inch)<br>iPad Pro (9.7 inch) |
|
||||
| iOS 10.2 | 9.4.1<br>10.0<br>10.1<br>10.2<br>10.2.1<br>10.3<br>11.0<br>11.1<br>11.2<br>11.2.1<br>11.3<br>11.3.1 | iPhone 5<br>iPhone 5s<br>iPhone 6<br>iPhone 6 Plus<br>iPhone 6s<br>iPhone 6s Plus<br>iPhone 7<br>iPhone 7 Plus<br>iPhone SE<br>iPad Air<br>iPad Air 2<br>iPad Pro (12.9 inch)<br>iPad Pro (9.7 inch) |
|
||||
| iOS 10.3 | 9.4.1<br>10.0<br>10.1<br>10.2<br>10.2.1<br>10.3<br>11.0<br>11.1<br>11.2<br>11.2.1<br>11.3<br>11.3.1 | iPhone 5<br>iPhone 5s<br>iPhone 6<br>iPhone 6 Plus<br>iPhone 6s<br>iPhone 6s Plus<br>iPhone 7<br>iPhone 7 Plus<br>iPhone SE<br>iPad (5th generation)<br>iPad Air<br>iPad Air 2<br>iPad Pro (10.5-inch)<br>iPad Pro (12.9 inch)<br>iPad Pro (12.9-inch) (2nd generation)<br>iPad Pro (9.7 inch) |
|
||||
| iOS 11.4 | 9.4.1 | iPhone 5s<br>iPhone 6<br>iPhone 6 Plus<br>iPhone 6s<br>iPhone 6s Plus<br>iPhone 7<br>iPhone 7 Plus<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE<br>iPhone X<br>iPad (5th generation)<br>iPad Air<br>iPad Air 2<br>iPad Pro (10.5-inch)<br>iPad Pro (12.9-inch)<br>iPad Pro (12.9-inch) (2nd generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 12.0 | 10.0 | iPhone 5s<br>iPhone 6<br>iPhone 6 Plus<br>iPhone 6s<br>iPhone 6s Plus<br>iPhone 7<br>iPhone 7 Plus<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE<br>iPhone X<br>iPhone XR<br>iPhone XS<br>iPhone XS Max<br>iPad (5th generation)<br>iPad (6th generation)<br>iPad Air<br>iPad Air 2<br>iPad Pro (10.5-inch)<br>iPad Pro (12.9-inch)<br>iPad Pro (12.9-inch) (2nd generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 12.1 | 10.1 | iPhone 5s<br>iPhone 6<br>iPhone 6 Plus<br>iPhone 6s<br>iPhone 6s Plus<br>iPhone 7<br>iPhone 7 Plus<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE<br>iPhone X<br>iPhone XR<br>iPhone XS<br>iPhone XS Max<br>iPad (5th generation)<br>iPad (6th generation)<br>iPad Air<br>iPad Air 2<br>iPad Pro (10.5-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch)<br>iPad Pro (12.9-inch) (2nd generation)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 12.2 | 10.2<br>10.2.1 | iPhone 5s<br>iPhone 6<br>iPhone 6 Plus<br>iPhone 6s<br>iPhone 6s Plus<br>iPhone 7<br>iPhone 7 Plus<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE<br>iPhone X<br>iPhone XR<br>iPhone Xs<br>iPhone Xs Max<br>iPad (5th generation)<br>iPad (6th generation)<br>iPad Air<br>iPad Air (3rd generation)<br>iPad Air 2<br>iPad Pro (10.5-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch)<br>iPad Pro (12.9-inch) (2nd generation)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 12.4 | 10.3 | iPhone 5s<br>iPhone 6<br>iPhone 6 Plus<br>iPhone 6s<br>iPhone 6s Plus<br>iPhone 7<br>iPhone 7 Plus<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE<br>iPhone X<br>iPhone XR<br>iPhone Xs<br>iPhone Xs Max<br>iPad (5th generation)<br>iPad (6th generation)<br>iPad Air<br>iPad Air (3rd generation)<br>iPad Air 2<br>iPad Pro (10.5-inch)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch)<br>iPad Pro (12.9-inch) (2nd generation)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 13.0 | 11.0 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPad Air (3rd generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 13.1 | 11.1 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPad Air (3rd generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 13.2 | 11.2<br>11.2.1 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 13.3 | 11.3<br>11.3.1 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch)<br>iPad Pro (12.9-inch) (3rd generation)<br>iPad Pro (9.7-inch) |
|
||||
| tvOS 11.4 | 9.4.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 12.0 | 10.0 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 12.1 | 10.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 12.2 | 10.2<br>10.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 12.4 | 10.3 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 13.0 | 11.0<br>11.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 13.2 | 11.2<br>11.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 13.3 | 11.3<br>11.3.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| watchOS 4.3 | 9.4.1 | Apple Watch - 38mm<br>Apple Watch - 42mm<br>Apple Watch Series 2 - 38mm<br>Apple Watch Series 2 - 42mm<br>Apple Watch Series 3 - 38mm<br>Apple Watch Series 3 - 42mm |
|
||||
| watchOS 5.0 | 10.0 | Apple Watch Series 2 - 38mm<br>Apple Watch Series 2 - 42mm<br>Apple Watch Series 3 - 38mm<br>Apple Watch Series 3 - 42mm<br>Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm |
|
||||
| watchOS 5.1 | 10.1 | Apple Watch Series 2 - 38mm<br>Apple Watch Series 2 - 42mm<br>Apple Watch Series 3 - 38mm<br>Apple Watch Series 3 - 42mm<br>Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm |
|
||||
| watchOS 5.2 | 10.2<br>10.2.1 | Apple Watch Series 2 - 38mm<br>Apple Watch Series 2 - 42mm<br>Apple Watch Series 3 - 38mm<br>Apple Watch Series 3 - 42mm<br>Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm |
|
||||
| watchOS 5.3 | 10.3 | Apple Watch Series 2 - 38mm<br>Apple Watch Series 2 - 42mm<br>Apple Watch Series 3 - 38mm<br>Apple Watch Series 3 - 42mm<br>Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm |
|
||||
| watchOS 6.0 | 11.0<br>11.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
||||
| watchOS 6.1 | 11.2<br>11.2.1<br>11.3<br>11.3.1 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
||||
|
||||
### Android
|
||||
| Package Name | Version |
|
||||
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 4.0 |
|
||||
| Android Emulator | 30.8.4 |
|
||||
| Android SDK Build-tools | 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<br>26.0.0 26.0.1 26.0.2 26.0.3<br>25.0.0 25.0.1 25.0.2 25.0.3<br>24.0.0 24.0.1 24.0.2 24.0.3<br>23.0.1 23.0.2 23.0.3<br>22.0.1<br>21.1.2<br>20.0.0<br>19.1.0 |
|
||||
| Android SDK Platforms | android-31 (rev 1)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3)<br>android-26 (rev 2)<br>android-25 (rev 3)<br>android-24 (rev 2)<br>android-23 (rev 3)<br>android-22 (rev 2)<br>android-21 (rev 2)<br>android-20 (rev 2)<br>android-19 (rev 4)<br>android-18 (rev 3)<br>android-17 (rev 3)<br>android-16 (rev 5)<br>android-15 (rev 5) |
|
||||
| Android SDK Platform-Tools | 31.0.3 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.10.2<br>3.18.1 |
|
||||
| Google APIs | addon-google_apis-google-21<br>addon-google_apis-google-22<br>addon-google_apis-google-23<br>addon-google_apis-google-24 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 15.2.4203891<br>18.1.5063045<br>21.4.7075529 (default)<br>22.1.7171670<br>23.0.7599858 |
|
||||
| SDK Patch Applier v4 | 1 |
|
||||
| Intel HAXM | 7.6.5 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| ----------------------- | -------------------------------------------------------------------------------------------------- |
|
||||
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
|
||||
| ANDROID_NDK_18R_PATH | /Users/runner/Library/Android/sdk/ndk/18.1.5063045 |
|
||||
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/21.4.7075529 |
|
||||
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/23.0.7599858 |
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/21.4.7075529 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
|
||||
|
||||
+148
-137
@@ -1,57 +1,54 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[all OSs] Default Nodejs version will be set to 16 on November, 29](https://github.com/actions/virtual-environments/issues/4446) |
|
||||
| [[all OSs] Selenium server version will be upgraded from 3 to 4 on November, 15](https://github.com/actions/virtual-environments/issues/4376) |
|
||||
| [[All OSs] Node.js version 10 will be removed from the images on November, 15](https://github.com/actions/virtual-environments/issues/4356) |
|
||||
| [[macOS Big Sur] Xcode 13 beta will be removed and Xcode 13.1 set as default on November, 15](https://github.com/actions/virtual-environments/issues/4355) |
|
||||
| [macOS-latest workflows will use macOS-11](https://github.com/actions/virtual-environments/issues/4060) |
|
||||
| [[macOS] Xcode versions 13.2 & 13.3 will be removed, 13.3.1 will be set as the default one on May, 16](https://github.com/actions/virtual-environments/issues/5463) |
|
||||
| [macOS 12 (Monterey) is available as a public beta in GitHub Actions and Azure DevOps](https://github.com/actions/virtual-environments/issues/5446) |
|
||||
***
|
||||
# macOS 10.15 info
|
||||
- System Version: macOS 10.15.7 (19H1519)
|
||||
- System Version: macOS 10.15.7 (19H1824)
|
||||
- Kernel Version: Darwin 19.6.0
|
||||
- Image Version: 20211120.1
|
||||
- Image Version: 20220515.1
|
||||
|
||||
## Installed Software
|
||||
### Language and Runtime
|
||||
- .NET SDK 2.1.302 2.1.403 2.1.507 2.1.607 2.1.701 2.1.818 3.1.101 3.1.201 3.1.302 3.1.415 5.0.102 5.0.202 5.0.302 5.0.403
|
||||
- .NET SDK 3.1.101 3.1.201 3.1.302 3.1.419 5.0.102 5.0.202 5.0.302 5.0.408
|
||||
- Bash 3.2.57(1)-release
|
||||
- Clang/LLVM 12.0.0 is default
|
||||
- Clang/LLVM 13.0.0 is available on `'$(brew --prefix llvm)/bin/clang'`
|
||||
- Clang/LLVM 13.0.1 is available on `'$(brew --prefix llvm)/bin/clang'`
|
||||
- gcc-9 (Homebrew GCC 9.4.0) 9.4.0 - available by `gcc-9` alias
|
||||
- gcc-10 (Homebrew GCC 10.3.0) 10.3.0 - available by `gcc-10` alias
|
||||
- gcc-11 (Homebrew GCC 11.2.0_2) 11.2.0 - available by `gcc-11` alias
|
||||
- gcc-11 (Homebrew GCC 11.3.0) 11.3.0 - available by `gcc-11` alias
|
||||
- GNU Fortran (Homebrew GCC 9.4.0) 9.4.0 - available by `gfortran-9` alias
|
||||
- GNU Fortran (Homebrew GCC 10.3.0) 10.3.0 - available by `gfortran-10` alias
|
||||
- GNU Fortran (Homebrew GCC 11.2.0_2) 11.2.0 - available by `gfortran-11` alias
|
||||
- Go 1.15.15
|
||||
- julia 1.6.4
|
||||
- Kotlin 1.6.0-release-798
|
||||
- MSBuild 16.9.0.22901 (from /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/15.0/bin/MSBuild.dll)
|
||||
- Node.js v14.18.1
|
||||
- NVM 0.39.0
|
||||
- NVM - Cached node versions: v12.22.7 v14.18.1 v16.13.0
|
||||
- GNU Fortran (Homebrew GCC 11.3.0) 11.3.0 - available by `gfortran-11` alias
|
||||
- Go 1.17.10
|
||||
- julia 1.7.2
|
||||
- Kotlin 1.6.21-release-334
|
||||
- MSBuild 16.10.1.58001 (from /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/15.0/bin/MSBuild.dll)
|
||||
- Node.js v16.15.0
|
||||
- NVM 0.39.1
|
||||
- NVM - Cached node versions: v12.22.12 v14.19.2 v16.15.0
|
||||
- Perl 5.34.0
|
||||
- PHP 8.0.13
|
||||
- PHP 8.1.6
|
||||
- Python 2.7.18
|
||||
- Python 3.9.8
|
||||
- R 4.1.2
|
||||
- Ruby 2.7.4p191
|
||||
- Python 3.9.12
|
||||
- R 4.2.0
|
||||
- Ruby 2.7.6p219
|
||||
|
||||
### Package Management
|
||||
- Bundler version 2.2.31
|
||||
- Bundler version 2.3.13
|
||||
- Carthage 0.38.0
|
||||
- CocoaPods 1.11.2
|
||||
- Composer 2.1.12
|
||||
- Homebrew 3.3.4
|
||||
- Miniconda 4.10.3
|
||||
- NPM 6.14.15
|
||||
- CocoaPods 1.11.3
|
||||
- Composer 2.3.5
|
||||
- Homebrew 3.4.11
|
||||
- Miniconda 4.11.0
|
||||
- NPM 8.5.5
|
||||
- NuGet 5.9.0.7134
|
||||
- Pip 20.3.4 (python 2.7)
|
||||
- Pip 21.3.1 (python 3.9)
|
||||
- Pipx 0.16.4
|
||||
- RubyGems 3.2.31
|
||||
- Vcpkg 2021 (build from master \<709e9ec32>)
|
||||
- Yarn 1.22.15
|
||||
- Pip 22.0.4 (python 3.9)
|
||||
- Pipx 1.0.0
|
||||
- RubyGems 3.2.33
|
||||
- Vcpkg 2022 (build from master \<0cf5b4305>)
|
||||
- Yarn 1.22.19
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -61,162 +58,170 @@
|
||||
|
||||
### Project Management
|
||||
- Apache Ant(TM) 1.10.12
|
||||
- Apache Maven 3.8.4
|
||||
- Gradle 7.3
|
||||
- Sbt 1.5.5
|
||||
- Apache Maven 3.8.5
|
||||
- Gradle 7.4.2
|
||||
- Sbt 1.6.2
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.04
|
||||
- aria2 1.36.0
|
||||
- azcopy 10.13.0
|
||||
- bazel 4.2.1
|
||||
- bazelisk 1.10.1
|
||||
- azcopy 10.15.0
|
||||
- bazel 5.1.1
|
||||
- bazelisk 1.11.0
|
||||
- bsdtar 3.3.2 - available by 'tar' alias
|
||||
- Curl 7.80.0
|
||||
- Git LFS: 3.0.2
|
||||
- Git: 2.34.0
|
||||
- GitHub CLI: 2.2.0
|
||||
- GNU parallel 20211022
|
||||
- Curl 7.83.1
|
||||
- Git 2.36.1
|
||||
- Git LFS: 3.1.4
|
||||
- GitHub CLI: 2.10.1
|
||||
- GNU parallel 20220422
|
||||
- GNU Tar 1.34 - available by 'gtar' alias
|
||||
- GNU Wget 1.21.2
|
||||
- gpg (GnuPG) 2.3.3
|
||||
- helm v3.7.1+g1d11fcb
|
||||
- GNU Wget 1.21.3
|
||||
- gpg (GnuPG) 2.3.6
|
||||
- helm v3.8.2+g6e3701e
|
||||
- Hub CLI: 2.14.2
|
||||
- ImageMagick 7.1.0-33
|
||||
- jq 1.6
|
||||
- mongo v5.0.3
|
||||
- mongod v5.0.3
|
||||
- Newman 5.3.0
|
||||
- OpenSSL 1.1.1l 24 Aug 2021 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1l_1)`
|
||||
- Packer 1.7.8
|
||||
- PostgreSQL 14.1
|
||||
- psql (PostgreSQL) 14.1
|
||||
- mongo v5.0.7
|
||||
- mongod v5.0.7
|
||||
- Newman 5.3.2
|
||||
- OpenSSL 1.1.1o 3 May 2022 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1o)`
|
||||
- Packer 1.8.0
|
||||
- PostgreSQL 14.3
|
||||
- psql (PostgreSQL) 14.3
|
||||
- Sox 14.4.2
|
||||
- Subversion (SVN) 1.14.1
|
||||
- Subversion (SVN) 1.14.2
|
||||
- Switchaudio-osx 1.1.0
|
||||
- Vagrant 2.2.19
|
||||
- virtualbox 6.1.28r147628
|
||||
- zstd 1.5.0
|
||||
|
||||
- virtualbox 6.1.34r150636
|
||||
- yq (https://github.com/mikefarah/yq/) version 4.25.1
|
||||
- zstd 1.5.2
|
||||
|
||||
### Tools
|
||||
- Aliyun CLI 3.0.99
|
||||
- App Center CLI 2.10.4
|
||||
- AWS CLI 2.4.0
|
||||
- AWS SAM CLI 1.35.0
|
||||
- AWS Session Manager CLI 1.2.279.0
|
||||
- Azure CLI 2.30.0
|
||||
- Bicep CLI 0.4.1008
|
||||
- Aliyun CLI 3.0.119
|
||||
- App Center CLI 2.10.10
|
||||
- AWS CLI 2.7.0
|
||||
- AWS SAM CLI 1.50.0
|
||||
- AWS Session Manager CLI 1.2.312.0
|
||||
- Azure CLI (azure-devops) 0.25.0
|
||||
- Azure CLI 2.36.0
|
||||
- Bicep CLI 0.6.18
|
||||
- Cabal 3.6.2.0
|
||||
- Cmake 3.22.0
|
||||
- Fastlane 2.198.1
|
||||
- GHC 9.2.1
|
||||
- GHCup 0.1.17.4
|
||||
- Jazzy 0.14.1
|
||||
- Stack 2.7.3
|
||||
- SwiftFormat 0.48.18
|
||||
- Cmake 3.23.1
|
||||
- Fastlane 2.205.2
|
||||
- GHC 9.2.2
|
||||
- GHCup 0.1.17.8
|
||||
- Jazzy 0.14.2
|
||||
- Stack 2.7.5
|
||||
- SwiftFormat 0.49.8
|
||||
- Swig 4.0.2
|
||||
- Xcode Command Line Tools 12.4.0.0.1.1610135815
|
||||
|
||||
### Linters
|
||||
- SwiftLint 0.45.0
|
||||
- SwiftLint 0.47.1
|
||||
- yamllint 1.26.3
|
||||
|
||||
### Browsers
|
||||
- Safari 15.1 (15612.2.9.1.30)
|
||||
- SafariDriver 15.1 (15612.2.9.1.30)
|
||||
- Google Chrome 96.0.4664.55
|
||||
- ChromeDriver 96.0.4664.45
|
||||
- Microsoft Edge 95.0.1020.53
|
||||
- MSEdgeDriver 95.0.1020.53
|
||||
- Mozilla Firefox 94.0.1
|
||||
- geckodriver 0.30.0
|
||||
- Selenium server 4.0.0
|
||||
- Safari 15.4 (15613.1.17.1.13)
|
||||
- SafariDriver 15.4 (15613.1.17.1.13)
|
||||
- Google Chrome 101.0.4951.64
|
||||
- ChromeDriver 101.0.4951.41
|
||||
- Microsoft Edge 101.0.1210.47
|
||||
- MSEdgeDriver 101.0.1210.47
|
||||
- Mozilla Firefox 100.0
|
||||
- geckodriver 0.31.0
|
||||
- Selenium server 4.1.4
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| --------------- | --------------------------------------------- |
|
||||
| CHROMEWEBDRIVER | /usr/local/Caskroom/chromedriver/96.0.4664.45 |
|
||||
| EDGEWEBDRIVER | /usr/local/share/edge_driver |
|
||||
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
|
||||
| Name | Value |
|
||||
| --------------- | ---------------------------------------------- |
|
||||
| CHROMEWEBDRIVER | /usr/local/Caskroom/chromedriver/101.0.4951.41 |
|
||||
| EDGEWEBDRIVER | /usr/local/share/edge_driver |
|
||||
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
|
||||
|
||||
### Java
|
||||
| Version | Vendor | Environment Variable |
|
||||
| ------------------- | --------------- | -------------------- |
|
||||
| 8.0.312+7 (default) | Eclipse Temurin | JAVA_HOME_8_X64 |
|
||||
| 11.0.13+8 | Eclipse Temurin | JAVA_HOME_11_X64 |
|
||||
| 8.0.332+9 (default) | Eclipse Temurin | JAVA_HOME_8_X64 |
|
||||
| 11.0.15+10 | Eclipse Temurin | JAVA_HOME_11_X64 |
|
||||
| 12.0.2+10.3 | Adopt OpenJDK | JAVA_HOME_12_X64 |
|
||||
| 13.0.2+8.1 | Adopt OpenJDK | JAVA_HOME_13_X64 |
|
||||
| 14.0.2+12 | Adopt OpenJDK | JAVA_HOME_14_X64 |
|
||||
| 17.0.1+12 | Eclipse Temurin | JAVA_HOME_17_X64 |
|
||||
| 17.0.3+7 | Eclipse Temurin | JAVA_HOME_17_X64 |
|
||||
|
||||
### GraalVM
|
||||
| Version | Environment variables |
|
||||
| --------- | --------------------- |
|
||||
| CE 22.1.0 | GRAALVM_11_ROOT |
|
||||
|
||||
### Cached Tools
|
||||
#### Ruby
|
||||
- 2.4.10
|
||||
- 2.5.9
|
||||
- 2.6.8
|
||||
- 2.7.4
|
||||
- 3.0.2
|
||||
- 2.6.10
|
||||
- 2.7.6
|
||||
- 3.0.4
|
||||
|
||||
#### Python
|
||||
- 2.7.18
|
||||
- 3.5.10
|
||||
- 3.6.15
|
||||
- 3.7.12
|
||||
- 3.7.13
|
||||
- 3.8.12
|
||||
- 3.9.9
|
||||
- 3.10.0
|
||||
- 3.9.12
|
||||
- 3.10.4
|
||||
|
||||
#### PyPy
|
||||
- 2.7.18 [PyPy 7.3.6]
|
||||
- 2.7.18 [PyPy 7.3.9]
|
||||
- 3.6.12 [PyPy 7.3.3]
|
||||
- 3.7.12 [PyPy 7.3.7]
|
||||
- 3.8.12 [PyPy 7.3.7]
|
||||
- 3.7.13 [PyPy 7.3.9]
|
||||
- 3.8.13 [PyPy 7.3.9]
|
||||
- 3.9.12 [PyPy 7.3.9]
|
||||
|
||||
#### Node.js
|
||||
- 12.22.7
|
||||
- 14.18.1
|
||||
- 16.13.0
|
||||
- 12.22.12
|
||||
- 14.19.2
|
||||
- 16.15.0
|
||||
|
||||
#### Go
|
||||
| Version | Architecture | Environment Variable |
|
||||
| ------- | ------------ | -------------------- |
|
||||
| 1.15.15 (Default) | x64 | GOROOT_1_15_X64 |
|
||||
| 1.16.10 | x64 | GOROOT_1_16_X64 |
|
||||
| 1.17.3 | x64 | GOROOT_1_17_X64 |
|
||||
| 1.16.15 | x64 | GOROOT_1_16_X64 |
|
||||
| 1.17.10 (Default) | x64 | GOROOT_1_17_X64 |
|
||||
| 1.18.2 | x64 | GOROOT_1_18_X64 |
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.56.0
|
||||
- Rust 1.56.1
|
||||
- Rustdoc 1.56.1
|
||||
- Cargo 1.60.0
|
||||
- Rust 1.60.0
|
||||
- Rustdoc 1.60.0
|
||||
- Rustup 1.24.3
|
||||
|
||||
#### Packages
|
||||
- Bindgen 0.59.1
|
||||
- Bindgen 0.59.2
|
||||
- Cargo-audit 0.16.0
|
||||
- Cargo-outdated v0.10.2
|
||||
- Cbindgen 0.20.0
|
||||
- Clippy 0.1.56
|
||||
- Rustfmt 1.4.37-stable
|
||||
- Cargo-outdated 0.11.1
|
||||
- Cbindgen 0.23.0
|
||||
- Clippy 0.1.60
|
||||
- Rustfmt 1.4.38-stable
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.2.0
|
||||
- PowerShell 7.2.3
|
||||
|
||||
#### PowerShell Modules
|
||||
| Module | Version |
|
||||
| ---------------- | ------- |
|
||||
| Az | 6.1.0 |
|
||||
| Az | 7.5.0 |
|
||||
| MarkdownPS | 1.9 |
|
||||
| Pester | 5.3.1 |
|
||||
| Pester | 5.3.3 |
|
||||
| PSScriptAnalyzer | 1.20.0 |
|
||||
|
||||
### Web Servers
|
||||
| Name | Version | ConfigFile | ServiceStatus | ListenPort |
|
||||
| ----- | ------- | ------------------------------- | ------------- | ---------- |
|
||||
| httpd | 2.4.51 | /usr/local/etc/httpd/httpd.conf | stopped | 80 |
|
||||
| nginx | 1.21.4 | /usr/local/etc/nginx/nginx.conf | stopped | 80 |
|
||||
| Name | Version | ConfigFile | ServiceStatus | ListenPort |
|
||||
| ----- | -------- | ------------------------------- | ------------- | ---------- |
|
||||
| httpd | 2.4.53_2 | /usr/local/etc/httpd/httpd.conf | none | 80 |
|
||||
| nginx | 1.21.6_1 | /usr/local/etc/nginx/nginx.conf | none | 80 |
|
||||
|
||||
### Xamarin
|
||||
#### Visual Studio for Mac
|
||||
- 8.10.14.17
|
||||
- 8.10.23.7
|
||||
|
||||
#### Xamarin bundles
|
||||
| symlink | Xamarin.Mono | Xamarin.iOS | Xamarin.Mac | Xamarin.Android |
|
||||
@@ -352,21 +357,21 @@
|
||||
| watchOS 7.2 | 12.3<br>12.4 | 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 |
|
||||
|
||||
### Android
|
||||
| Package Name | Version |
|
||||
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 4.0 |
|
||||
| Android Emulator | 30.9.5 |
|
||||
| Android SDK Build-tools | 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<br>26.0.0 26.0.1 26.0.2 26.0.3<br>25.0.0 25.0.1 25.0.2 25.0.3<br>24.0.0 24.0.1 24.0.2 24.0.3 |
|
||||
| Android SDK Platforms | android-31 (rev 1)<br>android-30 (rev 3)<br>android-29 (rev 5)<br>android-28 (rev 6)<br>android-27 (rev 3)<br>android-26 (rev 2)<br>android-25 (rev 3)<br>android-24 (rev 2) |
|
||||
| Android SDK Platform-Tools | 31.0.3 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.10.2<br>3.18.1 |
|
||||
| Google APIs | addon-google_apis-google-21<br>addon-google_apis-google-22<br>addon-google_apis-google-23<br>addon-google_apis-google-24 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 15.2.4203891<br>18.1.5063045<br>21.4.7075529 (default)<br>22.1.7171670<br>23.1.7779620 |
|
||||
| SDK Patch Applier v4 | 1 |
|
||||
| Intel HAXM | 7.6.5 |
|
||||
| Package Name | Version |
|
||||
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 4.0 |
|
||||
| Android Emulator | 31.2.10 |
|
||||
| Android SDK Build-tools | 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<br>26.0.0 26.0.1 26.0.2 26.0.3<br>25.0.0 25.0.1 25.0.2 25.0.3<br>24.0.0 24.0.1 24.0.2 24.0.3 |
|
||||
| Android SDK Platforms | 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)<br>android-26 (rev 2)<br>android-25 (rev 3)<br>android-24 (rev 2) |
|
||||
| Android SDK Platform-Tools | 33.0.1 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.10.2<br>3.18.1 |
|
||||
| Google APIs | addon-google_apis-google-21<br>addon-google_apis-google-22<br>addon-google_apis-google-23<br>addon-google_apis-google-24 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 15.2.4203891<br>18.1.5063045<br>21.4.7075529 (default)<br>22.1.7171670<br>23.1.7779620 |
|
||||
| SDK Patch Applier v4 | 1 |
|
||||
| Intel HAXM | 7.6.5 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -378,5 +383,11 @@
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/21.4.7075529 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
### Miscellaneous
|
||||
- libXext 1.3.4
|
||||
- libXft 2.3.4
|
||||
- Tcl/Tk 8.6.12
|
||||
- Zlib 1.2.12
|
||||
|
||||
|
||||
|
||||
|
||||
+186
-166
@@ -1,56 +1,54 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[all OSs] Default Nodejs version will be set to 16 on November, 29](https://github.com/actions/virtual-environments/issues/4446) |
|
||||
| [[all OSs] Selenium server version will be upgraded from 3 to 4 on November, 15](https://github.com/actions/virtual-environments/issues/4376) |
|
||||
| [[All OSs] Node.js version 10 will be removed from the images on November, 15](https://github.com/actions/virtual-environments/issues/4356) |
|
||||
| [[macOS Big Sur] Xcode 13 beta will be removed and Xcode 13.1 set as default on November, 15](https://github.com/actions/virtual-environments/issues/4355) |
|
||||
| [macOS-latest workflows will use macOS-11](https://github.com/actions/virtual-environments/issues/4060) |
|
||||
| [[macOS] Xcode versions 13.2 & 13.3 will be removed, 13.3.1 will be set as the default one on May, 16](https://github.com/actions/virtual-environments/issues/5463) |
|
||||
| [macOS 12 (Monterey) is available as a public beta in GitHub Actions and Azure DevOps](https://github.com/actions/virtual-environments/issues/5446) |
|
||||
***
|
||||
# macOS 11.6 info
|
||||
- System Version: macOS 11.6.1 (20G224)
|
||||
- System Version: macOS 11.6.5 (20G527)
|
||||
- Kernel Version: Darwin 20.6.0
|
||||
- Image Version: 20211120.1
|
||||
- Image Version: 20220517.4
|
||||
|
||||
## Installed Software
|
||||
### Language and Runtime
|
||||
- .NET SDK 2.1.302 2.1.403 2.1.507 2.1.607 2.1.701 2.1.818 3.1.101 3.1.201 3.1.302 3.1.415 5.0.102 5.0.202 5.0.302 5.0.403
|
||||
- .NET SDK 3.1.101 3.1.201 3.1.302 3.1.419 5.0.102 5.0.202 5.0.302 5.0.408
|
||||
- Bash 3.2.57(1)-release
|
||||
- Clang/LLVM 13.0.0 is available on `'$(brew --prefix llvm)/bin/clang'`
|
||||
- Clang/LLVM 13.0.0 is default
|
||||
- Clang/LLVM 13.0.1 is available on `'$(brew --prefix llvm)/bin/clang'`
|
||||
- gcc-9 (Homebrew GCC 9.4.0) 9.4.0 - available by `gcc-9` alias
|
||||
- gcc-10 (Homebrew GCC 10.3.0) 10.3.0 - available by `gcc-10` alias
|
||||
- gcc-11 (Homebrew GCC 11.2.0_2) 11.2.0 - available by `gcc-11` alias
|
||||
- gcc-11 (Homebrew GCC 11.3.0) 11.3.0 - available by `gcc-11` alias
|
||||
- GNU Fortran (Homebrew GCC 9.4.0) 9.4.0 - available by `gfortran-9` alias
|
||||
- GNU Fortran (Homebrew GCC 10.3.0) 10.3.0 - available by `gfortran-10` alias
|
||||
- GNU Fortran (Homebrew GCC 11.2.0_2) 11.2.0 - available by `gfortran-11` alias
|
||||
- Go 1.15.15
|
||||
- julia 1.6.4
|
||||
- Kotlin 1.6.0-release-798
|
||||
- MSBuild 16.9.0.22901 (from /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/15.0/bin/MSBuild.dll)
|
||||
- Node.js v14.18.1
|
||||
- NVM 0.39.0
|
||||
- NVM - Cached node versions: v12.22.7 v14.18.1 v16.13.0
|
||||
- GNU Fortran (Homebrew GCC 11.3.0) 11.3.0 - available by `gfortran-11` alias
|
||||
- Go 1.17.10
|
||||
- julia 1.7.2
|
||||
- Kotlin 1.6.21-release-334
|
||||
- MSBuild 16.10.1.17201 (from /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/15.0/bin/MSBuild.dll)
|
||||
- Node.js v16.15.0
|
||||
- NVM 0.39.1
|
||||
- NVM - Cached node versions: v12.22.12 v14.19.3 v16.15.0
|
||||
- Perl 5.34.0
|
||||
- PHP 8.0.13
|
||||
- PHP 8.1.6
|
||||
- Python 2.7.18
|
||||
- Python 3.9.8
|
||||
- Ruby 2.7.4p191
|
||||
- Python 3.9.12
|
||||
- R 4.2.0
|
||||
- Ruby 2.7.6p219
|
||||
|
||||
### Package Management
|
||||
- Bundler version 2.2.31
|
||||
- Bundler version 2.3.13
|
||||
- Carthage 0.38.0
|
||||
- CocoaPods 1.11.2
|
||||
- Composer 2.1.12
|
||||
- Homebrew 3.3.4
|
||||
- Miniconda 4.10.3
|
||||
- NPM 6.14.15
|
||||
- CocoaPods 1.11.3
|
||||
- Composer 2.3.5
|
||||
- Homebrew 3.4.11
|
||||
- Miniconda 4.12.0
|
||||
- NPM 8.5.5
|
||||
- NuGet 5.9.0.7134
|
||||
- Pip 20.3.4 (python 2.7)
|
||||
- Pip 21.3.1 (python 3.9)
|
||||
- Pipx 0.16.4
|
||||
- RubyGems 3.2.31
|
||||
- Vcpkg 2021 (build from master \<709e9ec32>)
|
||||
- Yarn 1.22.15
|
||||
- Pip 22.0.4 (python 3.9)
|
||||
- Pipx 1.0.0
|
||||
- RubyGems 3.2.33
|
||||
- Vcpkg 2022 (build from master \<22b403386>)
|
||||
- Yarn 1.22.19
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -60,158 +58,173 @@
|
||||
|
||||
### Project Management
|
||||
- Apache Ant(TM) 1.10.12
|
||||
- Apache Maven 3.8.4
|
||||
- Gradle 7.3
|
||||
- Sbt 1.5.5
|
||||
- Apache Maven 3.8.5
|
||||
- Gradle 7.4.2
|
||||
- Sbt 1.6.2
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.04
|
||||
- aria2 1.36.0
|
||||
- azcopy 10.13.0
|
||||
- bazel 4.2.1
|
||||
- bazelisk 1.10.1
|
||||
- azcopy 10.15.0
|
||||
- bazel 5.1.1
|
||||
- bazelisk 1.11.0
|
||||
- bsdtar 3.3.2 - available by 'tar' alias
|
||||
- Curl 7.80.0
|
||||
- Git LFS: 3.0.2
|
||||
- Git: 2.34.0
|
||||
- GitHub CLI: 2.2.0
|
||||
- Curl 7.83.1
|
||||
- Git 2.36.1
|
||||
- Git LFS: 3.1.4
|
||||
- GitHub CLI: 2.10.1
|
||||
- GNU Tar 1.34 - available by 'gtar' alias
|
||||
- GNU Wget 1.21.2
|
||||
- gpg (GnuPG) 2.3.3
|
||||
- helm v3.7.1+g1d11fcb
|
||||
- GNU Wget 1.21.3
|
||||
- gpg (GnuPG) 2.3.6
|
||||
- helm v3.8.2+g6e3701e
|
||||
- Hub CLI: 2.14.2
|
||||
- ImageMagick 7.1.0-33
|
||||
- jq 1.6
|
||||
- mongo v5.0.3
|
||||
- mongod v5.0.3
|
||||
- Newman 5.3.0
|
||||
- OpenSSL 1.1.1l 24 Aug 2021 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1l_1)`
|
||||
- Packer 1.7.8
|
||||
- PostgreSQL 14.1
|
||||
- psql (PostgreSQL) 14.1
|
||||
- mongo v5.0.7
|
||||
- mongod v5.0.7
|
||||
- Newman 5.3.2
|
||||
- OpenSSL 1.1.1o 3 May 2022 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1o)`
|
||||
- Packer 1.8.0
|
||||
- PostgreSQL 14.3
|
||||
- psql (PostgreSQL) 14.3
|
||||
- Sox 14.4.2
|
||||
- Subversion (SVN) 1.14.1
|
||||
- Subversion (SVN) 1.14.2
|
||||
- Switchaudio-osx 1.1.0
|
||||
- zstd 1.5.0
|
||||
|
||||
- yq (https://github.com/mikefarah/yq/) version 4.25.1
|
||||
- zstd 1.5.2
|
||||
|
||||
### Tools
|
||||
- Aliyun CLI 3.0.99
|
||||
- App Center CLI 2.10.4
|
||||
- AWS CLI 2.4.0
|
||||
- AWS SAM CLI 1.35.0
|
||||
- AWS Session Manager CLI 1.2.279.0
|
||||
- Azure CLI 2.30.0
|
||||
- Bicep CLI 0.4.1008
|
||||
- Aliyun CLI 3.0.119
|
||||
- App Center CLI 2.10.10
|
||||
- AWS CLI 2.7.0
|
||||
- AWS SAM CLI 1.50.0
|
||||
- AWS Session Manager CLI 1.2.312.0
|
||||
- Azure CLI (azure-devops) 0.25.0
|
||||
- Azure CLI 2.36.0
|
||||
- Bicep CLI 0.6.18
|
||||
- Cabal 3.6.2.0
|
||||
- Cmake 3.22.0
|
||||
- Fastlane 2.198.1
|
||||
- GHC 9.2.1
|
||||
- GHCup 0.1.17.4
|
||||
- Jazzy 0.14.1
|
||||
- Stack 2.7.3
|
||||
- SwiftFormat 0.48.18
|
||||
- Cmake 3.23.1
|
||||
- Fastlane 2.205.2
|
||||
- GHC 9.2.2
|
||||
- GHCup 0.1.17.8
|
||||
- Jazzy 0.14.2
|
||||
- Stack 2.7.5
|
||||
- SwiftFormat 0.49.9
|
||||
- Swig 4.0.2
|
||||
- Xcode Command Line Tools 13.0.0.0.1.1630607135
|
||||
- Xcode Command Line Tools 13.2.0.0.1.1638488800
|
||||
|
||||
### Linters
|
||||
- SwiftLint 0.45.0
|
||||
- SwiftLint 0.47.1
|
||||
- yamllint 1.26.3
|
||||
|
||||
### Browsers
|
||||
- Safari 15.1 (16612.2.9.1.30)
|
||||
- SafariDriver 15.1 (16612.2.9.1.30)
|
||||
- Google Chrome 96.0.4664.55
|
||||
- ChromeDriver 96.0.4664.45
|
||||
- Microsoft Edge 95.0.1020.53
|
||||
- MSEdgeDriver 95.0.1020.53
|
||||
- Mozilla Firefox 94.0.1
|
||||
- geckodriver 0.30.0
|
||||
- Selenium server 4.0.0
|
||||
- Safari 15.4 (16613.1.17.1.13)
|
||||
- SafariDriver 15.4 (16613.1.17.1.13)
|
||||
- Google Chrome 101.0.4951.64
|
||||
- ChromeDriver 101.0.4951.41
|
||||
- Microsoft Edge 101.0.1210.47
|
||||
- MSEdgeDriver 101.0.1210.47
|
||||
- Mozilla Firefox 100.0.1
|
||||
- geckodriver 0.31.0
|
||||
- Selenium server 4.1.4
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| --------------- | --------------------------------------------- |
|
||||
| CHROMEWEBDRIVER | /usr/local/Caskroom/chromedriver/96.0.4664.45 |
|
||||
| EDGEWEBDRIVER | /usr/local/share/edge_driver |
|
||||
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
|
||||
| Name | Value |
|
||||
| --------------- | ---------------------------------------------- |
|
||||
| CHROMEWEBDRIVER | /usr/local/Caskroom/chromedriver/101.0.4951.41 |
|
||||
| EDGEWEBDRIVER | /usr/local/share/edge_driver |
|
||||
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
|
||||
|
||||
### Java
|
||||
| Version | Vendor | Environment Variable |
|
||||
| ------------------- | --------------- | -------------------- |
|
||||
| 8.0.312+7 (default) | Eclipse Temurin | JAVA_HOME_8_X64 |
|
||||
| 11.0.13+8 | Eclipse Temurin | JAVA_HOME_11_X64 |
|
||||
| 17.0.1+12 | Eclipse Temurin | JAVA_HOME_17_X64 |
|
||||
| 8.0.332+9 (default) | Eclipse Temurin | JAVA_HOME_8_X64 |
|
||||
| 11.0.15+10 | Eclipse Temurin | JAVA_HOME_11_X64 |
|
||||
| 17.0.3+7 | Eclipse Temurin | JAVA_HOME_17_X64 |
|
||||
|
||||
### GraalVM
|
||||
| Version | Environment variables |
|
||||
| --------- | --------------------- |
|
||||
| CE 22.1.0 | GRAALVM_11_ROOT |
|
||||
|
||||
### Cached Tools
|
||||
#### Ruby
|
||||
- 2.4.10
|
||||
- 2.5.9
|
||||
- 2.6.8
|
||||
- 2.7.4
|
||||
- 3.0.2
|
||||
- 2.6.10
|
||||
- 2.7.6
|
||||
- 3.0.4
|
||||
- 3.1.2
|
||||
|
||||
#### Python
|
||||
- 3.7.12
|
||||
- 3.7.13
|
||||
- 3.8.12
|
||||
- 3.9.9
|
||||
- 3.10.0
|
||||
- 3.9.12
|
||||
- 3.10.4
|
||||
|
||||
#### PyPy
|
||||
- 2.7.18 [PyPy 7.3.6]
|
||||
- 3.7.12 [PyPy 7.3.7]
|
||||
- 3.8.12 [PyPy 7.3.7]
|
||||
- 2.7.18 [PyPy 7.3.9]
|
||||
- 3.7.13 [PyPy 7.3.9]
|
||||
- 3.8.13 [PyPy 7.3.9]
|
||||
- 3.9.12 [PyPy 7.3.9]
|
||||
|
||||
#### Node.js
|
||||
- 12.22.7
|
||||
- 14.18.1
|
||||
- 16.13.0
|
||||
- 12.22.12
|
||||
- 14.19.2
|
||||
- 16.15.0
|
||||
|
||||
#### Go
|
||||
| Version | Architecture | Environment Variable |
|
||||
| ------- | ------------ | -------------------- |
|
||||
| 1.15.15 (Default) | x64 | GOROOT_1_15_X64 |
|
||||
| 1.16.10 | x64 | GOROOT_1_16_X64 |
|
||||
| 1.17.3 | x64 | GOROOT_1_17_X64 |
|
||||
| 1.16.15 | x64 | GOROOT_1_16_X64 |
|
||||
| 1.17.10 (Default) | x64 | GOROOT_1_17_X64 |
|
||||
| 1.18.2 | x64 | GOROOT_1_18_X64 |
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.56.0
|
||||
- Rust 1.56.1
|
||||
- Rustdoc 1.56.1
|
||||
- Cargo 1.60.0
|
||||
- Rust 1.60.0
|
||||
- Rustdoc 1.60.0
|
||||
- Rustup 1.24.3
|
||||
|
||||
#### Packages
|
||||
- Bindgen 0.59.1
|
||||
- Bindgen 0.59.2
|
||||
- Cargo-audit 0.16.0
|
||||
- Cargo-outdated v0.10.2
|
||||
- Cbindgen 0.20.0
|
||||
- Clippy 0.1.56
|
||||
- Rustfmt 1.4.37-stable
|
||||
- Cargo-outdated 0.11.1
|
||||
- Cbindgen 0.23.0
|
||||
- Clippy 0.1.60
|
||||
- Rustfmt 1.4.38-stable
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.2.0
|
||||
- PowerShell 7.2.4
|
||||
|
||||
#### PowerShell Modules
|
||||
| Module | Version |
|
||||
| ---------------- | ------- |
|
||||
| Az | 6.1.0 |
|
||||
| Az | 7.5.0 |
|
||||
| MarkdownPS | 1.9 |
|
||||
| Pester | 5.3.1 |
|
||||
| Pester | 5.3.3 |
|
||||
| PSScriptAnalyzer | 1.20.0 |
|
||||
|
||||
### Web Servers
|
||||
| Name | Version | ConfigFile | ServiceStatus | ListenPort |
|
||||
| ----- | ------- | ------------------------------- | ------------- | ---------- |
|
||||
| httpd | 2.4.51 | /usr/local/etc/httpd/httpd.conf | stopped | 80 |
|
||||
| nginx | 1.21.4 | /usr/local/etc/nginx/nginx.conf | stopped | 80 |
|
||||
| Name | Version | ConfigFile | ServiceStatus | ListenPort |
|
||||
| ----- | -------- | ------------------------------- | ------------- | ---------- |
|
||||
| httpd | 2.4.53_2 | /usr/local/etc/httpd/httpd.conf | none | 80 |
|
||||
| nginx | 1.21.6_1 | /usr/local/etc/nginx/nginx.conf | none | 80 |
|
||||
|
||||
### Xamarin
|
||||
#### Visual Studio for Mac
|
||||
- 8.10.14.17
|
||||
- 8.10.23.7
|
||||
|
||||
#### Xamarin bundles
|
||||
| symlink | Xamarin.Mono | Xamarin.iOS | Xamarin.Mac | Xamarin.Android |
|
||||
| ----------------- | ------------ | ----------- | ----------- | --------------- |
|
||||
| 6_12_16 | 6.12 | 15.8 | 8.8 | 12.2 |
|
||||
| 6_12_15 | 6.12 | 15.8 | 8.8 | 12.1 |
|
||||
| 6_12_14 | 6.12 | 15.8 | 8.8 | 12.0 |
|
||||
| 6_12_13 | 6.12 | 15.6 | 8.6 | 12.0 |
|
||||
| 6_12_12 (default) | 6.12 | 15.4 | 8.4 | 12.0 |
|
||||
| 6_12_11 | 6.12 | 15.2 | 8.2 | 12.0 |
|
||||
| 6_12_10 (default) | 6.12 | 15.0 | 7.14 | 11.3 |
|
||||
| 6_12_10 | 6.12 | 15.0 | 7.14 | 11.3 |
|
||||
| 6_12_9 | 6.12 | 14.20 | 7.14 | 11.3 |
|
||||
| 6_12_8 | 6.12 | 14.16 | 7.10 | 11.2 |
|
||||
| 6_12_7 | 6.12 | 14.14 | 7.8 | 11.2 |
|
||||
@@ -227,14 +240,15 @@
|
||||
- NUnit 3.6.1
|
||||
|
||||
### Xcode
|
||||
| Version | Build | Path |
|
||||
| -------------- | -------- | ------------------------------ |
|
||||
| 13.2 (beta) | 13C5081f | /Applications/Xcode_13.2.app |
|
||||
| 13.1 (default) | 13A1030d | /Applications/Xcode_13.1.app |
|
||||
| 13.0 | 13A233 | /Applications/Xcode_13.0.app |
|
||||
| 12.5.1 | 12E507 | /Applications/Xcode_12.5.1.app |
|
||||
| 12.4 | 12D4e | /Applications/Xcode_12.4.app |
|
||||
| 11.7 | 11E801a | /Applications/Xcode_11.7.app |
|
||||
| Version | Build | Path |
|
||||
| ---------------- | -------- | ------------------------------ |
|
||||
| 13.2.1 (default) | 13C100 | /Applications/Xcode_13.2.1.app |
|
||||
| 13.2 | 13C90 | /Applications/Xcode_13.2.app |
|
||||
| 13.1 | 13A1030d | /Applications/Xcode_13.1.app |
|
||||
| 13.0 | 13A233 | /Applications/Xcode_13.0.app |
|
||||
| 12.5.1 | 12E507 | /Applications/Xcode_12.5.1.app |
|
||||
| 12.4 | 12D4e | /Applications/Xcode_12.4.app |
|
||||
| 11.7 | 11E801a | /Applications/Xcode_11.7.app |
|
||||
|
||||
#### Xcode Support Tools
|
||||
- xcpretty 0.3.0
|
||||
@@ -249,76 +263,76 @@
|
||||
| macOS 11.1 | macosx11.1 | 12.4 |
|
||||
| macOS 11.3 | macosx11.3 | 12.5.1, 13.0 |
|
||||
| macOS 12.0 | macosx12.0 | 13.1 |
|
||||
| macOS 12.1 | macosx12.1 | 13.2 |
|
||||
| macOS 12.1 | macosx12.1 | 13.2, 13.2.1 |
|
||||
| iOS 13.7 | iphoneos13.7 | 11.7 |
|
||||
| iOS 14.4 | iphoneos14.4 | 12.4 |
|
||||
| iOS 14.5 | iphoneos14.5 | 12.5.1 |
|
||||
| iOS 15.0 | iphoneos15.0 | 13.0, 13.1 |
|
||||
| iOS 15.2 | iphoneos15.2 | 13.2 |
|
||||
| iOS 15.2 | iphoneos15.2 | 13.2, 13.2.1 |
|
||||
| Simulator - iOS 13.7 | iphonesimulator13.7 | 11.7 |
|
||||
| Simulator - iOS 14.4 | iphonesimulator14.4 | 12.4 |
|
||||
| Simulator - iOS 14.5 | iphonesimulator14.5 | 12.5.1 |
|
||||
| Simulator - iOS 15.0 | iphonesimulator15.0 | 13.0, 13.1 |
|
||||
| Simulator - iOS 15.2 | iphonesimulator15.2 | 13.2 |
|
||||
| Simulator - iOS 15.2 | iphonesimulator15.2 | 13.2, 13.2.1 |
|
||||
| tvOS 13.4 | appletvos13.4 | 11.7 |
|
||||
| tvOS 14.3 | appletvos14.3 | 12.4 |
|
||||
| tvOS 14.5 | appletvos14.5 | 12.5.1 |
|
||||
| tvOS 15.0 | appletvos15.0 | 13.0, 13.1 |
|
||||
| tvOS 15.2 | appletvos15.2 | 13.2 |
|
||||
| tvOS 15.2 | appletvos15.2 | 13.2, 13.2.1 |
|
||||
| Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.7 |
|
||||
| Simulator - tvOS 14.3 | appletvsimulator14.3 | 12.4 |
|
||||
| Simulator - tvOS 14.5 | appletvsimulator14.5 | 12.5.1 |
|
||||
| Simulator - tvOS 15.0 | appletvsimulator15.0 | 13.0, 13.1 |
|
||||
| Simulator - tvOS 15.2 | appletvsimulator15.2 | 13.2 |
|
||||
| Simulator - tvOS 15.2 | appletvsimulator15.2 | 13.2, 13.2.1 |
|
||||
| watchOS 6.2 | watchos6.2 | 11.7 |
|
||||
| watchOS 7.2 | watchos7.2 | 12.4 |
|
||||
| watchOS 7.4 | watchos7.4 | 12.5.1 |
|
||||
| watchOS 8.0 | watchos8.0 | 13.0, 13.1 |
|
||||
| watchOS 8.3 | watchos8.3 | 13.2 |
|
||||
| watchOS 8.3 | watchos8.3 | 13.2, 13.2.1 |
|
||||
| Simulator - watchOS 6.2 | watchsimulator6.2 | 11.7 |
|
||||
| Simulator - watchOS 7.2 | watchsimulator7.2 | 12.4 |
|
||||
| Simulator - watchOS 7.4 | watchsimulator7.4 | 12.5.1 |
|
||||
| Simulator - watchOS 8.0 | watchsimulator8.0 | 13.0, 13.1 |
|
||||
| Simulator - watchOS 8.3 | watchsimulator8.3 | 13.2 |
|
||||
| Simulator - watchOS 8.3 | watchsimulator8.3 | 13.2, 13.2.1 |
|
||||
| DriverKit 19.0 | driverkit.macosx19.0 | 11.7 |
|
||||
| DriverKit 20.2 | driverkit.macosx20.2 | 12.4 |
|
||||
| DriverKit 20.4 | driverkit.macosx20.4 | 12.5.1, 13.0 |
|
||||
| DriverKit 21.0.1 | driverkit21.0.1 | 13.1 |
|
||||
| DriverKit 21.2 | driverkit21.2 | 13.2 |
|
||||
| DriverKit 21.2 | driverkit21.2 | 13.2, 13.2.1 |
|
||||
|
||||
#### Installed Simulators
|
||||
| OS | Xcode Version | Simulators |
|
||||
| ----------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 13.7 | 11.7 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 14.4 | 12.4 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 14.5 | 12.5.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 15.0 | 13.0<br>13.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad (9th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 15.2 | 13.2 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad (9th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
|
||||
| tvOS 13.4 | 11.7 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 14.3 | 12.4 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 14.5 | 12.5.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p)<br>Apple TV 4K (at 1080p) (2nd generation) |
|
||||
| tvOS 15.0 | 13.0<br>13.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p)<br>Apple TV 4K (at 1080p) (2nd generation) |
|
||||
| tvOS 15.2 | 13.2 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p)<br>Apple TV 4K (at 1080p) (2nd generation) |
|
||||
| watchOS 6.2 | 11.7 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
||||
| watchOS 7.2 | 12.4 | 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 |
|
||||
| watchOS 7.4 | 12.5.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 |
|
||||
| watchOS 8.0 | 13.0<br>13.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 | 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 |
|
||||
| OS | Xcode Version | Simulators |
|
||||
| ----------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 13.7 | 11.7 | iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad Air (3rd generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 14.4 | 12.4 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 14.5 | 12.5.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 15.0 | 13.0<br>13.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad (9th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 15.2 | 13.2<br>13.2.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (7th generation)<br>iPad (8th generation)<br>iPad (9th generation)<br>iPad Air (3rd generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (2nd generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (4th generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
|
||||
| tvOS 13.4 | 11.7 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 14.3 | 12.4 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (at 1080p) |
|
||||
| tvOS 14.5 | 12.5.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p)<br>Apple TV 4K (at 1080p) (2nd generation) |
|
||||
| tvOS 15.0 | 13.0<br>13.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p)<br>Apple TV 4K (at 1080p) (2nd generation) |
|
||||
| tvOS 15.2 | 13.2<br>13.2.1 | Apple TV<br>Apple TV 4K<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p)<br>Apple TV 4K (at 1080p) (2nd generation) |
|
||||
| watchOS 6.2 | 11.7 | Apple Watch Series 4 - 40mm<br>Apple Watch Series 4 - 44mm<br>Apple Watch Series 5 - 40mm<br>Apple Watch Series 5 - 44mm |
|
||||
| watchOS 7.2 | 12.4 | 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 |
|
||||
| watchOS 7.4 | 12.5.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 |
|
||||
| watchOS 8.0 | 13.0<br>13.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<br>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
|
||||
| Package Name | Version |
|
||||
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 4.0 |
|
||||
| Android Emulator | 30.9.5 |
|
||||
| Android SDK Build-tools | 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-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 | 31.0.3 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.10.2<br>3.18.1 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 21.4.7075529 (default)<br>22.1.7171670<br>23.1.7779620 |
|
||||
| SDK Patch Applier v4 | 1 |
|
||||
| Package Name | Version |
|
||||
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 4.0 |
|
||||
| Android Emulator | 31.2.10 |
|
||||
| Android SDK Build-tools | 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-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 | 33.0.1 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.10.2<br>3.18.1 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 21.4.7075529 (default)<br>22.1.7171670<br>23.1.7779620 |
|
||||
| SDK Patch Applier v4 | 1 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -329,5 +343,11 @@
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/21.4.7075529 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
### Miscellaneous
|
||||
- libXext 1.3.4
|
||||
- libXft 2.3.4
|
||||
- Tcl/Tk 8.6.12
|
||||
- Zlib 1.2.12
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,302 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[macOS] Xcode versions 13.2 & 13.3 will be removed, 13.3.1 will be set as the default one on May, 16](https://github.com/actions/virtual-environments/issues/5463) |
|
||||
| [macOS 12 (Monterey) is available as a public beta in GitHub Actions and Azure DevOps](https://github.com/actions/virtual-environments/issues/5446) |
|
||||
***
|
||||
# macOS 12.3 info
|
||||
- System Version: macOS 12.3.1 (21E258)
|
||||
- Kernel Version: Darwin 21.4.0
|
||||
- Image Version: 20220516.1
|
||||
|
||||
## Installed Software
|
||||
### Language and Runtime
|
||||
- .NET SDK 3.1.101 3.1.201 3.1.302 3.1.419 5.0.102 5.0.202 5.0.302 5.0.408
|
||||
- Bash 3.2.57(1)-release
|
||||
- Clang/LLVM 13.0.1 is available on `'$(brew --prefix llvm)/bin/clang'`
|
||||
- Clang/LLVM 13.1.6 is default
|
||||
- gcc-11 (Homebrew GCC 11.3.0) 11.3.0 - available by `gcc-11` alias
|
||||
- GNU Fortran (Homebrew GCC 11.3.0) 11.3.0 - available by `gfortran-11` alias
|
||||
- Go 1.17.10
|
||||
- julia 1.7.2
|
||||
- Kotlin 1.6.21-release-334
|
||||
- MSBuild 16.10.1.17201 (from /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/15.0/bin/MSBuild.dll)
|
||||
- Node.js v16.15.0
|
||||
- NVM 0.39.1
|
||||
- NVM - Cached node versions: v12.22.12 v14.19.2 v16.15.0
|
||||
- Perl 5.34.0
|
||||
- PHP 8.1.6
|
||||
- Python 2.7.18
|
||||
- Python 3.9.12
|
||||
- R 4.2.0
|
||||
- Ruby 3.0.4p208
|
||||
|
||||
### Package Management
|
||||
- Bundler version 2.3.13
|
||||
- Carthage 0.38.0
|
||||
- CocoaPods 1.11.3
|
||||
- Composer 2.3.5
|
||||
- Homebrew 3.4.11
|
||||
- NPM 8.5.5
|
||||
- NuGet 5.9.0.7134
|
||||
- Pip 20.3.4 (python 2.7)
|
||||
- Pip 22.0.4 (python 3.9)
|
||||
- Pipx 1.0.0
|
||||
- RubyGems 3.2.33
|
||||
- Vcpkg 2022 (build from master \<306c9a9e2>)
|
||||
- Yarn 1.22.19
|
||||
|
||||
### Project Management
|
||||
- Apache Ant(TM) 1.10.12
|
||||
- Apache Maven 3.8.5
|
||||
- Gradle 7.4.2
|
||||
- Sbt 1.6.2
|
||||
|
||||
### Utilities
|
||||
- 7-Zip 17.04
|
||||
- aria2 1.36.0
|
||||
- azcopy 10.15.0
|
||||
- bazel 5.1.1
|
||||
- bazelisk 1.11.0
|
||||
- bsdtar 3.5.1 - available by 'tar' alias
|
||||
- Curl 7.83.1
|
||||
- Git 2.36.1
|
||||
- Git LFS: 3.1.4
|
||||
- GitHub CLI: 2.10.1
|
||||
- GNU Tar 1.34 - available by 'gtar' alias
|
||||
- GNU Wget 1.21.3
|
||||
- gpg (GnuPG) 2.3.6
|
||||
- Hub CLI: 2.14.2
|
||||
- ImageMagick 7.1.0-33
|
||||
- jq 1.6
|
||||
- mongo v5.0.7
|
||||
- mongod v5.0.7
|
||||
- OpenSSL 1.1.1o 3 May 2022 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1o)`
|
||||
- Packer 1.8.0
|
||||
- PostgreSQL 14.3
|
||||
- psql (PostgreSQL) 14.3
|
||||
- Sox 14.4.2
|
||||
- Subversion (SVN) 1.14.2
|
||||
- Switchaudio-osx 1.1.0
|
||||
- yq (https://github.com/mikefarah/yq/) version 4.25.1
|
||||
- zstd 1.5.2
|
||||
|
||||
### Tools
|
||||
- App Center CLI command
|
||||
- AWS CLI 2.7.0
|
||||
- AWS SAM CLI 1.50.0
|
||||
- AWS Session Manager CLI 1.2.312.0
|
||||
- Azure CLI (azure-devops) 0.25.0
|
||||
- Azure CLI 2.36.0
|
||||
- Bicep CLI 0.6.18
|
||||
- Cabal 3.6.2.0
|
||||
- Cmake 3.23.1
|
||||
- Fastlane 2.205.2
|
||||
- GHC 9.2.2
|
||||
- GHCup 0.1.17.8
|
||||
- Jazzy 0.14.2
|
||||
- Stack 2.7.5
|
||||
- SwiftFormat 0.49.8
|
||||
- Swig 4.0.2
|
||||
- Xcode Command Line Tools 13.4.0.0.1.1651278267
|
||||
|
||||
### Linters
|
||||
- SwiftLint 0.47.1
|
||||
- yamllint 1.26.3
|
||||
|
||||
### Browsers
|
||||
- Safari 15.4 (17613.1.17.1.13)
|
||||
- SafariDriver 15.4 (17613.1.17.1.13)
|
||||
- Google Chrome 101.0.4951.64
|
||||
- ChromeDriver 101.0.4951.41
|
||||
- Microsoft Edge 101.0.1210.47
|
||||
- MSEdgeDriver 101.0.1210.47
|
||||
- Mozilla Firefox 100.0
|
||||
- geckodriver 0.31.0
|
||||
- Selenium server 4.1.4
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| --------------- | ---------------------------------------------- |
|
||||
| CHROMEWEBDRIVER | /usr/local/Caskroom/chromedriver/101.0.4951.41 |
|
||||
| EDGEWEBDRIVER | /usr/local/share/edge_driver |
|
||||
| GECKOWEBDRIVER | /usr/local/opt/geckodriver/bin |
|
||||
|
||||
### Java
|
||||
| Version | Vendor | Environment Variable |
|
||||
| ------------------- | --------------- | -------------------- |
|
||||
| 8.0.332+9 (default) | Eclipse Temurin | JAVA_HOME_8_X64 |
|
||||
| 11.0.15+10 | Eclipse Temurin | JAVA_HOME_11_X64 |
|
||||
| 17.0.3+7 | Eclipse Temurin | JAVA_HOME_17_X64 |
|
||||
|
||||
### GraalVM
|
||||
| Version | Environment variables |
|
||||
| --------- | --------------------- |
|
||||
| CE 22.1.0 | GRAALVM_11_ROOT |
|
||||
|
||||
### Cached Tools
|
||||
#### Ruby
|
||||
- 2.7.6
|
||||
- 3.0.4
|
||||
- 3.1.2
|
||||
|
||||
#### Python
|
||||
- 3.7.13
|
||||
- 3.8.12
|
||||
- 3.9.12
|
||||
- 3.10.4
|
||||
|
||||
#### PyPy
|
||||
- 2.7.18 [PyPy 7.3.9]
|
||||
- 3.7.13 [PyPy 7.3.9]
|
||||
- 3.8.13 [PyPy 7.3.9]
|
||||
- 3.9.12 [PyPy 7.3.9]
|
||||
|
||||
#### Node.js
|
||||
- 12.22.12
|
||||
- 14.19.2
|
||||
- 16.15.0
|
||||
|
||||
#### Go
|
||||
| Version | Architecture | Environment Variable |
|
||||
| ------- | ------------ | -------------------- |
|
||||
| 1.16.15 | x64 | GOROOT_1_16_X64 |
|
||||
| 1.17.10 (Default) | x64 | GOROOT_1_17_X64 |
|
||||
| 1.18.2 | x64 | GOROOT_1_18_X64 |
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.60.0
|
||||
- Rust 1.60.0
|
||||
- Rustdoc 1.60.0
|
||||
- Rustup 1.24.3
|
||||
|
||||
#### Packages
|
||||
- Bindgen 0.59.2
|
||||
- Cargo-audit 0.16.0
|
||||
- Cargo-outdated 0.11.1
|
||||
- Cbindgen 0.23.0
|
||||
- Clippy 0.1.60
|
||||
- Rustfmt 1.4.38-stable
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.2.3
|
||||
|
||||
#### PowerShell Modules
|
||||
| Module | Version |
|
||||
| ---------------- | ------- |
|
||||
| Az | 7.5.0 |
|
||||
| MarkdownPS | 1.9 |
|
||||
| Pester | 5.3.3 |
|
||||
| PSScriptAnalyzer | 1.20.0 |
|
||||
|
||||
### Web Servers
|
||||
| Name | Version | ConfigFile | ServiceStatus | ListenPort |
|
||||
| ----- | -------- | ------------------------------- | ------------- | ---------- |
|
||||
| httpd | 2.4.53_2 | /usr/local/etc/httpd/httpd.conf | none | 80 |
|
||||
| nginx | 1.21.6_1 | /usr/local/etc/nginx/nginx.conf | none | 80 |
|
||||
|
||||
### Xamarin
|
||||
#### Visual Studio for Mac
|
||||
- 8.10.23.7
|
||||
|
||||
#### Xamarin bundles
|
||||
| symlink | Xamarin.Mono | Xamarin.iOS | Xamarin.Mac | Xamarin.Android |
|
||||
| ----------------- | ------------ | ----------- | ----------- | --------------- |
|
||||
| 6_12_16 (default) | 6.12 | 15.8 | 8.8 | 12.2 |
|
||||
| 6_12_15 | 6.12 | 15.8 | 8.8 | 12.1 |
|
||||
| 6_12_14 | 6.12 | 15.8 | 8.8 | 12.0 |
|
||||
| 6_12_13 | 6.12 | 15.6 | 8.6 | 12.0 |
|
||||
| 6_12_12 | 6.12 | 15.4 | 8.4 | 12.0 |
|
||||
| 6_12_11 | 6.12 | 15.2 | 8.2 | 12.0 |
|
||||
| 6_12_10 | 6.12 | 15.0 | 7.14 | 11.3 |
|
||||
|
||||
#### Unit Test Framework
|
||||
- NUnit 3.6.1
|
||||
|
||||
### Xcode
|
||||
| Version | Build | Path |
|
||||
| ---------------- | -------- | ------------------------------ |
|
||||
| 13.4 | 13F17a | /Applications/Xcode_13.4.app |
|
||||
| 13.3.1 (default) | 13E500a | /Applications/Xcode_13.3.1.app |
|
||||
| 13.2.1 | 13C100 | /Applications/Xcode_13.2.1.app |
|
||||
| 13.1 | 13A1030d | /Applications/Xcode_13.1.app |
|
||||
|
||||
#### Xcode Support Tools
|
||||
- xcpretty 0.3.0
|
||||
- xcversion 2.8.0
|
||||
|
||||
#### Installed SDKs
|
||||
| SDK | SDK Name | Xcode Version |
|
||||
| ----------------------- | -------------------- | ------------- |
|
||||
| macOS 12.0 | macosx12.0 | 13.1 |
|
||||
| macOS 12.1 | macosx12.1 | 13.2.1 |
|
||||
| macOS 12.3 | macosx12.3 | 13.3.1, 13.4 |
|
||||
| iOS 15.0 | iphoneos15.0 | 13.1 |
|
||||
| iOS 15.2 | iphoneos15.2 | 13.2.1 |
|
||||
| iOS 15.4 | iphoneos15.4 | 13.3.1 |
|
||||
| iOS 15.5 | iphoneos15.5 | 13.4 |
|
||||
| Simulator - iOS 15.0 | iphonesimulator15.0 | 13.1 |
|
||||
| Simulator - iOS 15.2 | iphonesimulator15.2 | 13.2.1 |
|
||||
| Simulator - iOS 15.4 | iphonesimulator15.4 | 13.3.1 |
|
||||
| Simulator - iOS 15.5 | iphonesimulator15.5 | 13.4 |
|
||||
| tvOS 15.0 | appletvos15.0 | 13.1 |
|
||||
| tvOS 15.2 | appletvos15.2 | 13.2.1 |
|
||||
| tvOS 15.4 | appletvos15.4 | 13.3.1, 13.4 |
|
||||
| Simulator - tvOS 15.0 | appletvsimulator15.0 | 13.1 |
|
||||
| Simulator - tvOS 15.2 | appletvsimulator15.2 | 13.2.1 |
|
||||
| Simulator - tvOS 15.4 | appletvsimulator15.4 | 13.3.1, 13.4 |
|
||||
| watchOS 8.0 | watchos8.0 | 13.1 |
|
||||
| watchOS 8.3 | watchos8.3 | 13.2.1 |
|
||||
| watchOS 8.5 | watchos8.5 | 13.3.1, 13.4 |
|
||||
| Simulator - watchOS 8.0 | watchsimulator8.0 | 13.1 |
|
||||
| Simulator - watchOS 8.3 | watchsimulator8.3 | 13.2.1 |
|
||||
| Simulator - watchOS 8.5 | watchsimulator8.5 | 13.3.1, 13.4 |
|
||||
| DriverKit 21.0.1 | driverkit21.0.1 | 13.1 |
|
||||
| DriverKit 21.2 | driverkit21.2 | 13.2.1 |
|
||||
| DriverKit 21.4 | driverkit21.4 | 13.3.1, 13.4 |
|
||||
|
||||
#### Installed Simulators
|
||||
| OS | Xcode Version | Simulators |
|
||||
| ----------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| iOS 15.0 | 13.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 15.2 | 13.2.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 15.4 | 13.3.1 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPhone SE (3rd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
|
||||
| iOS 15.5 | 13.4 | iPod touch (7th generation)<br>iPhone 11<br>iPhone 11 Pro<br>iPhone 11 Pro Max<br>iPhone 12<br>iPhone 12 mini<br>iPhone 12 Pro<br>iPhone 12 Pro Max<br>iPhone 13<br>iPhone 13 mini<br>iPhone 13 Pro<br>iPhone 13 Pro Max<br>iPhone 8<br>iPhone 8 Plus<br>iPhone SE (2nd generation)<br>iPhone SE (3rd generation)<br>iPad (9th generation)<br>iPad Air (4th generation)<br>iPad Air (5th generation)<br>iPad mini (6th generation)<br>iPad Pro (11-inch) (3rd generation)<br>iPad Pro (12.9-inch) (5th generation)<br>iPad Pro (9.7-inch) |
|
||||
| tvOS 15.0 | 13.1 | Apple TV<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p) (2nd generation) |
|
||||
| tvOS 15.2 | 13.2.1 | Apple TV<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p) (2nd generation) |
|
||||
| tvOS 15.4 | 13.3.1<br>13.4 | Apple TV<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p) (2nd generation) |
|
||||
| watchOS 8.0 | 13.1 | 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 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.5 | 13.3.1<br>13.4 | 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
|
||||
| Package Name | Version |
|
||||
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 4.0 |
|
||||
| Android Emulator | 31.2.10 |
|
||||
| Android SDK Build-tools | 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-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 | 33.0.1 |
|
||||
| Android Support Repository | 47.0.0 |
|
||||
| CMake | 3.18.1 |
|
||||
| Google Play services | 49 |
|
||||
| Google Repository | 58 |
|
||||
| NDK | 21.4.7075529 (default)<br>22.1.7171670<br>23.1.7779620 |
|
||||
| SDK Patch Applier v4 | 1 |
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
| ----------------------- | -------------------------------------------------------------------------------------------------- |
|
||||
| ANDROID_HOME | /Users/runner/Library/Android/sdk |
|
||||
| ANDROID_NDK_HOME | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/21.4.7075529 |
|
||||
| ANDROID_NDK_LATEST_HOME | /Users/runner/Library/Android/sdk/ndk/23.1.7779620 |
|
||||
| ANDROID_NDK_ROOT | /Users/runner/Library/Android/sdk/ndk-bundle -> /Users/runner/Library/Android/sdk/ndk/21.4.7075529 |
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
### Miscellaneous
|
||||
- libXext 1.3.4
|
||||
- libXft 2.3.4
|
||||
- Tcl/Tk 8.6.12
|
||||
- Zlib 1.2.12
|
||||
|
||||
|
||||
|
||||
@@ -4,17 +4,8 @@ OLD_PASSWD="$2"
|
||||
NEW_PASSWD="$3"
|
||||
UPDATE_LOGIN_KEYCHAIN="${4:-true}"
|
||||
|
||||
export PATH=/usr/bin:/usr/sbin:/usr/local/bin:/bin:/sbin
|
||||
|
||||
macosver="$(sw_vers | grep ProductVersion | awk {'print $2'})"
|
||||
|
||||
if [[ $macosver =~ 10.13.* ]]; then
|
||||
sudo /usr/bin/dscl . -passwd /Users/$USERNAME "$NEW_PASSWD"
|
||||
else
|
||||
sudo /usr/sbin/sysadminctl -resetPasswordFor $USERNAME -newPassword "$NEW_PASSWD" -adminUser $USERNAME -adminPassword "$OLD_PASSWD"
|
||||
fi
|
||||
|
||||
sudo /usr/bin/python /Users/$USERNAME/bootstrap/kcpassword.py "$NEW_PASSWD"
|
||||
sudo /usr/sbin/sysadminctl -resetPasswordFor $USERNAME -newPassword "$NEW_PASSWD" -adminUser $USERNAME -adminPassword "$OLD_PASSWD"
|
||||
sudo /usr/bin/python3 /Users/$USERNAME/bootstrap/kcpassword.py "$NEW_PASSWD"
|
||||
sudo /usr/bin/defaults write /Library/Preferences/com.apple.loginwindow autoLoginUser "$USERNAME"
|
||||
|
||||
if [[ $UPDATE_LOGIN_KEYCHAIN == "true" ]]; then
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# Port of Gavin Brock's Perl kcpassword generator to Python, by Tom Taylor
|
||||
# <tom@tomtaylor.co.uk>.
|
||||
@@ -9,7 +9,7 @@
|
||||
import sys
|
||||
import os
|
||||
|
||||
def kcpassword(passwd):
|
||||
def encode_data(passwd):
|
||||
# The magic 11 bytes - these are just repeated
|
||||
# 0x7D 0x89 0x52 0x23 0xD2 0xBC 0xDD 0xEA 0xA3 0xB9 0x1F
|
||||
key = [125,137,82,35,210,188,221,234,163,185,31]
|
||||
@@ -18,7 +18,9 @@ def kcpassword(passwd):
|
||||
passwd = [ord(x) for x in list(passwd)]
|
||||
# pad passwd length out to an even multiple of key length
|
||||
r = len(passwd) % key_len
|
||||
if (r > 0):
|
||||
if len(passwd) == 11:
|
||||
passwd += [0]
|
||||
elif (r > 0):
|
||||
passwd = passwd + [0] * (key_len - r)
|
||||
|
||||
for n in range(0, len(passwd), len(key)):
|
||||
@@ -27,14 +29,14 @@ def kcpassword(passwd):
|
||||
passwd[j] = passwd[j] ^ key[ki]
|
||||
ki += 1
|
||||
|
||||
passwd = [chr(x) for x in passwd]
|
||||
return "".join(passwd)
|
||||
return bytearray(passwd)
|
||||
|
||||
if __name__ == "__main__":
|
||||
passwd = kcpassword(sys.argv[1])
|
||||
runner_pwd_encoded = encode_data(sys.argv[1])
|
||||
fd = os.open('/etc/kcpassword', os.O_WRONLY | os.O_CREAT, 0o600)
|
||||
file = os.fdopen(fd, 'w')
|
||||
file.write(passwd)
|
||||
file = os.fdopen(fd, 'wb')
|
||||
file.truncate(0)
|
||||
file.write(runner_pwd_encoded)
|
||||
file.close()
|
||||
|
||||
"""
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
: <<-LICENSE_BLOCK
|
||||
setAutoLogin (20210911) - Copyright (c) 2021 Joel Bruner (https://github.com/brunerd)
|
||||
Licensed under the MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
LICENSE_BLOCK
|
||||
|
||||
USERNAME="${1}"
|
||||
PW="${2}"
|
||||
|
||||
function kcpasswordEncode {
|
||||
#ascii string
|
||||
local thisString="${1}"
|
||||
local i
|
||||
|
||||
#macOS cipher hex ascii representation array
|
||||
local cipherHex_array=( 7D 89 52 23 D2 BC DD EA A3 B9 1F )
|
||||
|
||||
#converted to hex representation with spaces
|
||||
local thisStringHex_array=( $(echo -n "${thisString}" | xxd -p -u | sed 's/../& /g') )
|
||||
|
||||
#get padding by subtraction if under 11
|
||||
local r=$(( ${#thisStringHex_array[@]} % 11 ))
|
||||
local padding=0
|
||||
if [ ${#thisStringHex_array[@]} -eq 11 ]; then
|
||||
local padding=1
|
||||
elif [ $r -gt 0 ]; then
|
||||
local padding=$(( 11 - $r ))
|
||||
fi
|
||||
|
||||
#cycle through each element of the array + padding
|
||||
for ((i=0; i < $(( ${#thisStringHex_array[@]} + ${padding})); i++)); do
|
||||
#use modulus to loop through the cipher array elements
|
||||
local charHex_cipher=${cipherHex_array[$(( $i % 11 ))]}
|
||||
|
||||
#get the current hex representation element
|
||||
local charHex=${thisStringHex_array[$i]}
|
||||
|
||||
#use $(( shell Aritmethic )) to ^ XOR the two 0x## values (extra padding is 0x00)
|
||||
#take decimal value and printf convert to two char hex value
|
||||
#use xxd to convert hex to actual value and append to the encodedString variable
|
||||
local encodedString+=$(printf "%02X" "$(( 0x${charHex_cipher} ^ 0x${charHex:-00} ))")
|
||||
done
|
||||
|
||||
#return the string without a newline
|
||||
echo -n "${encodedString}"
|
||||
}
|
||||
|
||||
#encode password and write file
|
||||
kcpasswordEncode "${PW}" | xxd -r -p > /etc/kcpassword
|
||||
|
||||
#ensure ownership and permissions (600)
|
||||
chown root:wheel /etc/kcpassword
|
||||
chmod u=rw,go= /etc/kcpassword
|
||||
|
||||
#turn on auto login
|
||||
/usr/bin/defaults write /Library/Preferences/com.apple.loginwindow autoLoginUser -string "${USERNAME}"
|
||||
/usr/bin/defaults write /Library/Preferences/com.apple.loginwindow autoLoginUserScreenLocked -bool false
|
||||
echo "Auto login enabled for '${USERNAME}'"
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
echo "Enabling automatic GUI login for the '$USERNAME' user.."
|
||||
|
||||
python $HOME/bootstrap/kcpassword.py "$PASSWORD"
|
||||
python3 $HOME/bootstrap/kcpassword.py "$PASSWORD"
|
||||
|
||||
/usr/bin/defaults write /Library/Preferences/com.apple.loginwindow autoLoginUser "$USERNAME"
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
tee -a /usr/local/bin/change_hostname.sh > /dev/null <<\EOF
|
||||
#!/bin/bash -e -o pipefail
|
||||
|
||||
name="Mac-$(python -c 'from time import time; print int(round(time() * 1000))')"
|
||||
name="Mac-$(python3 -c 'from time import time; print(int(round(time() * 1000)))')"
|
||||
scutil --set HostName "${name}.local"
|
||||
scutil --set LocalHostName $name
|
||||
scutil --set ComputerName "${name}.local"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user