Compare commits
257 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 26e7ad8ba7 | |||
| 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 |
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -12,10 +12,11 @@ For general questions about using the virtual environments or writing your Actio
|
||||
| --------------------|---------------------|--------------------|---------------------|
|
||||
| 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 | `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.
|
||||
@@ -52,6 +53,7 @@ You can also track upcoming changes using the [awaiting-deployment](https://gith
|
||||
[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
|
||||
|
||||
|
||||
@@ -61,11 +61,17 @@ 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}
|
||||
```
|
||||
|
||||
*Please, check synopsis of `GenerateResourcesAndImage` for details about non-mandatory parameters.*
|
||||
|
||||
#### Generated VM Deployment
|
||||
@@ -95,6 +101,7 @@ 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.
|
||||
|
||||
@@ -17,7 +17,7 @@ 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%.
|
||||
- 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:
|
||||
|
||||
|
||||
@@ -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" }
|
||||
}
|
||||
|
||||
@@ -128,144 +132,172 @@ Function GenerateResourcesAndImage {
|
||||
[bool] $EnableHttpsTrafficOnly = $False
|
||||
)
|
||||
|
||||
$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
|
||||
} 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 }
|
||||
}
|
||||
}
|
||||
} 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"
|
||||
|
||||
|
||||
# Storage Account Name can only be 24 characters long
|
||||
if ($storageAccountName.Length -gt 24){
|
||||
$storageAccountName = $storageAccountName.Substring(0, 24)
|
||||
}
|
||||
|
||||
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"
|
||||
}
|
||||
|
||||
& $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 -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
|
||||
# "", "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.
|
||||
$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"
|
||||
}
|
||||
|
||||
& $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"
|
||||
|
||||
|
||||
@@ -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)"
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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)'
|
||||
|
||||
@@ -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
|
||||
|
||||
+158
-148
@@ -1,43 +1,39 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[All OSs] Python version 3.5 will be removed from the images on January 24, 2022](https://github.com/actions/virtual-environments/issues/4744) |
|
||||
***
|
||||
# Ubuntu 18.04.6 LTS
|
||||
- Linux kernel version: 5.4.0-1064-azure
|
||||
- Image Version: 20211219.1
|
||||
- Linux kernel version: 5.4.0-1077-azure
|
||||
- Image Version: 20220503.1
|
||||
|
||||
## Installed Software
|
||||
### Language and Runtime
|
||||
- Bash 4.4.20(1)-release
|
||||
- Clang 9.0.0
|
||||
- Clang-format 9.0.0
|
||||
- Erlang 24.1.7 (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.7.0
|
||||
- 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 16.13.1
|
||||
- Node 16.15.0
|
||||
- Perl 5.26.1
|
||||
- Python 2.7.17
|
||||
- Python3 3.6.9
|
||||
- Ruby 2.5.1p57
|
||||
- Swift 5.5.2
|
||||
- Swift 5.6.1
|
||||
|
||||
### Package Management
|
||||
- cpan 1.64
|
||||
- Helm 3.7.2
|
||||
- Homebrew 3.3.8
|
||||
- Miniconda 4.10.3
|
||||
- Npm 8.1.2
|
||||
- Helm 3.8.2
|
||||
- Homebrew 3.4.10
|
||||
- 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 \<50fd3d995>)
|
||||
- Yarn 1.22.17
|
||||
- Vcpkg (build from master \<b98afc9f1>)
|
||||
- Yarn 1.22.18
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -47,114 +43,115 @@
|
||||
|
||||
### Project Management
|
||||
- Ant 1.10.5
|
||||
- Gradle 7.3.2
|
||||
- Maven 3.8.4
|
||||
- Sbt 1.5.7
|
||||
- Gradle 7.4.2
|
||||
- Maven 3.8.5
|
||||
- Sbt 1.6.2
|
||||
|
||||
### Tools
|
||||
- Ansible 2.11.7
|
||||
- apt-fast 1.9.11
|
||||
- AzCopy 10.13.0 (available by `azcopy` and `azcopy10` aliases)
|
||||
- Bazel 4.2.2
|
||||
- Ansible 2.11.11
|
||||
- apt-fast 1.9.12
|
||||
- AzCopy 10.14.1 (available by `azcopy` and `azcopy10` aliases)
|
||||
- Bazel 5.1.1
|
||||
- Bazelisk 1.11.0
|
||||
- Bicep 0.4.1124
|
||||
- Bicep 0.6.1
|
||||
- Buildah 1.19.6 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable)
|
||||
- CMake 3.22.1
|
||||
- CodeQL Action Bundle 2.7.3
|
||||
- CMake 3.23.1
|
||||
- CodeQL Action Bundle 2.9.0
|
||||
- Docker Compose v1 1.29.2
|
||||
- Docker Compose v2 2.2.2+azure-1
|
||||
- Docker-Buildx 0.7.1
|
||||
- Docker-Moby Client 20.10.11+azure-3
|
||||
- Docker-Moby Server 20.10.11+azure-3
|
||||
- Git 2.34.1 (apt source repository: ppa:git-core/ppa)
|
||||
- Git LFS 3.0.2 (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.14+azure-1
|
||||
- Docker-Moby Server 20.10.14+azure-1
|
||||
- Git 2.36.0 (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.140.1
|
||||
- Heroku 7.60.2
|
||||
- HHVM (HipHop VM) 4.159.0
|
||||
- jq 1.5
|
||||
- Kind 0.11.1
|
||||
- Kubectl 1.23.1
|
||||
- Kustomize 4.4.1
|
||||
- Kind 0.12.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.1
|
||||
- Newman 5.3.0
|
||||
- Minikube 1.25.2
|
||||
- n 8.2.0
|
||||
- Newman 5.3.2
|
||||
- nvm 0.39.1
|
||||
- OpenSSL 1.1.1 11 Sep 2018
|
||||
- Packer 1.7.8
|
||||
- Parcel 2.0.1
|
||||
- OpenSSL 1.1.1-1ubuntu2.1~18.04.15
|
||||
- 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.19.0
|
||||
- R 4.1.2
|
||||
- Pulumi 3.31.0
|
||||
- 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.1.2
|
||||
- Terraform 1.1.9
|
||||
- yamllint 1.26.3
|
||||
- yq 4.16.1
|
||||
- zstd 1.5.0 (homebrew)
|
||||
- yq 4.25.1
|
||||
- zstd 1.5.2 (homebrew)
|
||||
|
||||
### CLI Tools
|
||||
- Alibaba Cloud CLI 3.0.102
|
||||
- AWS CLI 1.22.24
|
||||
- AWS CLI Session manager plugin 1.2.279.0
|
||||
- AWS SAM CLI 1.36.0
|
||||
- Azure CLI (azure-cli) 2.31.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.3.0
|
||||
- Google Cloud SDK 367.0.0 (apt source repository: https://packages.cloud.google.com/apt)
|
||||
- Alibaba Cloud CLI 3.0.118
|
||||
- AWS CLI 1.23.6
|
||||
- AWS CLI Session manager plugin 1.2.312.0
|
||||
- AWS SAM CLI 1.47.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.9.0
|
||||
- Google Cloud SDK 369.0.0 (apt source repository: https://packages.cloud.google.com/apt)
|
||||
- Hub CLI 2.14.2
|
||||
- Netlify CLI 8.1.8
|
||||
- OpenShift CLI 4.9.11
|
||||
- Netlify CLI 10.1.0
|
||||
- OpenShift CLI 4.10.12
|
||||
- ORAS CLI 0.12.0
|
||||
- Vercel CLI 23.1.2
|
||||
- Vercel CLI 24.2.0
|
||||
|
||||
### 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.322+6 (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 8.1.0 |
|
||||
| Composer | 2.1.14 |
|
||||
| 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.7
|
||||
- Stack 2.7.5
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.57.0
|
||||
- Rust 1.57.0
|
||||
- Rustdoc 1.57.0
|
||||
- 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 clippy 0.1.57
|
||||
- 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.110
|
||||
- ChromeDriver 96.0.4664.45
|
||||
- Mozilla Firefox 95.0
|
||||
- Geckodriver 0.30.0
|
||||
- Chromium 96.0.4664.0
|
||||
- Google Chrome 101.0.4951.54
|
||||
- ChromeDriver 101.0.4951.41
|
||||
- Chromium 101.0.4951.0
|
||||
- Mozilla Firefox 99.0
|
||||
- Geckodriver 0.31.0
|
||||
- Selenium server 4.1.0
|
||||
|
||||
#### Environment variables
|
||||
@@ -165,73 +162,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.416 5.0.104 5.0.210 5.0.303 5.0.404
|
||||
- 3.1.120 3.1.202 3.1.302 3.1.418 5.0.104 5.0.213 5.0.303 5.0.407 6.0.202
|
||||
|
||||
### .NET tools
|
||||
- nbgv 3.5.103+351d94e36c
|
||||
|
||||
### Databases
|
||||
- MongoDB 5.0.5 (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.2 (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.12
|
||||
- 1.17.5
|
||||
- 1.16.15
|
||||
- 1.17.9
|
||||
- 1.18.1
|
||||
|
||||
#### Node.js
|
||||
- 12.22.8
|
||||
- 14.18.2
|
||||
- 16.13.1
|
||||
- 12.22.12
|
||||
- 14.19.1
|
||||
- 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.1
|
||||
- 3.9.12
|
||||
- 3.10.4
|
||||
|
||||
#### Ruby
|
||||
- 2.4.10
|
||||
- 2.5.9
|
||||
- 2.6.9
|
||||
- 2.7.5
|
||||
- 3.0.3
|
||||
- 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.12/x64 | x64 |
|
||||
| GOROOT_1_17_X64 | /opt/hostedtoolcache/go/1.17.5/x64 | x64 |
|
||||
| GOROOT_1_16_X64 | /opt/hostedtoolcache/go/1.16.15/x64 | x64 |
|
||||
| GOROOT_1_17_X64 | /opt/hostedtoolcache/go/1.17.9/x64 | x64 |
|
||||
| GOROOT_1_18_X64 | /opt/hostedtoolcache/go/1.18.1/x64 | x64 |
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.2.1
|
||||
- PowerShell 7.2.3
|
||||
|
||||
#### PowerShell Modules
|
||||
| Module | Version |
|
||||
| ---------- | ------- |
|
||||
| MarkdownPS | 1.9 |
|
||||
| Pester | 5.3.1 |
|
||||
| Module | Version |
|
||||
| --------------- | ------- |
|
||||
| MarkdownPS | 1.9 |
|
||||
| Microsoft.Graph | 1.9.5 |
|
||||
| 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 |
|
||||
@@ -243,9 +251,9 @@
|
||||
| Package Name | Version |
|
||||
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 4.0 |
|
||||
| Android Emulator | 31.1.4 |
|
||||
| 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 | 31.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 |
|
||||
@@ -268,39 +276,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:5445b145c8a1a2f7e5a4b233f571c629aed12fce435496f942ad267f21a05ff2 | 2021-12-02 |
|
||||
| buildpack-deps:buster | sha256:c11cd0a4c97acd1aa8d2289aee5c126ac78adc48108744c104f6741cbd9a1f6c | 2021-12-02 |
|
||||
| buildpack-deps:stretch | sha256:bb93e2c2858cb20f7f16e433773adb2c583fce38dc9c71976c62bf098f956093 | 2021-12-02 |
|
||||
| debian:10 | sha256:5b57f8c365c40fde437d53b953c436995525be7c481eb0128b1cbf3b49b0df18 | 2021-12-02 |
|
||||
| debian:11 | sha256:45ee40a844048c2f6d0105899c1a17733530b56d481612608aab5e2e4048570b | 2021-12-02 |
|
||||
| debian:9 | sha256:aa78ddaa7f8a14bad8f940ebff5542377f91843f6dcc168e41a8628c6007e815 | 2021-12-02 |
|
||||
| moby/buildkit:latest | sha256:d6c89b7085b106301645ddcc77cf64eb7b705ab507b72d52d130ac33f1300417 | 2021-11-18 |
|
||||
| node:12 | sha256:f881ce751096a214a7e595b0ccf9ee7d6e38d8e0141d7e9d5880b2f242ad392b | 2021-12-18 |
|
||||
| node:12-alpine | sha256:8fad09b7620b2bc715cbba92e3313c64a797e453f560118576f1740a44584d5d | 2021-12-18 |
|
||||
| node:14 | sha256:52c884d7cf8509c27def168415a1ff23a0bd95d358dd5787ca77b60474dcb3db | 2021-12-02 |
|
||||
| node:14-alpine | sha256:7bcf853eeb97a25465cb385b015606c22e926f548cbd117f85b7196df8aa0d29 | 2021-12-02 |
|
||||
| node:16 | sha256:89b59ce49929d8a8e230946bdb1b58c14cdbbb86c9a7397610afcecfce1be035 | 2021-12-02 |
|
||||
| node:16-alpine | sha256:a9b9cb880fa429b0bea899cd3b1bc081ab7277cc97e6d2dcd84bd9753b2027e1 | 2021-12-02 |
|
||||
| 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:f26b9bcb6722fd59888caf4f4c1d4990799e3e83d804a83b7b58b4be949dc75e | 2022-04-20 |
|
||||
| buildpack-deps:buster | sha256:b971efe3151fcfb10d0b7dfc739d081a9f9d9413195aa9b80224a66f4a651b4a | 2022-04-20 |
|
||||
| buildpack-deps:stretch | sha256:fd003a4b08626dd6e5a59c61de0639243909644344a5bada501bf42e9982eac6 | 2022-04-20 |
|
||||
| debian:10 | sha256:ebe4b9831fb22dfa778de4ffcb8ea0ad69b5d782d4e86cab14cc1fded5d8e761 | 2022-04-20 |
|
||||
| debian:11 | sha256:6846593d7d8613e5dcc68c8f7d8b8e3179c7f3397b84a47c5b2ce989ef1075a0 | 2022-04-20 |
|
||||
| debian:9 | sha256:cebe6e1c30384958d471467e231f740e8f0fd92cbfd2a435a186e9bada3aee1c | 2022-04-20 |
|
||||
| moby/buildkit:latest | sha256:3fbc9b9d9a74ab650eea43610ed880e51cdc05282d61f83c2e0a3b2e9ed3a344 | 2022-04-27 |
|
||||
| node:12 | sha256:01627afeb110b3054ba4a1405541ca095c8bfca1cb6f2be9479c767a2711879e | 2022-04-20 |
|
||||
| node:12-alpine | sha256:d4b15b3d48f42059a15bd659be60afe21762aae9d6cbea6f124440895c27db68 | 2022-04-11 |
|
||||
| node:14 | sha256:2f39686f6d0b2687550659367fa11f56018a0f782b7e30f1a0ea56b11dece124 | 2022-04-20 |
|
||||
| node:14-alpine | sha256:8845b4f88f64f8c56a39236648ba22946e806a6153c10911f77b70e5a2edb4ca | 2022-04-05 |
|
||||
| node:16 | sha256:a6c217d7c8f001dc6fc081d55c2dd7fb3fefe871d5aa7be9c0c16bd62bea8e0c | 2022-04-27 |
|
||||
| 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 |
|
||||
| curl | 7.58.0-2ubuntu3.17 |
|
||||
| dbus | 1.12.2-1ubuntu1.2 |
|
||||
| dnsutils | 1:9.11.3+dfsg-1ubuntu1.16 |
|
||||
| dnsutils | 1:9.11.3+dfsg-1ubuntu1.17 |
|
||||
| dpkg | 1.19.0.5ubuntu2.3 |
|
||||
| fakeroot | 1.22-2ubuntu1 |
|
||||
| file | 1:5.32-2ubuntu0.4 |
|
||||
@@ -312,10 +322,10 @@
|
||||
| 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.17 |
|
||||
| libgbm-dev | 20.0.8-0ubuntu1\~18.04.1 |
|
||||
| libgconf-2-4 | 3.2.6-4ubuntu1 |
|
||||
| libgsl-dev | 2.4+dfsg-6 |
|
||||
@@ -325,16 +335,17 @@
|
||||
| libmagickwand-dev | 8:6.9.7.4+dfsg-16ubuntu6.12 |
|
||||
| libsecret-1-dev | 0.18.6-1 |
|
||||
| libsqlite3-dev | 3.22.0-1ubuntu0.4 |
|
||||
| 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.6 |
|
||||
| p7zip-full | 16.02+dfsg-6 |
|
||||
| p7zip-rar | 16.02-2 |
|
||||
| parallel | 20161222-1 |
|
||||
@@ -344,11 +355,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 |
|
||||
| ssh | 1:7.6p1-4ubuntu0.6 |
|
||||
| sshpass | 1.06-1 |
|
||||
| subversion | 1.9.7-4ubuntu1 |
|
||||
| sudo | 1.8.21p2-3ubuntu1.4 |
|
||||
@@ -357,14 +368,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.10 |
|
||||
| xz-utils | 5.2.2-1.3 |
|
||||
| xz-utils | 5.2.2-1.3ubuntu0.1 |
|
||||
| zip | 3.0-11build1 |
|
||||
| zsync | 0.6.2-3ubuntu1 |
|
||||
|
||||
|
||||
|
||||
+162
-152
@@ -1,43 +1,39 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[All OSs] Python version 3.5 will be removed from the images on January 24, 2022](https://github.com/actions/virtual-environments/issues/4744) |
|
||||
***
|
||||
# Ubuntu 20.04.3 LTS
|
||||
- Linux kernel version: 5.11.0-1022-azure
|
||||
- Image Version: 20211219.1
|
||||
# Ubuntu 20.04.4 LTS
|
||||
- Linux kernel version: 5.13.0-1022-azure
|
||||
- Image Version: 20220503.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.7 (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.7.0
|
||||
- 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 16.13.1
|
||||
- Node 16.15.0
|
||||
- Perl 5.30.0
|
||||
- Python 3.8.10
|
||||
- Python3 3.8.10
|
||||
- Ruby 2.7.0p0
|
||||
- Swift 5.5.2
|
||||
- Swift 5.6.1
|
||||
|
||||
### Package Management
|
||||
- cpan 1.64
|
||||
- Helm 3.7.2
|
||||
- Homebrew 3.3.8
|
||||
- Miniconda 4.10.3
|
||||
- Npm 8.1.2
|
||||
- Helm 3.8.2
|
||||
- Homebrew 3.4.10
|
||||
- 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 \<50fd3d995>)
|
||||
- Yarn 1.22.17
|
||||
- Vcpkg (build from master \<b98afc9f1>)
|
||||
- Yarn 1.22.18
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -47,120 +43,121 @@
|
||||
|
||||
### Project Management
|
||||
- Ant 1.10.7
|
||||
- Gradle 7.3.2
|
||||
- Gradle 7.4.2
|
||||
- Lerna 4.0.0
|
||||
- Maven 3.8.4
|
||||
- Sbt 1.5.7
|
||||
- Maven 3.8.5
|
||||
- Sbt 1.6.2
|
||||
|
||||
### Tools
|
||||
- Ansible 2.12.1
|
||||
- apt-fast 1.9.11
|
||||
- AzCopy 10.13.0 (available by `azcopy` and `azcopy10` aliases)
|
||||
- Bazel 4.2.2
|
||||
- Ansible 2.12.5
|
||||
- apt-fast 1.9.12
|
||||
- AzCopy 10.14.1 (available by `azcopy` and `azcopy10` aliases)
|
||||
- Bazel 5.1.1
|
||||
- Bazelisk 1.11.0
|
||||
- Bicep 0.4.1124
|
||||
- Bicep 0.6.1
|
||||
- Buildah 1.21.3 (apt source repository: https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable)
|
||||
- CMake 3.22.1
|
||||
- CodeQL Action Bundle 2.7.3
|
||||
- CMake 3.23.1
|
||||
- CodeQL Action Bundle 2.9.0
|
||||
- Docker Compose v1 1.29.2
|
||||
- Docker Compose v2 2.2.2+azure-1
|
||||
- Docker-Buildx 0.7.1
|
||||
- Docker-Moby Client 20.10.11+azure-3
|
||||
- Docker-Moby Server 20.10.11+azure-3
|
||||
- Fastlane 2.199.0
|
||||
- Git 2.34.1 (apt source repository: ppa:git-core/ppa)
|
||||
- Git LFS 3.0.2 (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.14+azure-1
|
||||
- Docker-Moby Server 20.10.14+azure-1
|
||||
- Fastlane 2.205.2
|
||||
- Git 2.36.0 (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.140.1
|
||||
- Heroku 7.60.2
|
||||
- HHVM (HipHop VM) 4.159.0
|
||||
- jq 1.6
|
||||
- Kind 0.11.1
|
||||
- Kubectl 1.23.1
|
||||
- Kustomize 4.4.1
|
||||
- Kind 0.12.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.1
|
||||
- Newman 5.3.0
|
||||
- Minikube 1.25.2
|
||||
- n 8.2.0
|
||||
- Newman 5.3.2
|
||||
- nvm 0.39.1
|
||||
- OpenSSL 1.1.1f 31 Mar 2020
|
||||
- Packer 1.7.8
|
||||
- Parcel 2.0.1
|
||||
- OpenSSL 1.1.1f-1ubuntu2.12
|
||||
- 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.19.0
|
||||
- R 4.1.2
|
||||
- Pulumi 3.31.0
|
||||
- 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.1.2
|
||||
- Terraform 1.1.9
|
||||
- yamllint 1.26.3
|
||||
- yq 4.16.1
|
||||
- zstd 1.5.0 (homebrew)
|
||||
- yq 4.25.1
|
||||
- zstd 1.5.2 (homebrew)
|
||||
|
||||
### CLI Tools
|
||||
- Alibaba Cloud CLI 3.0.102
|
||||
- AWS CLI 2.4.6
|
||||
- AWS CLI Session manager plugin 1.2.279.0
|
||||
- AWS SAM CLI 1.36.0
|
||||
- Azure CLI (azure-cli) 2.31.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.3.0
|
||||
- Google Cloud SDK 367.0.0 (apt source repository: https://packages.cloud.google.com/apt)
|
||||
- Alibaba Cloud CLI 3.0.118
|
||||
- AWS CLI 2.6.1
|
||||
- AWS CLI Session manager plugin 1.2.312.0
|
||||
- AWS SAM CLI 1.47.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.9.0
|
||||
- Google Cloud SDK 369.0.0 (apt source repository: https://packages.cloud.google.com/apt)
|
||||
- Hub CLI 2.14.2
|
||||
- Netlify CLI 8.1.8
|
||||
- OpenShift CLI 4.9.11
|
||||
- Netlify CLI 10.1.0
|
||||
- OpenShift CLI 4.10.12
|
||||
- ORAS CLI 0.12.0
|
||||
- Vercel CLI 23.1.2
|
||||
- Vercel CLI 24.2.0
|
||||
|
||||
### 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.322+6 | 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 8.1.0 |
|
||||
| Composer | 2.1.14 |
|
||||
| PHPUnit | 8.5.21 |
|
||||
| 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.7
|
||||
- Stack 2.7.5
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.57.0
|
||||
- Rust 1.57.0
|
||||
- Rustdoc 1.57.0
|
||||
- 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 clippy 0.1.57
|
||||
- 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.110
|
||||
- ChromeDriver 96.0.4664.45
|
||||
- Mozilla Firefox 95.0
|
||||
- Geckodriver 0.30.0
|
||||
- Chromium 96.0.4664.0
|
||||
- Google Chrome 101.0.4951.54
|
||||
- ChromeDriver 101.0.4951.41
|
||||
- Chromium 101.0.4951.0
|
||||
- Mozilla Firefox 99.0
|
||||
- Geckodriver 0.31.0
|
||||
- Selenium server 4.1.0
|
||||
|
||||
#### Environment variables
|
||||
@@ -171,75 +168,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.416 5.0.104 5.0.210 5.0.303 5.0.404
|
||||
- 3.1.120 3.1.202 3.1.302 3.1.418 5.0.104 5.0.213 5.0.303 5.0.407 6.0.202
|
||||
|
||||
### .NET tools
|
||||
- nbgv 3.5.103+351d94e36c
|
||||
|
||||
### Databases
|
||||
- MongoDB 5.0.5 (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.2 (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.26
|
||||
- MySQL 8.0.29-0ubuntu0.20.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'
|
||||
```
|
||||
#### 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.12
|
||||
- 1.17.5
|
||||
- 1.16.15
|
||||
- 1.17.9
|
||||
- 1.18.1
|
||||
|
||||
#### Node.js
|
||||
- 12.22.8
|
||||
- 14.18.2
|
||||
- 16.13.1
|
||||
- 12.22.12
|
||||
- 14.19.1
|
||||
- 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.1
|
||||
- 3.9.12
|
||||
- 3.10.4
|
||||
|
||||
#### Ruby
|
||||
- 2.5.9
|
||||
- 2.6.9
|
||||
- 2.7.5
|
||||
- 3.0.3
|
||||
- 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.12/x64 | x64 |
|
||||
| GOROOT_1_17_X64 | /opt/hostedtoolcache/go/1.17.5/x64 | x64 |
|
||||
| GOROOT_1_16_X64 | /opt/hostedtoolcache/go/1.16.15/x64 | x64 |
|
||||
| GOROOT_1_17_X64 | /opt/hostedtoolcache/go/1.17.9/x64 | x64 |
|
||||
| GOROOT_1_18_X64 | /opt/hostedtoolcache/go/1.18.1/x64 | x64 |
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.2.1
|
||||
- PowerShell 7.2.3
|
||||
|
||||
#### PowerShell Modules
|
||||
| Module | Version |
|
||||
| ---------------- | ------- |
|
||||
| MarkdownPS | 1.9 |
|
||||
| Pester | 5.3.1 |
|
||||
| Microsoft.Graph | 1.9.5 |
|
||||
| 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 |
|
||||
@@ -252,9 +260,9 @@
|
||||
| Package Name | Version |
|
||||
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 4.0 |
|
||||
| Android Emulator | 31.1.4 |
|
||||
| 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 | 31.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 |
|
||||
@@ -276,40 +284,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:5445b145c8a1a2f7e5a4b233f571c629aed12fce435496f942ad267f21a05ff2 | 2021-12-02 |
|
||||
| buildpack-deps:buster | sha256:c11cd0a4c97acd1aa8d2289aee5c126ac78adc48108744c104f6741cbd9a1f6c | 2021-12-02 |
|
||||
| buildpack-deps:stretch | sha256:bb93e2c2858cb20f7f16e433773adb2c583fce38dc9c71976c62bf098f956093 | 2021-12-02 |
|
||||
| debian:10 | sha256:5b57f8c365c40fde437d53b953c436995525be7c481eb0128b1cbf3b49b0df18 | 2021-12-02 |
|
||||
| debian:11 | sha256:45ee40a844048c2f6d0105899c1a17733530b56d481612608aab5e2e4048570b | 2021-12-02 |
|
||||
| debian:9 | sha256:aa78ddaa7f8a14bad8f940ebff5542377f91843f6dcc168e41a8628c6007e815 | 2021-12-02 |
|
||||
| moby/buildkit:latest | sha256:d6c89b7085b106301645ddcc77cf64eb7b705ab507b72d52d130ac33f1300417 | 2021-11-18 |
|
||||
| node:12 | sha256:f881ce751096a214a7e595b0ccf9ee7d6e38d8e0141d7e9d5880b2f242ad392b | 2021-12-18 |
|
||||
| node:12-alpine | sha256:8fad09b7620b2bc715cbba92e3313c64a797e453f560118576f1740a44584d5d | 2021-12-18 |
|
||||
| node:14 | sha256:52c884d7cf8509c27def168415a1ff23a0bd95d358dd5787ca77b60474dcb3db | 2021-12-02 |
|
||||
| node:14-alpine | sha256:7bcf853eeb97a25465cb385b015606c22e926f548cbd117f85b7196df8aa0d29 | 2021-12-02 |
|
||||
| node:16 | sha256:89b59ce49929d8a8e230946bdb1b58c14cdbbb86c9a7397610afcecfce1be035 | 2021-12-02 |
|
||||
| node:16-alpine | sha256:a9b9cb880fa429b0bea899cd3b1bc081ab7277cc97e6d2dcd84bd9753b2027e1 | 2021-12-02 |
|
||||
| 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:f26b9bcb6722fd59888caf4f4c1d4990799e3e83d804a83b7b58b4be949dc75e | 2022-04-20 |
|
||||
| buildpack-deps:buster | sha256:b971efe3151fcfb10d0b7dfc739d081a9f9d9413195aa9b80224a66f4a651b4a | 2022-04-20 |
|
||||
| buildpack-deps:stretch | sha256:fd003a4b08626dd6e5a59c61de0639243909644344a5bada501bf42e9982eac6 | 2022-04-20 |
|
||||
| debian:10 | sha256:ebe4b9831fb22dfa778de4ffcb8ea0ad69b5d782d4e86cab14cc1fded5d8e761 | 2022-04-20 |
|
||||
| debian:11 | sha256:6846593d7d8613e5dcc68c8f7d8b8e3179c7f3397b84a47c5b2ce989ef1075a0 | 2022-04-20 |
|
||||
| debian:9 | sha256:cebe6e1c30384958d471467e231f740e8f0fd92cbfd2a435a186e9bada3aee1c | 2022-04-20 |
|
||||
| moby/buildkit:latest | sha256:3fbc9b9d9a74ab650eea43610ed880e51cdc05282d61f83c2e0a3b2e9ed3a344 | 2022-04-27 |
|
||||
| node:12 | sha256:01627afeb110b3054ba4a1405541ca095c8bfca1cb6f2be9479c767a2711879e | 2022-04-20 |
|
||||
| node:12-alpine | sha256:d4b15b3d48f42059a15bd659be60afe21762aae9d6cbea6f124440895c27db68 | 2022-04-11 |
|
||||
| node:14 | sha256:2f39686f6d0b2687550659367fa11f56018a0f782b7e30f1a0ea56b11dece124 | 2022-04-20 |
|
||||
| node:14-alpine | sha256:8845b4f88f64f8c56a39236648ba22946e806a6153c10911f77b70e5a2edb4ca | 2022-04-05 |
|
||||
| node:16 | sha256:a6c217d7c8f001dc6fc081d55c2dd7fb3fefe871d5aa7be9c0c16bd62bea8e0c | 2022-04-27 |
|
||||
| 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 |
|
||||
| curl | 7.68.0-1ubuntu2.10 |
|
||||
| dbus | 1.12.16-2ubuntu2.1 |
|
||||
| dnsutils | 1:9.16.1-0ubuntu2.9 |
|
||||
| dnsutils | 1:9.16.1-0ubuntu2.10 |
|
||||
| dpkg | 1.19.7ubuntu3 |
|
||||
| fakeroot | 1.24-1 |
|
||||
| file | 1:5.38-4 |
|
||||
@@ -322,29 +332,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.5 |
|
||||
| libcurl4 | 7.68.0-1ubuntu2.10 |
|
||||
| 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 |
|
||||
| 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.7 |
|
||||
| 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.4 |
|
||||
| p7zip-full | 16.02+dfsg-7build1 |
|
||||
| p7zip-rar | 16.02-3build1 |
|
||||
| parallel | 20161222-1.1 |
|
||||
@@ -354,27 +365,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 |
|
||||
| ssh | 1:8.2p1-4ubuntu0.4 |
|
||||
| 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-1ubuntu2 |
|
||||
| xorriso | 1.5.2-1 |
|
||||
| xvfb | 2:1.20.13-1ubuntu1\~20.04.2 |
|
||||
| xz-utils | 5.2.4-1ubuntu1 |
|
||||
| xz-utils | 5.2.4-1ubuntu1.1 |
|
||||
| zip | 3.0-11build1 |
|
||||
| zsync | 0.6.2-3ubuntu1 |
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,317 @@
|
||||
# Ubuntu 22.04 LTS
|
||||
- Linux kernel version: 5.15.0-1005-azure
|
||||
- Image Version: 20220504.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.8.2
|
||||
- Homebrew 3.4.10
|
||||
- Miniconda 4.11.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 \<b98afc9f1>)
|
||||
- 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.14.1 (available by `azcopy` and `azcopy10` aliases)
|
||||
- Bazel 5.1.1
|
||||
- Bazelisk 1.11.0
|
||||
- Bicep 0.6.1
|
||||
- CMake 3.23.1
|
||||
- CodeQL Action Bundle 2.9.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.14+azure-1
|
||||
- Docker-Moby Server 20.10.14+azure-1
|
||||
- Fastlane 2.205.2
|
||||
- Git 2.36.0 (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.12.0
|
||||
- Kubectl 1.24.0
|
||||
- Kustomize 4.5.4
|
||||
- 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.1
|
||||
- Packer 1.8.0
|
||||
- Parcel 2.5.0
|
||||
- Pulumi 3.32.0
|
||||
- R 4.2.0
|
||||
- Sphinx Open Source Search Server 2.2.11
|
||||
- SVN 1.14.1
|
||||
- Terraform 1.1.9
|
||||
- yamllint 1.26.3
|
||||
- yq 4.25.1
|
||||
- zstd 1.5.2 (homebrew)
|
||||
|
||||
### CLI Tools
|
||||
- Alibaba Cloud CLI 3.0.118
|
||||
- AWS CLI 2.6.2
|
||||
- AWS CLI Session manager plugin 1.2.312.0
|
||||
- AWS SAM CLI 1.48.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.9.0
|
||||
- Google Cloud SDK 369.0.0 (apt source repository: https://packages.cloud.google.com/apt)
|
||||
- Hub CLI 2.14.2
|
||||
- Netlify CLI 10.2.0
|
||||
- OpenShift CLI 4.10.12
|
||||
- ORAS CLI 0.12.0
|
||||
- Vercel CLI 24.2.0
|
||||
|
||||
### GraalVM
|
||||
| Version | Environment variables |
|
||||
| --------- | --------------------- |
|
||||
| CE 22.1.0 | GRAALVM_11_ROOT |
|
||||
|
||||
### PHP
|
||||
| Tool | Version |
|
||||
| -------- | ------- |
|
||||
| PHP | 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.2
|
||||
- GHCup 0.1.17.7
|
||||
- Stack 2.7.5
|
||||
|
||||
### 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 clippy 0.1.60
|
||||
- Cbindgen 0.23.0
|
||||
- Rustfmt 1.4.38
|
||||
|
||||
### Browsers and Drivers
|
||||
- Google Chrome 101.0.4951.54
|
||||
- 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.202
|
||||
|
||||
### .NET tools
|
||||
- nbgv 3.5.103+351d94e36c
|
||||
|
||||
### Databases
|
||||
- sqlite3 3.37.2
|
||||
|
||||
#### PostgreSQL
|
||||
- PostgreSQL 14.2 (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.1
|
||||
- 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.9
|
||||
- 1.18.1
|
||||
|
||||
#### Node.js
|
||||
- 14.19.1
|
||||
- 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.12
|
||||
- 3.10.4
|
||||
|
||||
#### Ruby
|
||||
- 3.1.2
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value | Architecture |
|
||||
| --------------- | ---------------------------------- | ------------ |
|
||||
| GOROOT_1_17_X64 | /opt/hostedtoolcache/go/1.17.9/x64 | x64 |
|
||||
| GOROOT_1_18_X64 | /opt/hostedtoolcache/go/1.18.1/x64 | x64 |
|
||||
|
||||
### PowerShell Tools
|
||||
- PowerShell 7.2.3
|
||||
|
||||
#### PowerShell Modules
|
||||
| Module | Version |
|
||||
| ---------------- | ------- |
|
||||
| MarkdownPS | 1.9 |
|
||||
| Microsoft.Graph | 1.9.5 |
|
||||
| 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:f26b9bcb6722fd59888caf4f4c1d4990799e3e83d804a83b7b58b4be949dc75e | 2022-04-20 |
|
||||
| buildpack-deps:buster | sha256:b971efe3151fcfb10d0b7dfc739d081a9f9d9413195aa9b80224a66f4a651b4a | 2022-04-20 |
|
||||
| debian:10 | sha256:ebe4b9831fb22dfa778de4ffcb8ea0ad69b5d782d4e86cab14cc1fded5d8e761 | 2022-04-20 |
|
||||
| debian:11 | sha256:6846593d7d8613e5dcc68c8f7d8b8e3179c7f3397b84a47c5b2ce989ef1075a0 | 2022-04-20 |
|
||||
| moby/buildkit:latest | sha256:3fbc9b9d9a74ab650eea43610ed880e51cdc05282d61f83c2e0a3b2e9ed3a344 | 2022-04-27 |
|
||||
| node:14 | sha256:2f39686f6d0b2687550659367fa11f56018a0f782b7e30f1a0ea56b11dece124 | 2022-04-20 |
|
||||
| node:14-alpine | sha256:8845b4f88f64f8c56a39236648ba22946e806a6153c10911f77b70e5a2edb4ca | 2022-04-05 |
|
||||
| node:16 | sha256:a6c217d7c8f001dc6fc081d55c2dd7fb3fefe871d5aa7be9c0c16bd62bea8e0c | 2022-04-27 |
|
||||
| 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.1 |
|
||||
| dbus | 1.12.20-2ubuntu4 |
|
||||
| dnsutils | 1:9.18.1-1ubuntu1 |
|
||||
| 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.1 |
|
||||
| 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.1 |
|
||||
| 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"
|
||||
@@ -83,7 +83,7 @@ function Get-NodeVersion {
|
||||
}
|
||||
|
||||
function Get-OpensslVersion {
|
||||
return $(openssl version)
|
||||
return "OpenSSL $(dpkg-query -W -f '${Version}' openssl)"
|
||||
}
|
||||
|
||||
function Get-PerlVersion {
|
||||
@@ -236,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 {
|
||||
@@ -331,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
|
||||
|
||||
@@ -17,7 +17,7 @@ function Get-SqliteVersion {
|
||||
|
||||
function Get-MySQLVersion {
|
||||
$mySQLVersion = mysqld --version | Take-OutputPart -Part 2
|
||||
if (-not (Test-IsUbuntu20)) {
|
||||
if (Test-IsUbuntu18) {
|
||||
$mySQLVersion = $mySQLVersion | Take-OutputPart -Part 0 -Delimiter "-"
|
||||
}
|
||||
return "MySQL $mySQLVersion"
|
||||
@@ -33,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 = ""
|
||||
|
||||
|
||||
@@ -41,22 +41,27 @@ $runtimesList = @(
|
||||
(Get-BashVersion),
|
||||
(Get-CPPVersions),
|
||||
(Get-FortranVersions),
|
||||
(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)
|
||||
)
|
||||
|
||||
if ((Test-IsUbuntu18) -or (Test-IsUbuntu20)) {
|
||||
$runtimesList += @(
|
||||
(Get-MsbuildVersion),
|
||||
(Get-KotlinVersion),
|
||||
(Get-MonoVersion),
|
||||
(Get-ErlangVersion),
|
||||
(Get-ErlangRebar3Version),
|
||||
(Get-SwiftVersion)
|
||||
)
|
||||
}
|
||||
|
||||
$markdown += New-MDList -Style Unordered -Lines ($runtimesList | Sort-Object)
|
||||
|
||||
$markdown += New-MDHeader "Package Management" -Level 3
|
||||
@@ -81,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)
|
||||
)
|
||||
@@ -103,7 +111,6 @@ $toolsList = @(
|
||||
(Get-BazelVersion),
|
||||
(Get-BazeliskVersion),
|
||||
(Get-BicepVersion),
|
||||
(Get-BuildahVersion),
|
||||
(Get-CodeQLBundleVersion),
|
||||
(Get-CMakeVersion),
|
||||
(Get-DockerMobyClientVersion),
|
||||
@@ -116,14 +123,12 @@ $toolsList = @(
|
||||
(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),
|
||||
@@ -133,18 +138,26 @@ $toolsList = @(
|
||||
(Get-OpensslVersion),
|
||||
(Get-PackerVersion),
|
||||
(Get-ParcelVersion),
|
||||
(Get-PhantomJSVersion),
|
||||
(Get-PodManVersion),
|
||||
(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-BuildahVersion),
|
||||
(Get-PhantomJSVersion),
|
||||
(Get-LeiningenVersion),
|
||||
(Get-HHVMVersion),
|
||||
(Get-PodManVersion),
|
||||
(Get-SkopeoVersion)
|
||||
)
|
||||
}
|
||||
|
||||
if ((Test-IsUbuntu20) -or (Test-IsUbuntu22)) {
|
||||
$toolsList += (Get-FastlaneVersion)
|
||||
}
|
||||
|
||||
@@ -168,11 +181,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
|
||||
@@ -214,12 +229,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
|
||||
@@ -230,16 +250,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
|
||||
@@ -261,12 +293,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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -89,8 +89,7 @@ function Get-DockerBuildxVersion {
|
||||
}
|
||||
|
||||
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 +142,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"
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -46,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
|
||||
@@ -69,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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -1,193 +0,0 @@
|
||||
#!/bin/bash -e
|
||||
#
|
||||
# Temporary fix for the https://github.com/actions/virtual-environments/issues/4732 issue
|
||||
# Taken from the official ubuntu:20.04 docker container
|
||||
### BEGIN INIT INFO
|
||||
# Provides: mysql
|
||||
# Required-Start: $remote_fs $syslog
|
||||
# Required-Stop: $remote_fs $syslog
|
||||
# Should-Start: $network $time
|
||||
# Should-Stop: $network $time
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Start and stop the mysql database server daemon
|
||||
# Description: Controls the main MySQL database server daemon "mysqld"
|
||||
# and its wrapper script "mysqld_safe".
|
||||
### END INIT INFO
|
||||
#
|
||||
set -e
|
||||
set -u
|
||||
${DEBIAN_SCRIPT_DEBUG:+ set -v -x}
|
||||
|
||||
test -x /usr/bin/mysqld_safe || exit 0
|
||||
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
|
||||
CONF=/etc/mysql/my.cnf
|
||||
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
|
||||
|
||||
# priority can be overriden and "-s" adds output to stderr
|
||||
ERR_LOGGER="logger -p daemon.err -t /etc/init.d/mysql -i"
|
||||
|
||||
# Safeguard (relative paths, core dumps..)
|
||||
cd /
|
||||
umask 077
|
||||
|
||||
# mysqladmin likes to read /root/.my.cnf. This is usually not what I want
|
||||
# as many admins e.g. only store a password without a username there and
|
||||
# so break my scripts.
|
||||
export HOME=/etc/mysql/
|
||||
|
||||
## Fetch a particular option from mysql's invocation.
|
||||
#
|
||||
# Usage: void mysqld_get_param option
|
||||
mysqld_get_param() {
|
||||
/usr/sbin/mysqld --print-defaults \
|
||||
| tr " " "\n" \
|
||||
| grep -- "--$1" \
|
||||
| tail -n 1 \
|
||||
| cut -d= -f2
|
||||
}
|
||||
|
||||
## Do some sanity checks before even trying to start mysqld.
|
||||
sanity_checks() {
|
||||
# check for config file
|
||||
if [ ! -r /etc/mysql/my.cnf ]; then
|
||||
log_warning_msg "$0: WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz"
|
||||
echo "WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" | $ERR_LOGGER
|
||||
fi
|
||||
|
||||
# check for diskspace shortage
|
||||
datadir=`mysqld_get_param datadir`
|
||||
if LC_ALL=C BLOCKSIZE= df --portability $datadir/. | tail -n 1 | awk '{ exit ($4>4096) }'; then
|
||||
log_failure_msg "$0: ERROR: The partition with $datadir is too full!"
|
||||
echo "ERROR: The partition with $datadir is too full!" | $ERR_LOGGER
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
## Checks if there is a server running and if so if it is accessible.
|
||||
#
|
||||
# check_alive insists on a pingable server
|
||||
# check_dead also fails if there is a lost mysqld in the process list
|
||||
#
|
||||
# Usage: boolean mysqld_status [check_alive|check_dead] [warn|nowarn]
|
||||
mysqld_status () {
|
||||
ping_output=`$MYADMIN ping 2>&1`; ping_alive=$(( ! $? ))
|
||||
|
||||
ps_alive=0
|
||||
pidfile=`mysqld_get_param pid-file`
|
||||
if [ -f "$pidfile" ] && ps `cat $pidfile` >/dev/null 2>&1; then ps_alive=1; fi
|
||||
|
||||
if [ "$1" = "check_alive" -a $ping_alive = 1 ] ||
|
||||
[ "$1" = "check_dead" -a $ping_alive = 0 -a $ps_alive = 0 ]; then
|
||||
return 0 # EXIT_SUCCESS
|
||||
else
|
||||
if [ "$2" = "warn" ]; then
|
||||
echo -e "$ps_alive processes alive and '$MYADMIN ping' resulted in\n$ping_output\n" | $ERR_LOGGER -p daemon.debug
|
||||
fi
|
||||
return 1 # EXIT_FAILURE
|
||||
fi
|
||||
}
|
||||
|
||||
#
|
||||
# main()
|
||||
#
|
||||
|
||||
case "${1:-''}" in
|
||||
'start')
|
||||
sanity_checks;
|
||||
# Start daemon
|
||||
log_daemon_msg "Starting MySQL database server" "mysqld"
|
||||
if mysqld_status check_alive nowarn; then
|
||||
log_progress_msg "already running"
|
||||
log_end_msg 0
|
||||
else
|
||||
# Could be removed during boot
|
||||
test -e /var/run/mysqld || install -m 755 -o mysql -g root -d /var/run/mysqld
|
||||
|
||||
# Start MySQL!
|
||||
su - mysql -s /bin/sh -c "/usr/bin/mysqld_safe > /dev/null 2>&1 &"
|
||||
|
||||
# 6s was reported in #352070 to be too few when using ndbcluster
|
||||
# 14s was reported in #736452 to be too few with large installs
|
||||
for i in $(seq 1 30); do
|
||||
sleep 1
|
||||
if mysqld_status check_alive nowarn ; then break; fi
|
||||
log_progress_msg "."
|
||||
done
|
||||
if mysqld_status check_alive warn; then
|
||||
log_end_msg 0
|
||||
# Now start mysqlcheck or whatever the admin wants.
|
||||
output=$(/etc/mysql/debian-start)
|
||||
[ -n "$output" ] && log_action_msg "$output"
|
||||
else
|
||||
log_end_msg 1
|
||||
log_failure_msg "Please take a look at the syslog"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
|
||||
'stop')
|
||||
# * As a passwordless mysqladmin (e.g. via ~/.my.cnf) must be possible
|
||||
# at least for cron, we can rely on it here, too. (although we have
|
||||
# to specify it explicit as e.g. sudo environments points to the normal
|
||||
# users home and not /root)
|
||||
log_daemon_msg "Stopping MySQL database server" "mysqld"
|
||||
if ! mysqld_status check_dead nowarn; then
|
||||
set +e
|
||||
shutdown_out=`$MYADMIN shutdown 2>&1`; r=$?
|
||||
set -e
|
||||
if [ "$r" -ne 0 ]; then
|
||||
log_end_msg 1
|
||||
[ "$VERBOSE" != "no" ] && log_failure_msg "Error: $shutdown_out"
|
||||
log_daemon_msg "Killing MySQL database server by signal" "mysqld"
|
||||
killall -15 mysqld
|
||||
server_down=
|
||||
for i in 1 2 3 4 5 6 7 8 9 10; do
|
||||
sleep 1
|
||||
if mysqld_status check_dead nowarn; then server_down=1; break; fi
|
||||
done
|
||||
if test -z "$server_down"; then killall -9 mysqld; fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! mysqld_status check_dead warn; then
|
||||
log_end_msg 1
|
||||
log_failure_msg "Please stop MySQL manually and read /usr/share/doc/mysql-server-5.7/README.Debian.gz!"
|
||||
exit -1
|
||||
else
|
||||
log_end_msg 0
|
||||
fi
|
||||
;;
|
||||
|
||||
'restart')
|
||||
set +e; $SELF stop; set -e
|
||||
$SELF start
|
||||
;;
|
||||
|
||||
'reload'|'force-reload')
|
||||
log_daemon_msg "Reloading MySQL database server" "mysqld"
|
||||
$MYADMIN reload
|
||||
log_end_msg 0
|
||||
;;
|
||||
|
||||
'status')
|
||||
if mysqld_status check_alive nowarn; then
|
||||
log_action_msg "$($MYADMIN version)"
|
||||
else
|
||||
log_action_msg "MySQL is stopped."
|
||||
exit 3
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: $SELF start|stop|restart|reload|force-reload|status"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Some success paths end up returning non-zero so exit 0 explicitly. See
|
||||
# bug #739846.
|
||||
exit 0
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,8 +39,8 @@ 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
|
||||
|
||||
|
||||
@@ -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,50 +8,124 @@ 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-get install -y --no-install-recommends ant ant-optional
|
||||
echo "ANT_HOME=/usr/share/ant" | tee -a /etc/environment
|
||||
@@ -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,11 +7,8 @@
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
KOTLIN_ROOT="/usr/share"
|
||||
|
||||
kotlinReleasesUrl="https://api.github.com/repos/JetBrains/kotlin/releases"
|
||||
latestRelease=$(curl -s $kotlinReleasesUrl | jq -r 'map(select(.prerelease == false)) | sort_by(.target_commitish)[-1]')
|
||||
URL=$(echo $latestRelease | 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
|
||||
|
||||
|
||||
@@ -12,62 +12,16 @@ 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
|
||||
|
||||
# Ubuntu's repo now contains 8.0.28 which is buggy,
|
||||
# see https://bugs.mysql.com/bug.php?id=105288
|
||||
export ACCEPT_EULA=Y
|
||||
|
||||
if isUbuntu20 ; then
|
||||
mkdir -p /tmp/mysql
|
||||
pushd /tmp
|
||||
# Install MySQL Client
|
||||
apt-get install mysql-client -y
|
||||
|
||||
# Mandatory dependency
|
||||
apt-get install -y libmecab2 libaio1
|
||||
# Install MySQL Server
|
||||
apt-get install -y mysql-server
|
||||
|
||||
wget -q https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.26-1ubuntu${VERSION_ID}_amd64.deb-bundle.tar
|
||||
tar -xf mysql-server_8.0.26-1ubuntu${VERSION_ID}_amd64.deb-bundle.tar -C /tmp/mysql
|
||||
|
||||
pushd mysql
|
||||
|
||||
# Remove debs with debug info
|
||||
rm mysql-community-*debug*.deb
|
||||
|
||||
mysql_debs=(
|
||||
mysql-common*
|
||||
mysql-community-client-plugins*
|
||||
mysql-community-client-core*
|
||||
mysql-community-client*
|
||||
mysql-client*
|
||||
mysql-community-server-core*
|
||||
mysql-community-server*
|
||||
mysql-server*
|
||||
libmysqlclient21*
|
||||
libmysqlclient-dev*
|
||||
)
|
||||
|
||||
for package in ${mysql_debs[@]}; do
|
||||
dpkg -i $package
|
||||
done
|
||||
|
||||
# Install the /etc/init.d/mysql script for backward compatibility with sysVinit
|
||||
cp $HELPER_SCRIPTS/mysql-service-helper.sh /etc/init.d/mysql
|
||||
# Fix permission
|
||||
chmod 755 /etc/init.d/mysql
|
||||
|
||||
# Start mysql to change its settings
|
||||
systemctl start mysql.service
|
||||
# Enable mysql log-in without sudo by activation of the mysql_native_password plugin
|
||||
mysql -s -N -h localhost -uroot -proot -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; FLUSH PRIVILEGES;"
|
||||
else
|
||||
export ACCEPT_EULA=Y
|
||||
|
||||
# Install MySQL Client
|
||||
apt-get install mysql-client -y
|
||||
|
||||
# Install MySQL Server
|
||||
apt-get install -y mysql-server
|
||||
|
||||
#Install MySQL Dev tools
|
||||
apt install libmysqlclient-dev -y
|
||||
fi
|
||||
#Install MySQL Dev tools
|
||||
apt install libmysqlclient-dev -y
|
||||
|
||||
# Disable mysql.service
|
||||
systemctl is-active --quiet mysql.service && systemctl stop mysql.service
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -64,9 +64,11 @@ for version in $php_versions; do
|
||||
php$version-zip \
|
||||
php$version-zmq
|
||||
|
||||
if [[ $version == "5.6" || $version == "7.0" || $version == "7.1" ]]; then
|
||||
apt-get install -y --no-install-recommends php$version-mcrypt php$version-recode
|
||||
fi
|
||||
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
|
||||
@@ -75,18 +77,6 @@ for version in $php_versions; do
|
||||
if [[ $version != "8.0" && $version != "8.1" ]]; then
|
||||
apt-get install -y --no-install-recommends php$version-xmlrpc php$version-json
|
||||
fi
|
||||
|
||||
if [[ $version != "5.6" && $version != "7.0" ]]; then
|
||||
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
|
||||
fi
|
||||
|
||||
if [[ $version = "7.0" || $version = "7.1" ]]; then
|
||||
apt-get install -y --no-install-recommends php$version-sodium
|
||||
fi
|
||||
done
|
||||
|
||||
apt-get install -y --no-install-recommends php-pear
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -4,5 +4,19 @@
|
||||
## Desc: Installs powershellcore
|
||||
################################################################################
|
||||
|
||||
# Install Powershell
|
||||
apt-get install -y powershell
|
||||
# Source the helpers for use with the script
|
||||
source $HELPER_SCRIPTS/os.sh
|
||||
source $HELPER_SCRIPTS/install.sh
|
||||
|
||||
if isUbuntu22; then
|
||||
# Install libssl1.1
|
||||
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
|
||||
|
||||
# Install Powershell
|
||||
download_with_retries "https://github.com/PowerShell/PowerShell/releases/download/v7.2.3/powershell-lts_7.2.3-1.deb_amd64.deb" "/tmp"
|
||||
dpkg -i /tmp/powershell-lts_7.2.3-1.deb_amd64.deb
|
||||
else
|
||||
# Install Powershell
|
||||
apt-get install -y powershell
|
||||
fi
|
||||
|
||||
@@ -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,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" }
|
||||
@@ -36,11 +36,4 @@ Describe "MySQL" {
|
||||
"sudo mysql -vvv -e 'DROP DATABASE smoke_test' -uroot -proot" | Should -ReturnZeroExitCode
|
||||
"sudo systemctl stop mysql" | Should -ReturnZeroExitCode
|
||||
}
|
||||
|
||||
It "MySQL sysVinit script works" {
|
||||
sudo /etc/init.d/mysql start | Out-Null
|
||||
systemctl is-active mysql | Should -Be "active"
|
||||
sudo /etc/init.d/mysql stop | Out-Null
|
||||
systemctl is-active mysql | Should -Be "inactive"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -42,6 +47,16 @@ Describe "Java" {
|
||||
if ($Version -eq 8) {
|
||||
$Version = "1.${Version}"
|
||||
}
|
||||
"`"$javaPath`" -version" | Should -MatchCommandOutput ([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}."))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,7 +126,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 +162,7 @@ Describe "gfortran" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Mono" {
|
||||
Describe "Mono" -Skip:(Test-IsUbuntu22) {
|
||||
It "mono" {
|
||||
"mono --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
@@ -176,7 +176,7 @@ Describe "Mono" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "MSSQLCommandLineTools" {
|
||||
Describe "MSSQLCommandLineTools" -Skip:(Test-IsUbuntu22) {
|
||||
It "sqlcmd" {
|
||||
"sqlcmd -?" | Should -ReturnZeroExitCode
|
||||
}
|
||||
@@ -200,7 +200,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 +244,7 @@ Describe "Heroku" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "HHVM" {
|
||||
Describe "HHVM" -Skip:(Test-IsUbuntu22) {
|
||||
It "hhvm" {
|
||||
"hhvm --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
@@ -292,7 +292,7 @@ Describe "Kubernetes tools" {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Leiningen" {
|
||||
Describe "Leiningen" -Skip:(Test-IsUbuntu22) {
|
||||
It "leiningen" {
|
||||
"lein --version" | Should -ReturnZeroExitCode
|
||||
}
|
||||
@@ -316,13 +316,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 +332,7 @@ Describe "GraalVM" -Skip:(-not (Test-IsUbuntu20)) {
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Containers" {
|
||||
Describe "Containers" -Skip:(Test-IsUbuntu22) {
|
||||
$testCases = @("podman", "buildah", "skopeo") | ForEach-Object { @{ContainerCommand = $_} }
|
||||
|
||||
It "<ContainerCommand>" -TestCases $testCases {
|
||||
@@ -391,7 +391,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,7 +285,6 @@
|
||||
},
|
||||
"php": {
|
||||
"versions": [
|
||||
"7.1",
|
||||
"7.2",
|
||||
"7.3",
|
||||
"7.4",
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -149,20 +149,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": [
|
||||
|
||||
@@ -149,20 +149,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": [
|
||||
|
||||
@@ -0,0 +1,389 @@
|
||||
|
||||
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 "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}"
|
||||
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/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"]
|
||||
}
|
||||
|
||||
}
|
||||
+124
-116
@@ -1,54 +1,54 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[All OSs] Python version 3.5 will be removed from the images on January 24, 2022](https://github.com/actions/virtual-environments/issues/4744) |
|
||||
| [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](https://github.com/actions/virtual-environments/issues/5446) |
|
||||
***
|
||||
# macOS 10.15 info
|
||||
- System Version: macOS 10.15.7 (19H1615)
|
||||
- System Version: macOS 10.15.7 (19H1824)
|
||||
- Kernel Version: Darwin 19.6.0
|
||||
- Image Version: 20211220.1
|
||||
- Image Version: 20220501.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.416 5.0.102 5.0.202 5.0.302 5.0.404
|
||||
- .NET SDK 3.1.101 3.1.201 3.1.302 3.1.418 5.0.102 5.0.202 5.0.302 5.0.407
|
||||
- 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_3) 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_3) 11.2.0 - available by `gfortran-11` alias
|
||||
- Go 1.15.15
|
||||
- julia 1.7.0
|
||||
- Kotlin 1.6.10-release-923
|
||||
- GNU Fortran (Homebrew GCC 11.3.0) 11.3.0 - available by `gfortran-11` alias
|
||||
- Go 1.17.9
|
||||
- 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.13.1
|
||||
- Node.js v16.15.0
|
||||
- NVM 0.39.1
|
||||
- NVM - Cached node versions: v12.22.8 v14.18.2 v16.13.1
|
||||
- NVM - Cached node versions: v12.22.12 v14.19.1 v16.15.0
|
||||
- Perl 5.34.0
|
||||
- PHP 8.1.1
|
||||
- PHP 8.1.5
|
||||
- Python 2.7.18
|
||||
- Python 3.9.9
|
||||
- R 4.1.2
|
||||
- Ruby 2.7.5p203
|
||||
- Python 3.9.12
|
||||
- R 4.2.0
|
||||
- Ruby 2.7.6p219
|
||||
|
||||
### Package Management
|
||||
- Bundler version 2.2.33
|
||||
- Bundler version 2.3.12
|
||||
- Carthage 0.38.0
|
||||
- CocoaPods 1.11.2
|
||||
- Composer 2.1.14
|
||||
- Homebrew 3.3.9
|
||||
- Miniconda 4.10.3
|
||||
- NPM 8.1.2
|
||||
- CocoaPods 1.11.3
|
||||
- Composer 2.3.5
|
||||
- Homebrew 3.4.9
|
||||
- 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
|
||||
- Pip 22.0.4 (python 3.9)
|
||||
- Pipx 1.0.0
|
||||
- RubyGems 3.2.33
|
||||
- Vcpkg 2021 (build from master \<cf43cf71c>)
|
||||
- Yarn 1.22.17
|
||||
- Vcpkg 2022 (build from master \<c8a56fdc1>)
|
||||
- Yarn 1.22.18
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -58,162 +58,169 @@
|
||||
|
||||
### Project Management
|
||||
- Apache Ant(TM) 1.10.12
|
||||
- Apache Maven 3.8.4
|
||||
- Gradle 7.3.2
|
||||
- Sbt 1.5.7
|
||||
- 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.2
|
||||
- azcopy 10.14.1
|
||||
- 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.1
|
||||
- GitHub CLI: 2.3.0
|
||||
- GNU parallel 20211122
|
||||
- Curl 7.83.0
|
||||
- Git 2.35.1
|
||||
- Git LFS: 3.1.4
|
||||
- GitHub CLI: 2.9.0
|
||||
- GNU parallel 20220422
|
||||
- GNU Tar 1.34 - available by 'gtar' alias
|
||||
- GNU Wget 1.21.2
|
||||
- gpg (GnuPG) 2.3.3
|
||||
- helm v3.7.2+g663a896
|
||||
- GNU Wget 1.21.3
|
||||
- gpg (GnuPG) 2.3.6
|
||||
- helm v3.8.2+g6e3701e
|
||||
- Hub CLI: 2.14.2
|
||||
- jq 1.6
|
||||
- mongo v5.0.4
|
||||
- mongod v5.0.4
|
||||
- Newman 5.3.0
|
||||
- OpenSSL 1.1.1m 14 Dec 2021 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1m)`
|
||||
- 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.1n 15 Mar 2022 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1n)`
|
||||
- Packer 1.8.0
|
||||
- PostgreSQL 14.2
|
||||
- psql (PostgreSQL) 14.2
|
||||
- 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.30r148432
|
||||
- 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.102
|
||||
- App Center CLI 2.10.7
|
||||
- AWS CLI 2.4.6
|
||||
- AWS SAM CLI 1.36.0
|
||||
- AWS Session Manager CLI 1.2.279.0
|
||||
- Azure CLI 2.31.0
|
||||
- Bicep CLI 0.4.1124
|
||||
- Aliyun CLI 3.0.117
|
||||
- App Center CLI 2.10.10
|
||||
- AWS CLI 2.6.1
|
||||
- AWS SAM CLI 1.47.0
|
||||
- AWS Session Manager CLI 1.2.312.0
|
||||
- Azure CLI (azure-devops) 0.25.0
|
||||
- Azure CLI 2.36.0
|
||||
- Bicep CLI 0.5.6
|
||||
- Cabal 3.6.2.0
|
||||
- Cmake 3.22.1
|
||||
- Fastlane 2.199.0
|
||||
- GHC 9.2.1
|
||||
- GHCup 0.1.17.4
|
||||
- Jazzy 0.14.1
|
||||
- Stack 2.7.3
|
||||
- SwiftFormat 0.49.1
|
||||
- Cmake 3.23.1
|
||||
- Fastlane 2.205.2
|
||||
- GHC 9.2.2
|
||||
- GHCup v0.1.17.7
|
||||
- Jazzy 0.14.2
|
||||
- Stack 2.7.5
|
||||
- SwiftFormat 0.49.7
|
||||
- Swig 4.0.2
|
||||
- Xcode Command Line Tools 12.4.0.0.1.1610135815
|
||||
|
||||
### Linters
|
||||
- SwiftLint 0.45.1
|
||||
- SwiftLint 0.47.1
|
||||
- yamllint 1.26.3
|
||||
|
||||
### Browsers
|
||||
- Safari 15.2 (15612.3.6.1.8)
|
||||
- SafariDriver 15.2 (15612.3.6.1.8)
|
||||
- Google Chrome 96.0.4664.110
|
||||
- ChromeDriver 96.0.4664.45
|
||||
- Microsoft Edge 96.0.1054.62
|
||||
- MSEdgeDriver 96.0.1054.62
|
||||
- Mozilla Firefox 95.0.2
|
||||
- geckodriver 0.30.0
|
||||
- Selenium server 4.1.0
|
||||
- Safari 15.4 (15613.1.17.1.13)
|
||||
- SafariDriver 15.4 (15613.1.17.1.13)
|
||||
- Google Chrome 101.0.4951.41
|
||||
- ChromeDriver 101.0.4951.41
|
||||
- Microsoft Edge 101.0.1210.32
|
||||
- MSEdgeDriver 101.0.1210.32
|
||||
- Mozilla Firefox 99.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 |
|
||||
| 8.0.322+6 (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.9
|
||||
- 2.7.5
|
||||
- 3.0.3
|
||||
- 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.8
|
||||
- 14.18.2
|
||||
- 16.13.1
|
||||
- 12.22.12
|
||||
- 14.19.1
|
||||
- 16.15.0
|
||||
|
||||
#### Go
|
||||
| Version | Architecture | Environment Variable |
|
||||
| ------- | ------------ | -------------------- |
|
||||
| 1.15.15 (Default) | x64 | GOROOT_1_15_X64 |
|
||||
| 1.16.12 | x64 | GOROOT_1_16_X64 |
|
||||
| 1.17.5 | x64 | GOROOT_1_17_X64 |
|
||||
| 1.16.15 | x64 | GOROOT_1_16_X64 |
|
||||
| 1.17.9 (Default) | x64 | GOROOT_1_17_X64 |
|
||||
| 1.18.1 | x64 | GOROOT_1_18_X64 |
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.57.0
|
||||
- Rust 1.57.0
|
||||
- Rustdoc 1.57.0
|
||||
- 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 v0.10.2
|
||||
- Cbindgen 0.20.0
|
||||
- Clippy 0.1.57
|
||||
- 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.1
|
||||
- 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.52 | /usr/local/etc/httpd/httpd.conf | none | 80 |
|
||||
| nginx | 1.21.4 | /usr/local/etc/nginx/nginx.conf | none | 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.16.2
|
||||
- 8.10.22.11
|
||||
|
||||
#### Xamarin bundles
|
||||
| symlink | Xamarin.Mono | Xamarin.iOS | Xamarin.Mac | Xamarin.Android |
|
||||
@@ -352,10 +359,10 @@
|
||||
| Package Name | Version |
|
||||
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 4.0 |
|
||||
| Android Emulator | 31.1.4 |
|
||||
| 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 | 31.0.3 |
|
||||
| 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 |
|
||||
@@ -378,7 +385,8 @@
|
||||
### Miscellaneous
|
||||
- libXext 1.3.4
|
||||
- libXft 2.3.4
|
||||
- Zlib 1.2.11
|
||||
- Tcl/Tk 8.6.12
|
||||
- Zlib 1.2.12
|
||||
|
||||
|
||||
|
||||
|
||||
+140
-123
@@ -1,53 +1,54 @@
|
||||
| Announcements |
|
||||
|-|
|
||||
| [[All OSs] Python version 3.5 will be removed from the images on January 24, 2022](https://github.com/actions/virtual-environments/issues/4744) |
|
||||
| [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](https://github.com/actions/virtual-environments/issues/5446) |
|
||||
***
|
||||
# macOS 11.6 info
|
||||
- System Version: macOS 11.6.2 (20G314)
|
||||
- System Version: macOS 11.6.5 (20G527)
|
||||
- Kernel Version: Darwin 20.6.0
|
||||
- Image Version: 20211219.1
|
||||
- Image Version: 20220501.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.416 5.0.102 5.0.202 5.0.302 5.0.404
|
||||
- .NET SDK 3.1.101 3.1.201 3.1.302 3.1.418 5.0.102 5.0.202 5.0.302 5.0.407
|
||||
- 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_3) 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_3) 11.2.0 - available by `gfortran-11` alias
|
||||
- Go 1.15.15
|
||||
- julia 1.7.0
|
||||
- Kotlin 1.6.10-release-923
|
||||
- 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.13.1
|
||||
- GNU Fortran (Homebrew GCC 11.3.0) 11.3.0 - available by `gfortran-11` alias
|
||||
- Go 1.17.9
|
||||
- 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.8 v14.18.2 v16.13.1
|
||||
- NVM - Cached node versions: v12.22.12 v14.19.1 v16.15.0
|
||||
- Perl 5.34.0
|
||||
- PHP 8.1.1
|
||||
- PHP 8.1.5
|
||||
- Python 2.7.18
|
||||
- Python 3.9.9
|
||||
- Ruby 2.7.5p203
|
||||
- Python 3.9.12
|
||||
- R 4.2.0
|
||||
- Ruby 2.7.6p219
|
||||
|
||||
### Package Management
|
||||
- Bundler version 2.2.33
|
||||
- Bundler version 2.3.12
|
||||
- Carthage 0.38.0
|
||||
- CocoaPods 1.11.2
|
||||
- Composer 2.1.14
|
||||
- Homebrew 3.3.8
|
||||
- Miniconda 4.10.3
|
||||
- NPM 8.1.2
|
||||
- CocoaPods 1.11.3
|
||||
- Composer 2.3.5
|
||||
- Homebrew 3.4.9
|
||||
- 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
|
||||
- Pip 22.0.4 (python 3.9)
|
||||
- Pipx 1.0.0
|
||||
- RubyGems 3.2.33
|
||||
- Vcpkg 2021 (build from master \<50fd3d995>)
|
||||
- Yarn 1.22.17
|
||||
- Vcpkg 2022 (build from master \<c8a56fdc1>)
|
||||
- Yarn 1.22.18
|
||||
|
||||
#### Environment variables
|
||||
| Name | Value |
|
||||
@@ -57,158 +58,171 @@
|
||||
|
||||
### Project Management
|
||||
- Apache Ant(TM) 1.10.12
|
||||
- Apache Maven 3.8.4
|
||||
- Gradle 7.3.2
|
||||
- Sbt 1.5.7
|
||||
- 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.2
|
||||
- azcopy 10.14.1
|
||||
- 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.1
|
||||
- GitHub CLI: 2.3.0
|
||||
- Curl 7.83.0
|
||||
- Git 2.35.1
|
||||
- Git LFS: 3.1.4
|
||||
- GitHub CLI: 2.9.0
|
||||
- GNU Tar 1.34 - available by 'gtar' alias
|
||||
- GNU Wget 1.21.2
|
||||
- gpg (GnuPG) 2.3.3
|
||||
- helm v3.7.2+g663a896
|
||||
- GNU Wget 1.21.3
|
||||
- gpg (GnuPG) 2.3.6
|
||||
- helm v3.8.2+g6e3701e
|
||||
- Hub CLI: 2.14.2
|
||||
- jq 1.6
|
||||
- mongo v5.0.4
|
||||
- mongod v5.0.4
|
||||
- Newman 5.3.0
|
||||
- OpenSSL 1.1.1m 14 Dec 2021 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1m)`
|
||||
- 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.1n 15 Mar 2022 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1n)`
|
||||
- Packer 1.8.0
|
||||
- PostgreSQL 14.2
|
||||
- psql (PostgreSQL) 14.2
|
||||
- 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.102
|
||||
- App Center CLI 2.10.6
|
||||
- AWS CLI 2.4.6
|
||||
- AWS SAM CLI 1.36.0
|
||||
- AWS Session Manager CLI 1.2.279.0
|
||||
- Azure CLI 2.31.0
|
||||
- Bicep CLI 0.4.1124
|
||||
- Aliyun CLI 3.0.117
|
||||
- App Center CLI 2.10.10
|
||||
- AWS CLI 2.6.1
|
||||
- AWS SAM CLI 1.47.0
|
||||
- AWS Session Manager CLI 1.2.312.0
|
||||
- Azure CLI (azure-devops) 0.25.0
|
||||
- Azure CLI 2.36.0
|
||||
- Bicep CLI 0.5.6
|
||||
- Cabal 3.6.2.0
|
||||
- Cmake 3.22.1
|
||||
- Fastlane 2.199.0
|
||||
- GHC 9.2.1
|
||||
- GHCup 0.1.17.4
|
||||
- Jazzy 0.14.1
|
||||
- Stack 2.7.3
|
||||
- SwiftFormat 0.49.1
|
||||
- Cmake 3.23.1
|
||||
- Fastlane 2.205.2
|
||||
- GHC 9.2.2
|
||||
- GHCup v0.1.17.7
|
||||
- Jazzy 0.14.2
|
||||
- Stack 2.7.5
|
||||
- SwiftFormat 0.49.7
|
||||
- Swig 4.0.2
|
||||
- Xcode Command Line Tools 13.2.0.0.1.1638488800
|
||||
|
||||
### Linters
|
||||
- SwiftLint 0.45.1
|
||||
- SwiftLint 0.47.1
|
||||
- yamllint 1.26.3
|
||||
|
||||
### Browsers
|
||||
- Safari 15.2 (16612.3.6.1.8)
|
||||
- SafariDriver 15.2 (16612.3.6.1.8)
|
||||
- Google Chrome 96.0.4664.110
|
||||
- ChromeDriver 96.0.4664.45
|
||||
- Microsoft Edge 96.0.1054.62
|
||||
- MSEdgeDriver 96.0.1054.62
|
||||
- Mozilla Firefox 95.0.1
|
||||
- geckodriver 0.30.0
|
||||
- Selenium server 4.1.0
|
||||
- Safari 15.4 (16613.1.17.1.13)
|
||||
- SafariDriver 15.4 (16613.1.17.1.13)
|
||||
- Google Chrome 101.0.4951.41
|
||||
- ChromeDriver 101.0.4951.41
|
||||
- Microsoft Edge 101.0.1210.32
|
||||
- MSEdgeDriver 101.0.1210.32
|
||||
- Mozilla Firefox 99.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.322+6 (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.9
|
||||
- 2.7.5
|
||||
- 3.0.3
|
||||
- 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.8
|
||||
- 14.18.2
|
||||
- 16.13.1
|
||||
- 12.22.12
|
||||
- 14.19.1
|
||||
- 16.15.0
|
||||
|
||||
#### Go
|
||||
| Version | Architecture | Environment Variable |
|
||||
| ------- | ------------ | -------------------- |
|
||||
| 1.15.15 (Default) | x64 | GOROOT_1_15_X64 |
|
||||
| 1.16.12 | x64 | GOROOT_1_16_X64 |
|
||||
| 1.17.5 | x64 | GOROOT_1_17_X64 |
|
||||
| 1.16.15 | x64 | GOROOT_1_16_X64 |
|
||||
| 1.17.9 (Default) | x64 | GOROOT_1_17_X64 |
|
||||
| 1.18.1 | x64 | GOROOT_1_18_X64 |
|
||||
|
||||
### Rust Tools
|
||||
- Cargo 1.57.0
|
||||
- Rust 1.57.0
|
||||
- Rustdoc 1.57.0
|
||||
- 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 v0.10.2
|
||||
- Cbindgen 0.20.0
|
||||
- Clippy 0.1.57
|
||||
- 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.1
|
||||
- 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 | none | 80 |
|
||||
| nginx | 1.21.4 | /usr/local/etc/nginx/nginx.conf | none | 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.16.2
|
||||
- 8.10.22.11
|
||||
|
||||
#### Xamarin bundles
|
||||
| symlink | Xamarin.Mono | Xamarin.iOS | Xamarin.Mac | Xamarin.Android |
|
||||
| ----------------- | ------------ | ----------- | ----------- | --------------- |
|
||||
| 6_12_15 | 6.12 | 15.8 | 8.8 | 12.2 |
|
||||
| 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 |
|
||||
@@ -224,15 +238,15 @@
|
||||
- NUnit 3.6.1
|
||||
|
||||
### Xcode
|
||||
| Version | Build | Path |
|
||||
| -------------- | -------- | ------------------------------ |
|
||||
| 13.2.1 | 13C100 | /Applications/Xcode_13.2.1.app |
|
||||
| 13.2 | 13C90 | /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
|
||||
@@ -307,10 +321,10 @@
|
||||
| Package Name | Version |
|
||||
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Android Command Line Tools | 4.0 |
|
||||
| Android Emulator | 31.1.4 |
|
||||
| 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 | 31.0.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 |
|
||||
@@ -328,7 +342,10 @@
|
||||
| ANDROID_SDK_ROOT | /Users/runner/Library/Android/sdk |
|
||||
|
||||
### Miscellaneous
|
||||
- Zlib 1.2.11
|
||||
- libXext 1.3.4
|
||||
- libXft 2.3.4
|
||||
- Tcl/Tk 8.6.12
|
||||
- Zlib 1.2.12
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,297 @@
|
||||
| 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](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: 20220429.1
|
||||
|
||||
## Installed Software
|
||||
### Language and Runtime
|
||||
- .NET SDK 3.1.101 3.1.201 3.1.302 3.1.418 5.0.102 5.0.202 5.0.302 5.0.407
|
||||
- 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.9
|
||||
- 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.1 v16.15.0
|
||||
- Perl 5.34.0
|
||||
- PHP 8.1.5
|
||||
- Python 2.7.18
|
||||
- Python 3.9.12
|
||||
- R 4.2.0
|
||||
- Ruby 3.0.4p208
|
||||
|
||||
### Package Management
|
||||
- Bundler version 2.3.12
|
||||
- Carthage 0.38.0
|
||||
- CocoaPods 1.11.3
|
||||
- Composer 2.3.5
|
||||
- Homebrew 3.4.9
|
||||
- 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 \<c8a56fdc1>)
|
||||
- Yarn 1.22.18
|
||||
|
||||
### 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.14.1
|
||||
- bazel 5.1.1
|
||||
- bazelisk 1.11.0
|
||||
- bsdtar 3.5.1 - available by 'tar' alias
|
||||
- Curl 7.83.0
|
||||
- Git 2.35.1
|
||||
- Git LFS: 3.1.4
|
||||
- GitHub CLI: 2.9.0
|
||||
- GNU Tar 1.34 - available by 'gtar' alias
|
||||
- GNU Wget 1.21.3
|
||||
- gpg (GnuPG) 2.3.6
|
||||
- Hub CLI: 2.14.2
|
||||
- jq 1.6
|
||||
- mongo v5.0.7
|
||||
- mongod v5.0.7
|
||||
- OpenSSL 1.1.1n 15 Mar 2022 `(/usr/local/opt/openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1n)`
|
||||
- Packer 1.8.0
|
||||
- PostgreSQL 14.2
|
||||
- psql (PostgreSQL) 14.2
|
||||
- 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.6.1
|
||||
- AWS SAM CLI 1.47.0
|
||||
- AWS Session Manager CLI 1.2.312.0
|
||||
- Azure CLI (azure-devops) 0.25.0
|
||||
- Azure CLI 2.36.0
|
||||
- Bicep CLI 0.5.6
|
||||
- Cabal 3.6.2.0
|
||||
- Cmake 3.23.1
|
||||
- Fastlane 2.205.2
|
||||
- GHC 9.2.2
|
||||
- GHCup v0.1.17.7
|
||||
- Jazzy 0.14.2
|
||||
- Stack 2.7.5
|
||||
- Swig 4.0.2
|
||||
- Xcode Command Line Tools 13.3.1.0.1.1648687083
|
||||
|
||||
### 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.41
|
||||
- ChromeDriver 101.0.4951.41
|
||||
- Microsoft Edge 101.0.1210.32
|
||||
- MSEdgeDriver 101.0.1210.32
|
||||
- Mozilla Firefox 99.0.1
|
||||
- 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.322+6 (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.1
|
||||
- 16.15.0
|
||||
|
||||
#### Go
|
||||
| Version | Architecture | Environment Variable |
|
||||
| ------- | ------------ | -------------------- |
|
||||
| 1.16.15 | x64 | GOROOT_1_16_X64 |
|
||||
| 1.17.9 (Default) | x64 | GOROOT_1_17_X64 |
|
||||
| 1.18.1 | 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.22.11
|
||||
|
||||
#### Xamarin bundles
|
||||
| symlink | Xamarin.Mono | Xamarin.iOS | Xamarin.Mac | Xamarin.Android |
|
||||
| ----------------- | ------------ | ----------- | ----------- | --------------- |
|
||||
| 6_12_15 (default) | 6.12 | 15.8 | 8.8 | 12.2 |
|
||||
| 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.3.1 | 13E500a | /Applications/Xcode_13.3.1.app |
|
||||
| 13.3 (default) | 13E113 | /Applications/Xcode_13.3.app |
|
||||
| 13.2.1 | 13C100 | /Applications/Xcode_13.2.1.app |
|
||||
| 13.2 | 13C90 | /Applications/Xcode_13.2.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, 13.2.1 |
|
||||
| macOS 12.3 | macosx12.3 | 13.3, 13.3.1 |
|
||||
| iOS 15.0 | iphoneos15.0 | 13.1 |
|
||||
| iOS 15.2 | iphoneos15.2 | 13.2, 13.2.1 |
|
||||
| iOS 15.4 | iphoneos15.4 | 13.3, 13.3.1 |
|
||||
| Simulator - iOS 15.0 | iphonesimulator15.0 | 13.1 |
|
||||
| Simulator - iOS 15.2 | iphonesimulator15.2 | 13.2, 13.2.1 |
|
||||
| Simulator - iOS 15.4 | iphonesimulator15.4 | 13.3, 13.3.1 |
|
||||
| tvOS 15.0 | appletvos15.0 | 13.1 |
|
||||
| tvOS 15.2 | appletvos15.2 | 13.2, 13.2.1 |
|
||||
| tvOS 15.4 | appletvos15.4 | 13.3, 13.3.1 |
|
||||
| Simulator - tvOS 15.0 | appletvsimulator15.0 | 13.1 |
|
||||
| Simulator - tvOS 15.2 | appletvsimulator15.2 | 13.2, 13.2.1 |
|
||||
| Simulator - tvOS 15.4 | appletvsimulator15.4 | 13.3, 13.3.1 |
|
||||
| watchOS 8.0 | watchos8.0 | 13.1 |
|
||||
| watchOS 8.3 | watchos8.3 | 13.2, 13.2.1 |
|
||||
| watchOS 8.5 | watchos8.5 | 13.3, 13.3.1 |
|
||||
| Simulator - watchOS 8.0 | watchsimulator8.0 | 13.1 |
|
||||
| Simulator - watchOS 8.3 | watchsimulator8.3 | 13.2, 13.2.1 |
|
||||
| Simulator - watchOS 8.5 | watchsimulator8.5 | 13.3, 13.3.1 |
|
||||
| DriverKit 21.0.1 | driverkit21.0.1 | 13.1 |
|
||||
| DriverKit 21.2 | driverkit21.2 | 13.2, 13.2.1 |
|
||||
| DriverKit 21.4 | driverkit21.4 | 13.3, 13.3.1 |
|
||||
|
||||
#### 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<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 (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<br>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) |
|
||||
| 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<br>13.2.1 | Apple TV<br>Apple TV 4K (2nd generation)<br>Apple TV 4K (at 1080p) (2nd generation) |
|
||||
| tvOS 15.4 | 13.3<br>13.3.1 | 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<br>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<br>13.3.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 |
|
||||
|
||||
### 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"
|
||||
|
||||
@@ -12,6 +12,11 @@ sudo rm -f /var/vm/sleepimage
|
||||
# Disable App Nap System Wide
|
||||
defaults write NSGlobalDomain NSAppSleepDisabled -bool YES
|
||||
|
||||
# Disable Keyboard Setup Assistant window
|
||||
if is_Veertu; then
|
||||
sudo defaults write /Library/Preferences/com.apple.keyboardtype "keyboardtype" -dict-add "3-7582-0" -int 40
|
||||
fi
|
||||
|
||||
# Change screen resolution to the maximum supported for 4Mb video memory
|
||||
if [ -d "/Library/Application Support/VMware Tools" ]; then
|
||||
sudo "/Library/Application Support/VMware Tools/vmware-resolutionSet" 1176 885
|
||||
@@ -30,16 +35,68 @@ defaults write com.apple.VoiceOver4/default SCREnableAppleScript -bool YES
|
||||
# Rotate the certificate before expiration to ensure your apps are installed and signed with an active certificate.
|
||||
# Confirm that the correct intermediate certificate is installed by verifying the expiration date is set to 2030.
|
||||
# sudo security delete-certificate -Z FF6797793A3CD798DC5B2ABEF56F73EDC9F83A64 /Library/Keychains/System.keychain
|
||||
curl https://www.apple.com/certificateauthority/AppleWWDRCAG3.cer --output $HOME/AppleWWDRCAG3.cer --silent
|
||||
# Big Sur requires user interaction to add a cert https://developer.apple.com/forums/thread/671582, we need to use a workaround with SecItemAdd swift method
|
||||
if is_Catalina; then
|
||||
sudo security add-trusted-cert -d -r unspecified -k /Library/Keychains/System.keychain $HOME/AppleWWDRCAG3.cer
|
||||
else
|
||||
swiftc $HOME/image-generation/add-certificate.swift
|
||||
sudo ./add-certificate $HOME/AppleWWDRCAG3.cer
|
||||
rm add-certificate
|
||||
if ! is_Catalina; then
|
||||
swiftc "${HOME}/image-generation/add-certificate.swift"
|
||||
fi
|
||||
|
||||
certs=(
|
||||
AppleWWDRCAG3.cer
|
||||
DeveloperIDG2CA.cer
|
||||
)
|
||||
for cert in ${certs[@]}; do
|
||||
echo "Adding ${cert} certificate"
|
||||
cert_path="${HOME}/${cert}"
|
||||
curl "https://www.apple.com/certificateauthority/${cert}" --output ${cert_path} --silent
|
||||
|
||||
if is_Catalina; then
|
||||
sudo security add-trusted-cert -d -r unspecified -k /Library/Keychains/System.keychain ${cert_path}
|
||||
else
|
||||
sudo ./add-certificate ${cert_path}
|
||||
fi
|
||||
|
||||
rm ${cert_path}
|
||||
done
|
||||
|
||||
rm -f ./add-certificate
|
||||
|
||||
# enable-automationmode-without-authentication
|
||||
if is_Monterey; then
|
||||
retry=10
|
||||
while [ $retry -gt 0 ]; do
|
||||
{
|
||||
osascript <<EOF
|
||||
tell application "Terminal"
|
||||
activate
|
||||
do script "automationmodetool enable-automationmode-without-authentication"
|
||||
delay 2
|
||||
tell application "System Events"
|
||||
keystroke "${PASSWORD}"
|
||||
keystroke return
|
||||
end tell
|
||||
end tell
|
||||
delay 5
|
||||
EOF
|
||||
} && break
|
||||
|
||||
retry=$((retry-1))
|
||||
if [ $retry -eq 0 ]; then
|
||||
echo "No retry attempts left"
|
||||
exit 1
|
||||
fi
|
||||
sleep 10
|
||||
done
|
||||
|
||||
term_service=$(launchctl list | grep -i terminal | cut -f3)
|
||||
echo "Close terminal windows: gui/501/${term_service}"
|
||||
launchctl bootout gui/501/${term_service} && sleep 5
|
||||
|
||||
# test enable-automationmode-without-authentication
|
||||
if [[ ! "$(automationmodetool)" =~ "DOES NOT REQUIRE" ]]; then
|
||||
echo "Failed to enable enable-automationmode-without-authentication option"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
rm $HOME/AppleWWDRCAG3.cer
|
||||
|
||||
# Create symlink for tests running
|
||||
if [ ! -d "/usr/local/bin" ];then
|
||||
|
||||
@@ -11,11 +11,16 @@ systemValuesArray=(
|
||||
"'kTCCServiceSystemPolicyAllFiles','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
|
||||
"'kTCCServiceAccessibility','com.apple.dt.Xcode-Helper',0,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1551941368"
|
||||
"'kTCCServiceSystemPolicyAllFiles','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
|
||||
"'kTCCServiceAccessibility','/usr/libexec/sshd-keygen-wrapper',1,2,0,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,NULL,'UNUSED',NULL,0,1591112564"
|
||||
"'kTCCServiceSystemPolicyAllFiles','/usr/libexec/sshd-keygen-wrapper',1,0,4,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'UNUSED',NULL,0,1639660695"
|
||||
"'kTCCServiceAccessibility','/usr/libexec/sshd-keygen-wrapper',1,2,4,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'UNUSED',NULL,0,1644564233"
|
||||
"'kTCCServiceAccessibility','com.apple.Terminal',0,2,0,1,X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,NULL,'UNUSED',NULL,0,1591180502"
|
||||
"'kTCCServiceAccessibility','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
|
||||
"'kTCCServiceMicrophone','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,NULL,1576661342"
|
||||
"'kTCCServiceScreenCapture','/bin/bash',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1599831148"
|
||||
"'kTCCServiceAccessibility','/Library/Application Support/Veertu/Anka/addons/ankarund',1,2,4,1,X'fade0c00000000ac0000000100000006000000020000001e636f6d2e7665657274752e616e6b612e6164646f6e732e616e6b6172756e0000000000060000000f000000060000000e000000010000000a2a864886f76364060206000000000000000000060000000e000000000000000a2a864886f7636406010d0000000000000000000b000000000000000a7375626a6563742e4f550000000000010000000a545439464157503656340000',NULL,0,'UNUSED',NULL,0,1644565949"
|
||||
# Allow Full Disk Access for "Microsoft Defender for macOS" to bypass installation on-flight
|
||||
"'kTCCServiceSystemPolicyAllFiles','com.microsoft.wdav',0,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,0,1643970979"
|
||||
"'kTCCServiceSystemPolicyAllFiles','com.microsoft.wdav.epsext',0,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,0,1643970979"
|
||||
)
|
||||
for values in "${systemValuesArray[@]}"; do
|
||||
configure_system_tccdb "$values"
|
||||
@@ -28,7 +33,7 @@ userValuesArray=(
|
||||
"'kTCCServiceUbiquity','com.apple.CloudDocs.MobileDocumentsFileProvider',0,2,0,1,X'fade0c000000004c0000000100000006000000020000002f636f6d2e6170706c652e436c6f7564446f63732e4d6f62696c65446f63756d656e747346696c6550726f76696465720000000003',NULL,NULL,'UNUSED',NULL,0,1570793290"
|
||||
"'kTCCServiceAppleEvents','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,0,'com.apple.systemevents',NULL,NULL,1574241374"
|
||||
"'kTCCServiceSystemPolicyAllFiles','/usr/local/opt/runner/runprovisioner.sh',1,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1583997993"
|
||||
"'kTCCServiceAppleEvents','/usr/libexec/sshd-keygen-wrapper',1,2,0,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'com.apple.systemevents',X'fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003',NULL,1591112538"
|
||||
"'kTCCServiceAppleEvents','/usr/libexec/sshd-keygen-wrapper',1,2,3,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'com.apple.systemevents',X'fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003',NULL,1644564201"
|
||||
"'kTCCServiceAppleEvents','com.apple.Terminal',0,2,0,1,X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,0,'com.apple.systemevents',X'fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003',NULL,1591180478"
|
||||
"'kTCCServiceAppleEvents','/usr/libexec/sshd-keygen-wrapper',1,2,0,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'com.apple.finder',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e66696e64657200000003',NULL,1591357685"
|
||||
"'kTCCServiceAppleEvents','/bin/bash',1,2,0,1,NULL,NULL,0,'com.apple.systemevents',NULL,NULL,1591532620"
|
||||
@@ -38,6 +43,8 @@ userValuesArray=(
|
||||
"'kTCCServiceUbiquity','/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/Versions/A/Support/photolibraryd',1,2,5,1,NULL,NULL,NULL,'UNUSED',NULL,0,1619461750"
|
||||
"'kTCCServiceUbiquity','com.apple.PassKitCore',0,2,5,1,NULL,NULL,NULL,'UNUSED',NULL,0,1619516250"
|
||||
"'kTCCServiceAppleEvents','/Library/Application Support/Veertu/Anka/addons/ankarund',1,2,3,1,X'fade0c00000000ac0000000100000006000000020000001e636f6d2e7665657274752e616e6b612e6164646f6e732e616e6b6172756e0000000000060000000f000000060000000e000000010000000a2a864886f76364060206000000000000000000060000000e000000000000000a2a864886f7636406010d0000000000000000000b000000000000000a7375626a6563742e4f550000000000010000000a545439464157503656340000',NULL,0,'com.apple.finder',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e66696e64657200000003',NULL,1629294900"
|
||||
"'kTCCServiceAppleEvents','/Library/Application Support/Veertu/Anka/addons/ankarund',1,2,3,1,X'fade0c00000000ac0000000100000006000000020000001e636f6d2e7665657274752e616e6b612e6164646f6e732e616e6b6172756e0000000000060000000f000000060000000e000000010000000a2a864886f76364060206000000000000000000060000000e000000000000000a2a864886f7636406010d0000000000000000000b000000000000000a7375626a6563742e4f550000000000010000000a545439464157503656340000',NULL,0,'com.apple.systemevents',X'fade0c000000003400000001000000060000000200000016636f6d2e6170706c652e73797374656d6576656e7473000000000003',NULL,164456761"
|
||||
"'kTCCServiceAppleEvents','/usr/libexec/sshd-keygen-wrapper',1,2,3,1,X'fade0c000000003c0000000100000006000000020000001d636f6d2e6170706c652e737368642d6b657967656e2d7772617070657200000000000003',NULL,0,'com.apple.Terminal',X'fade0c000000003000000001000000060000000200000012636f6d2e6170706c652e5465726d696e616c000000000003',NULL,1650386089"
|
||||
)
|
||||
for values in "${userValuesArray[@]}"; do
|
||||
configure_user_tccdb "$values"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
source ~/utils/utils.sh
|
||||
|
||||
# Close all finder windows because they can interfere with UI tests
|
||||
osascript -e 'tell application "Finder" to close windows'
|
||||
close_finder_window
|
||||
|
||||
if is_Catalina; then
|
||||
# Ignore available updates to prevent system pop-ups
|
||||
|
||||
@@ -19,5 +19,16 @@ done
|
||||
# Invoke bazel to download bazel version via bazelisk
|
||||
bazel
|
||||
|
||||
# Install Azure DevOps extension for Azure Command Line Interface
|
||||
az extension add -n azure-devops
|
||||
|
||||
# Workaround https://github.com/actions/virtual-environments/issues/4931
|
||||
# by making Tcl/Tk paths the same on macOS 10.15 and macOS 11
|
||||
if is_BigSur; then
|
||||
version=$(brew info tcl-tk --json | jq -r '.[].installed[].version')
|
||||
ln -s /usr/local/Cellar/tcl-tk/$version/lib/libtcl8.6.dylib /usr/local/lib/libtcl8.6.dylib
|
||||
ln -s /usr/local/Cellar/tcl-tk/$version/lib/libtk8.6.dylib /usr/local/lib/libtk8.6.dylib
|
||||
fi
|
||||
|
||||
# Invoke tests for all basic tools
|
||||
invoke_tests "BasicTools"
|
||||
|
||||
@@ -11,7 +11,7 @@ source ~/utils/utils.sh
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
|
||||
# Download installer from dot.net and keep it locally
|
||||
DOTNET_INSTALL_SCRIPT="https://dotnet.microsoft.com/download/dotnet-core/scripts/v1/dotnet-install.sh"
|
||||
DOTNET_INSTALL_SCRIPT="https://dot.net/v1/dotnet-install.sh"
|
||||
curl -L -o "dotnet-install.sh" "$DOTNET_INSTALL_SCRIPT"
|
||||
chmod +x ./dotnet-install.sh
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ source ~/utils/utils.sh
|
||||
echo Installing Git...
|
||||
brew_smart_install "git"
|
||||
|
||||
git config --global --add safe.directory "*"
|
||||
|
||||
echo Installing Git LFS
|
||||
brew_smart_install "git-lfs"
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
source ~/utils/utils.sh
|
||||
|
||||
echo Installing GraalVM...
|
||||
brew install --cask graalvm/tap/graalvm-ce-java11
|
||||
|
||||
exportPath=$(echo /Library/Java/JavaVirtualMachines/graalvm-ce-java*/Contents/Home/bin)
|
||||
echo "Setting up GRAALVM_11_ROOT variable to ${exportPath}"
|
||||
echo "export GRAALVM_11_ROOT=${exportPath}" >> "${HOME}/.bashrc"
|
||||
|
||||
# GraalVM not being signed and notarized yet on macOS Catalina
|
||||
if is_Catalina; then
|
||||
quarantinePath=$(echo /Library/Java/JavaVirtualMachines/graalvm-ce-java*)
|
||||
sudo xattr -rd com.apple.quarantine $quarantinePath
|
||||
fi
|
||||
|
||||
# Install Native Image
|
||||
$exportPath/gu install native-image
|
||||
|
||||
invoke_tests "Common" "GraalVM"
|
||||
@@ -5,6 +5,9 @@ curl -sL https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
|
||||
chmod +x $MINICONDA_INSTALLER
|
||||
sudo $MINICONDA_INSTALLER -b -p /usr/local/miniconda
|
||||
|
||||
# Chmod with full permissions recursively to avoid permissions restrictions
|
||||
sudo chmod -R 777 /usr/local/miniconda
|
||||
|
||||
sudo ln -s /usr/local/miniconda/bin/conda /usr/local/bin/conda
|
||||
|
||||
if [ -d "$HOME/.conda" ]; then
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
###########################################################################
|
||||
source ~/utils/utils.sh
|
||||
|
||||
VERSION=$(curl -s https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r '.tag_name')
|
||||
[ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}")
|
||||
VERSION=$(curl "${authString[@]}" -s https://api.github.com/repos/nvm-sh/nvm/releases/latest | jq -r '.tag_name')
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/$VERSION/install.sh | bash
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash -e -o pipefail
|
||||
|
||||
retry=10
|
||||
while [ $retry -gt 0 ]; do
|
||||
openwindows=$(osascript -e 'tell application "System Events" to get every window of (every process whose class of windows contains window)') && break
|
||||
|
||||
retry=$((retry-1))
|
||||
if [ $retry -eq 0 ]; then
|
||||
echo "No retry attempts left"
|
||||
exit 1
|
||||
fi
|
||||
sleep 30
|
||||
done
|
||||
IFS=',' read -r -a windowslist <<< "$openwindows"
|
||||
|
||||
if [ -n "${openwindows}" ]; then
|
||||
echo "Found opened window:"
|
||||
fi
|
||||
|
||||
for window in "${windowslist[@]}"; do
|
||||
if [[ $window =~ "NotificationCenter" ]]; then
|
||||
echo "[Warning] $window"
|
||||
else
|
||||
echo " - ${window}" | xargs
|
||||
scripterror=true
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "${scripterror}" = true ]; then
|
||||
exit 1
|
||||
fi
|
||||
@@ -2,8 +2,7 @@
|
||||
source ~/utils/utils.sh
|
||||
|
||||
echo Installing PowerShell...
|
||||
psRelease=$(curl -s "https://api.github.com/repos/PowerShell/PowerShell/releases/latest")
|
||||
psDownloadUrl=$(echo $psRelease | jq -r '.assets[].browser_download_url | select(contains("osx-x64.pkg"))' | head -n 1)
|
||||
psDownloadUrl=$(get_github_package_download_url "PowerShell/PowerShell" "contains(\"osx-x64.pkg\")" "latest" "$API_PAT")
|
||||
download_with_retries $psDownloadUrl "/tmp" "powershell.pkg"
|
||||
|
||||
# Work around the issue on macOS Big Sur 11.5 or higher for possible error message ("can't be opened because Apple cannot check it for malicious software") when installing the package
|
||||
|
||||
@@ -12,6 +12,11 @@ pip install --upgrade pip
|
||||
echo "Install Python2 certificates"
|
||||
bash -c "/Applications/Python\ 2.7/Install\ Certificates.command"
|
||||
|
||||
# Close Finder window
|
||||
if is_Veertu; then
|
||||
close_finder_window
|
||||
fi
|
||||
|
||||
# Explicitly overwrite symlinks created by Python2 such as /usr/local/bin/2to3 since they conflict with symlinks from Python3
|
||||
# https://github.com/actions/virtual-environments/issues/2322
|
||||
echo "Brew Installing Python 3"
|
||||
|
||||
@@ -10,7 +10,8 @@ echo "GEM_PATH=$GEM_PATH" >> "$HOME/.bashrc"
|
||||
echo 'export PATH="$GEM_PATH:/usr/local/opt/ruby@'${DEFAULT_RUBY_VERSION}'/bin:$PATH"' >> "$HOME/.bashrc"
|
||||
|
||||
echo "Install Ruby from toolset..."
|
||||
PACKAGE_TAR_NAMES=$(curl -s "https://api.github.com/repos/ruby/ruby-builder/releases/latest" | jq -r '.assets[].name')
|
||||
[ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}")
|
||||
PACKAGE_TAR_NAMES=$(curl "${authString[@]}" -s "https://api.github.com/repos/ruby/ruby-builder/releases/latest" | jq -r '.assets[].name')
|
||||
TOOLSET_VERSIONS=$(get_toolset_value '.toolcache[] | select(.name | contains("Ruby")) | .versions[]')
|
||||
RUBY_PATH="$AGENT_TOOLSDIRECTORY/Ruby"
|
||||
|
||||
|
||||
@@ -2,24 +2,23 @@
|
||||
source ~/utils/utils.sh
|
||||
|
||||
echo "Get the latest Stack version..."
|
||||
StackRelease=$(curl -s "https://api.github.com/repos/commercialhaskell/stack/releases/latest")
|
||||
DownloadUrl=$(echo $StackRelease | jq -r '.assets[].browser_download_url | select(contains("osx-x86_64.tar.gz"))' | head -n 1)
|
||||
StackVersion=$(echo $StackRelease | jq -r '.name' | cut -c2-)
|
||||
StackArchive="/tmp/stack.tar.gz"
|
||||
stackDownloadUrl=$(get_github_package_download_url "commercialhaskell/stack" "contains(\"osx-x86_64.tar.gz\")" "latest" "$API_PAT")
|
||||
stackVersion=$(echo $stackDownloadUrl | cut -d "/" -f8 | tr -d "v")
|
||||
stackArchive="/tmp/stack.tar.gz"
|
||||
|
||||
echo "Download stack version $StackVersion..."
|
||||
download_with_retries $DownloadUrl "/tmp" "stack.tar.gz"
|
||||
echo "Download stack version $stackVersion..."
|
||||
download_with_retries $stackDownloadUrl "/tmp" "stack.tar.gz"
|
||||
|
||||
StackToolcachePath="$AGENT_TOOLSDIRECTORY/stack/$StackVersion"
|
||||
DestinationPath="$StackToolcachePath/x64"
|
||||
stackToolcachePath="$AGENT_TOOLSDIRECTORY/stack/$stackVersion"
|
||||
destinationPath="$stackToolcachePath/x64"
|
||||
|
||||
mkdir -p $DestinationPath
|
||||
mkdir -p $destinationPath
|
||||
|
||||
echo "Unzip stack archive..."
|
||||
tar -xzf $StackArchive -C $DestinationPath --strip 1
|
||||
tar -xzf $stackArchive -C $destinationPath --strip 1
|
||||
|
||||
touch $StackToolcachePath/x64.complete
|
||||
touch $stackToolcachePath/x64.complete
|
||||
|
||||
echo "export PATH="\$PATH":$DestinationPath" >> "$HOME/.bashrc"
|
||||
echo "export PATH="\$PATH":$destinationPath" >> "$HOME/.bashrc"
|
||||
|
||||
invoke_tests "Common" "Stack"
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
source ~/utils/utils.sh
|
||||
|
||||
echo "Install SwiftLint"
|
||||
swiftlintUrl=$(curl -s "https://api.github.com/repos/realm/SwiftLint/releases/latest" | jq -r '.assets[].browser_download_url | select(contains("SwiftLint.pkg"))')
|
||||
download_with_retries $swiftlintUrl "/tmp" "SwiftLint.pkg"
|
||||
sudo installer -pkg /tmp/SwiftLint.pkg -target /
|
||||
rm -rf /tmp/SwiftLint.pkg
|
||||
swiftlintUrl=$(get_github_package_download_url "realm/SwiftLint" "contains(\"portable_swiftlint.zip\")" "latest" "$API_PAT")
|
||||
download_with_retries $swiftlintUrl "/tmp" "portable_swiftlint.zip"
|
||||
unzip -q "/tmp/portable_swiftlint.zip" -d /usr/local/bin
|
||||
# Remove the LICENSE file that comes along with the binary and the downloaded archive
|
||||
rm -rf "/usr/local/bin/LICENSE"
|
||||
rm -rf "/tmp/portable_swiftlint.zip"
|
||||
|
||||
invoke_tests "Linters" "SwiftLint"
|
||||
|
||||
@@ -71,6 +71,14 @@ is_Less_Monterey() {
|
||||
fi
|
||||
}
|
||||
|
||||
is_Veertu() {
|
||||
if [ -d "/Library/Application Support/Veertu" ]; then
|
||||
true
|
||||
else
|
||||
false
|
||||
fi
|
||||
}
|
||||
|
||||
get_toolset_path() {
|
||||
echo "$HOME/image-generation/toolset.json"
|
||||
}
|
||||
@@ -171,3 +179,30 @@ configure_user_tccdb () {
|
||||
local sqlQuery="INSERT OR IGNORE INTO access VALUES($values);"
|
||||
sqlite3 "$dbPath" "$sqlQuery"
|
||||
}
|
||||
|
||||
get_github_package_download_url() {
|
||||
local REPO_ORG=$1
|
||||
local FILTER=$2
|
||||
local VERSION=$3
|
||||
local API_PAT=$4
|
||||
local SEARCH_IN_COUNT="100"
|
||||
|
||||
[ -n "$API_PAT" ] && authString=(-H "Authorization: token ${API_PAT}")
|
||||
|
||||
json=$(curl "${authString[@]}" -s "https://api.github.com/repos/${REPO_ORG}/releases?per_page=${SEARCH_IN_COUNT}")
|
||||
|
||||
if [[ "$VERSION" == "latest" ]]; then
|
||||
tagName=$(echo $json | jq -r '.[] | select(.prerelease==false).tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]" | tail -1)
|
||||
else
|
||||
tagName=$(echo $json | jq -r '.[] | select(.prerelease==false).tag_name' | sort --unique --version-sort | egrep -v ".*-[a-z]" | egrep "\w*${VERSION}" | tail -1)
|
||||
fi
|
||||
|
||||
downloadUrl=$(echo $json | jq -r ".[] | select(.tag_name==\"${tagName}\").assets[].browser_download_url | select(${FILTER})" | head -n 1)
|
||||
|
||||
echo $downloadUrl
|
||||
}
|
||||
|
||||
# Close all finder windows because they can interfere with UI tests
|
||||
close_finder_window() {
|
||||
osascript -e 'tell application "Finder" to close windows'
|
||||
}
|
||||
|
||||
@@ -266,8 +266,8 @@ function Get-CurlVersion {
|
||||
}
|
||||
|
||||
function Get-GitVersion {
|
||||
$gitVersion = Run-Command "git --version" | Take-Part -Part 2
|
||||
return "Git: $gitVersion"
|
||||
$gitVersion = Run-Command "git --version" | Take-Part -Part -1
|
||||
return "Git $gitVersion"
|
||||
}
|
||||
|
||||
function Get-GitLFSVersion {
|
||||
@@ -422,6 +422,11 @@ function Get-AzureCLIVersion {
|
||||
return "Azure CLI $azureCLIVersion"
|
||||
}
|
||||
|
||||
function Get-AzureDevopsVersion {
|
||||
$azdevopsVersion = (az version | ConvertFrom-Json).extensions.'azure-devops'
|
||||
return "Azure CLI (azure-devops) $azdevopsVersion"
|
||||
}
|
||||
|
||||
function Get-AWSCLIVersion {
|
||||
$awsVersion = Run-Command "aws --version" | Take-Part -Part 0 | Take-Part -Delimiter "/" -Part 1
|
||||
return "AWS CLI $awsVersion"
|
||||
@@ -443,7 +448,7 @@ function Get-AliyunCLIVersion {
|
||||
}
|
||||
|
||||
function Get-GHCupVersion {
|
||||
$ghcUpVersion = Run-Command "ghcup --version" | Take-Part -Part 5
|
||||
$ghcUpVersion = (Run-Command "ghcup --version" | Take-Part -Part 5).Replace('v','')
|
||||
return "GHCup $ghcUpVersion"
|
||||
}
|
||||
|
||||
@@ -532,6 +537,21 @@ function Get-LibXextVersion {
|
||||
return "libXext $libXextVersion"
|
||||
}
|
||||
|
||||
function Get-TclTkVersion {
|
||||
$tcltkVersion = (brew info tcl-tk)[0] | Take-Part -Part 2
|
||||
return "Tcl/Tk $tcltkVersion"
|
||||
}
|
||||
|
||||
function Get-YqVersion {
|
||||
$yqVersion = Run-Command "yq --version"
|
||||
return "$yqVersion"
|
||||
}
|
||||
|
||||
function Get-ImageMagickVersion {
|
||||
$imagemagickVersion = Run-Command "magick --version" | Select-Object -First 1 | Take-Part -Part 1,2
|
||||
return "$imagemagickVersion"
|
||||
}
|
||||
|
||||
function Build-PackageManagementEnvironmentTable {
|
||||
return @(
|
||||
@{
|
||||
@@ -549,3 +569,18 @@ function Build-PackageManagementEnvironmentTable {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function Get-GraalVMVersion {
|
||||
$version = & "$env:GRAALVM_11_ROOT\java" --version | Select-String -Pattern "GraalVM" | Take-Part -Part 5,6
|
||||
return $version
|
||||
}
|
||||
|
||||
function Build-GraalVMTable {
|
||||
$version = Get-GraalVMVersion
|
||||
$envVariables = "GRAALVM_11_ROOT"
|
||||
|
||||
return [PSCustomObject] @{
|
||||
"Version" = $version
|
||||
"Environment variables" = $envVariables
|
||||
}
|
||||
}
|
||||
@@ -48,14 +48,9 @@ $languageAndRuntimeList = @(
|
||||
(Get-ClangLLVMVersion)
|
||||
(Get-GccVersion)
|
||||
(Get-FortranVersion)
|
||||
(Get-RVersion)
|
||||
)
|
||||
|
||||
if ($os.IsCatalina) {
|
||||
$languageAndRuntimeList += @(
|
||||
(Get-RVersion)
|
||||
)
|
||||
}
|
||||
|
||||
# To sort GCC and Gfortran correctly, we need to use natural sort https://gist.github.com/markwragg/e2a9dc05f3464103d6998298fb575d4e#file-sort-natural-ps1
|
||||
$toNatural = { [regex]::Replace($_, '\d+', { $args[0].Value.PadLeft(20) }) }
|
||||
$markdown += New-MDList -Style Unordered -Lines ($languageAndRuntimeList | Sort-Object $toNatural)
|
||||
@@ -127,7 +122,9 @@ $utilitiesList = @(
|
||||
(Get-GnuTarVersion),
|
||||
(Get-GPGVersion),
|
||||
(Get-SwitchAudioOsxVersion),
|
||||
(Get-SoxVersion)
|
||||
(Get-SoxVersion),
|
||||
(Get-YqVersion),
|
||||
(Get-ImageMagickVersion)
|
||||
)
|
||||
|
||||
if ($os.IsLessThanMonterey) {
|
||||
@@ -160,6 +157,7 @@ $toolsList = @(
|
||||
(Get-CmakeVersion),
|
||||
(Get-AppCenterCLIVersion),
|
||||
(Get-AzureCLIVersion),
|
||||
(Get-AzureDevopsVersion),
|
||||
(Get-AWSCLIVersion),
|
||||
(Get-AWSSAMCLIVersion),
|
||||
(Get-AWSSessionManagerCLIVersion)
|
||||
@@ -178,15 +176,10 @@ $toolsList += @(
|
||||
(Get-GHCupVersion),
|
||||
(Get-GHCVersion),
|
||||
(Get-CabalVersion),
|
||||
(Get-StackVersion)
|
||||
(Get-StackVersion),
|
||||
(Get-SwiftFormatVersion)
|
||||
)
|
||||
|
||||
if($os.IsLessThanMonterey) {
|
||||
$toolsList += @(
|
||||
(Get-SwiftFormatVersion)
|
||||
)
|
||||
}
|
||||
|
||||
$markdown += New-MDList -Style Unordered -Lines ($toolsList | Sort-Object)
|
||||
|
||||
# Linters
|
||||
@@ -208,6 +201,10 @@ $markdown += New-MDHeader "Java" -Level 3
|
||||
$markdown += Get-JavaVersions | New-MDTable
|
||||
$markdown += New-MDNewLine
|
||||
|
||||
$markdown += New-MDHeader "GraalVM" -Level 3
|
||||
$markdown += Build-GraalVMTable | New-MDTable
|
||||
$markdown += New-MDNewLine
|
||||
|
||||
# Toolcache
|
||||
$markdown += Build-ToolcacheSection
|
||||
$markdown += New-MDNewLine
|
||||
@@ -289,7 +286,8 @@ $markdown += New-MDHeader "Miscellaneous" -Level 3
|
||||
$markdown += New-MDList -Style Unordered -Lines (@(
|
||||
(Get-ZlibVersion),
|
||||
(Get-LibXextVersion),
|
||||
(Get-LibXftVersion)
|
||||
(Get-LibXftVersion),
|
||||
(Get-TclTkVersion)
|
||||
) | Sort-Object
|
||||
)
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"output_folder": null,
|
||||
"vm_username": null,
|
||||
"vm_password": null,
|
||||
"github_api_pat": null,
|
||||
"xcode_install_user": null,
|
||||
"xcode_install_password": null,
|
||||
"image_os": "macos1015"
|
||||
@@ -30,7 +31,8 @@
|
||||
"vm_name": "{{user `build_id`}}",
|
||||
"ssh_username": "{{user `vm_username`}}",
|
||||
"ssh_password": "{{user `vm_password`}}",
|
||||
"CPUs": "10",
|
||||
"CPUs": "5",
|
||||
"cpu_cores": "5",
|
||||
"RAM": "24576",
|
||||
"NestedHV": "true",
|
||||
"shutdown_timeout": "15m"
|
||||
@@ -86,6 +88,15 @@
|
||||
"source": "./toolsets/toolset-10.15.json",
|
||||
"destination": "~/image-generation/toolset.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
|
||||
"pause_before": "30s",
|
||||
"scripts": [
|
||||
"./provision/core/xcode-clt.sh",
|
||||
"./provision/core/homebrew.sh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}",
|
||||
@@ -127,8 +138,7 @@
|
||||
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
|
||||
"pause_before": "30s",
|
||||
"scripts": [
|
||||
"./provision/core/xcode-clt.sh",
|
||||
"./provision/core/homebrew.sh",
|
||||
"./provision/core/open_windows_check.sh",
|
||||
"./provision/core/powershell.sh",
|
||||
"./provision/core/dotnet.sh",
|
||||
"./provision/core/python.sh",
|
||||
@@ -138,6 +148,9 @@
|
||||
"./provision/core/rubygem.sh",
|
||||
"./provision/core/git.sh",
|
||||
"./provision/core/node.sh"
|
||||
],
|
||||
"environment_vars": [
|
||||
"API_PAT={{user `github_api_pat`}}"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -190,13 +203,17 @@
|
||||
"./provision/core/xcode-postbuild.sh",
|
||||
"./provision/core/pypy.sh",
|
||||
"./provision/core/pipx-packages.sh",
|
||||
"./provision/core/bicep.sh"
|
||||
"./provision/core/bicep.sh",
|
||||
"./provision/core/graalvm.sh"
|
||||
],
|
||||
"environment_vars": [
|
||||
"API_PAT={{user `github_api_pat`}}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}",
|
||||
"scripts": [
|
||||
"scripts": [
|
||||
"./provision/core/toolset.ps1",
|
||||
"./provision/core/configure-toolset.ps1"
|
||||
]
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"output_folder": null,
|
||||
"vm_username": null,
|
||||
"vm_password": null,
|
||||
"github_api_pat": null,
|
||||
"xcode_install_user": null,
|
||||
"xcode_install_password": null,
|
||||
"image_os": "macos11"
|
||||
@@ -30,7 +31,8 @@
|
||||
"vm_name": "{{user `build_id`}}",
|
||||
"ssh_username": "{{user `vm_username`}}",
|
||||
"ssh_password": "{{user `vm_password`}}",
|
||||
"CPUs": "10",
|
||||
"CPUs": "5",
|
||||
"cpu_cores": "5",
|
||||
"RAM": "24576",
|
||||
"NestedHV": "true",
|
||||
"shutdown_timeout": "15m"
|
||||
@@ -91,10 +93,19 @@
|
||||
"source": "./toolsets/toolset-11.json",
|
||||
"destination": "~/image-generation/toolset.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
|
||||
"scripts": [
|
||||
"./provision/core/xcode-clt.sh",
|
||||
"./provision/core/homebrew.sh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}",
|
||||
"scripts": [
|
||||
"./provision/core/xcode-clt.sh",
|
||||
"./provision/configuration/add-network-interface-detection.sh",
|
||||
"./provision/configuration/autologin.sh",
|
||||
"./provision/configuration/disable-auto-updates.sh",
|
||||
@@ -114,7 +125,6 @@
|
||||
"scripts": [
|
||||
"./provision/configuration/preimagedata.sh",
|
||||
"./provision/configuration/configure-ssh.sh",
|
||||
"./provision/core/xcode-clt.sh",
|
||||
"./provision/configuration/configure-machine.sh"
|
||||
],
|
||||
"environment_vars": [
|
||||
@@ -133,7 +143,7 @@
|
||||
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
|
||||
"pause_before": "30s",
|
||||
"scripts": [
|
||||
"./provision/core/homebrew.sh",
|
||||
"./provision/core/open_windows_check.sh",
|
||||
"./provision/core/powershell.sh",
|
||||
"./provision/core/dotnet.sh",
|
||||
"./provision/core/python.sh",
|
||||
@@ -143,6 +153,9 @@
|
||||
"./provision/core/rubygem.sh",
|
||||
"./provision/core/git.sh",
|
||||
"./provision/core/node.sh"
|
||||
],
|
||||
"environment_vars": [
|
||||
"API_PAT={{user `github_api_pat`}}"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -193,7 +206,11 @@
|
||||
"./provision/core/firefox.sh",
|
||||
"./provision/core/pypy.sh",
|
||||
"./provision/core/pipx-packages.sh",
|
||||
"./provision/core/bicep.sh"
|
||||
"./provision/core/bicep.sh",
|
||||
"./provision/core/graalvm.sh"
|
||||
],
|
||||
"environment_vars": [
|
||||
"API_PAT={{user `github_api_pat`}}"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -96,6 +96,13 @@ build {
|
||||
destination = "image-generation/toolset.json"
|
||||
source = "./toolsets/toolset-11.json"
|
||||
}
|
||||
provisioner "shell" {
|
||||
scripts = [
|
||||
"./provision/core/xcode-clt.sh",
|
||||
"./provision/core/homebrew.sh"
|
||||
]
|
||||
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
|
||||
}
|
||||
provisioner "shell" {
|
||||
scripts = [
|
||||
"./provision/configuration/configure-tccdb-macos11.sh",
|
||||
@@ -117,7 +124,6 @@ build {
|
||||
scripts = [
|
||||
"./provision/configuration/preimagedata.sh",
|
||||
"./provision/configuration/configure-ssh.sh",
|
||||
"./provision/core/xcode-clt.sh",
|
||||
"./provision/configuration/configure-machine.sh"
|
||||
]
|
||||
environment_vars = [
|
||||
@@ -134,7 +140,7 @@ build {
|
||||
provisioner "shell" {
|
||||
pause_before = "30s"
|
||||
scripts = [
|
||||
"./provision/core/homebrew.sh",
|
||||
"./provision/core/open_windows_check.sh",
|
||||
"./provision/core/powershell.sh",
|
||||
"./provision/core/dotnet.sh",
|
||||
"./provision/core/python.sh",
|
||||
@@ -191,7 +197,8 @@ build {
|
||||
"./provision/core/firefox.sh",
|
||||
"./provision/core/pypy.sh",
|
||||
"./provision/core/pipx-packages.sh",
|
||||
"./provision/core/bicep.sh"
|
||||
"./provision/core/bicep.sh",
|
||||
"./provision/core/graalvm.sh"
|
||||
]
|
||||
execute_command = "chmod +x {{ .Path }}; source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
|
||||
}
|
||||
@@ -205,7 +212,7 @@ build {
|
||||
}
|
||||
provisioner "shell" {
|
||||
inline = [
|
||||
"pwsh -File \"$HOME/image-generation/software-report/SoftwareReport.Generator.ps1\" -OutputDirectory \"$HOME/image-generation/output/software-report\" -ImageName UUID=${build.PackerRunUUID}",
|
||||
"pwsh -File \"$HOME/image-generation/software-report/SoftwareReport.Generator.ps1\" -OutputDirectory \"$HOME/image-generation/output/software-report\" -ImageName ${var.build_id}",
|
||||
"pwsh -File \"$HOME/image-generation/tests/RunAll-Tests.ps1\""
|
||||
]
|
||||
execute_command = "source $HOME/.bash_profile; {{ .Vars }} {{ .Path }}"
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"output_folder": null,
|
||||
"vm_username": null,
|
||||
"vm_password": null,
|
||||
"github_api_pat": null,
|
||||
"xcode_install_user": null,
|
||||
"xcode_install_password": null,
|
||||
"image_os": "macos12"
|
||||
@@ -30,7 +31,8 @@
|
||||
"vm_name": "{{user `build_id`}}",
|
||||
"ssh_username": "{{user `vm_username`}}",
|
||||
"ssh_password": "{{user `vm_password`}}",
|
||||
"CPUs": "10",
|
||||
"CPUs": "5",
|
||||
"cpu_cores": "5",
|
||||
"RAM": "24576",
|
||||
"NestedHV": "true",
|
||||
"shutdown_timeout": "15m"
|
||||
@@ -91,6 +93,14 @@
|
||||
"source": "./toolsets/toolset-12.json",
|
||||
"destination": "~/image-generation/toolset.json"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
|
||||
"scripts": [
|
||||
"./provision/core/xcode-clt.sh",
|
||||
"./provision/core/homebrew.sh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; sudo {{ .Vars }} {{ .Path }}",
|
||||
@@ -114,12 +124,12 @@
|
||||
"scripts": [
|
||||
"./provision/configuration/preimagedata.sh",
|
||||
"./provision/configuration/configure-ssh.sh",
|
||||
"./provision/core/xcode-clt.sh",
|
||||
"./provision/configuration/configure-machine.sh"
|
||||
],
|
||||
"environment_vars": [
|
||||
"IMAGE_VERSION={{user `build_id`}}",
|
||||
"IMAGE_OS={{user `image_os`}}"
|
||||
"IMAGE_OS={{user `image_os`}}",
|
||||
"PASSWORD={{user `vm_password`}}"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -133,7 +143,7 @@
|
||||
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
|
||||
"pause_before": "30s",
|
||||
"scripts": [
|
||||
"./provision/core/homebrew.sh",
|
||||
"./provision/core/open_windows_check.sh",
|
||||
"./provision/core/powershell.sh",
|
||||
"./provision/core/dotnet.sh",
|
||||
"./provision/core/python.sh",
|
||||
@@ -143,6 +153,9 @@
|
||||
"./provision/core/rubygem.sh",
|
||||
"./provision/core/git.sh",
|
||||
"./provision/core/node.sh"
|
||||
],
|
||||
"environment_vars": [
|
||||
"API_PAT={{user `github_api_pat`}}"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -192,13 +205,17 @@
|
||||
"./provision/core/firefox.sh",
|
||||
"./provision/core/pypy.sh",
|
||||
"./provision/core/pipx-packages.sh",
|
||||
"./provision/core/bicep.sh"
|
||||
"./provision/core/bicep.sh",
|
||||
"./provision/core/graalvm.sh"
|
||||
],
|
||||
"environment_vars": [
|
||||
"API_PAT={{user `github_api_pat`}}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}",
|
||||
"scripts": [
|
||||
"scripts": [
|
||||
"./provision/core/toolset.ps1",
|
||||
"./provision/core/configure-toolset.ps1"
|
||||
]
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user