From 36fb92995ab1a08dbcb8b7e7345b91c98ec9d9f1 Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Mon, 21 Sep 2020 17:16:22 +0300 Subject: [PATCH 001/103] add build vm assets --- .../macos/provision/assets/select-xamarin.sh | 22 +++++++++++++++++++ .../provision/configuration/finalize-vm.sh | 6 +++++ images/macos/templates/macOS-10.13.json | 5 +++++ images/macos/templates/macOS-10.14.json | 5 +++++ images/macos/templates/macOS-10.15.json | 5 +++++ images/macos/templates/macOS-11.0.json | 5 +++++ 6 files changed, 48 insertions(+) create mode 100644 images/macos/provision/assets/select-xamarin.sh diff --git a/images/macos/provision/assets/select-xamarin.sh b/images/macos/provision/assets/select-xamarin.sh new file mode 100644 index 00000000..45adc969 --- /dev/null +++ b/images/macos/provision/assets/select-xamarin.sh @@ -0,0 +1,22 @@ +#!/bin/bash +if [ -z "$1" ]; then + echo "No Xamarin SDK specified." + exit 0 +fi + +XAMARIN_SDK=$1 + +echo "Set Xamarin SDK to ${XAMARIN_SDK}" +FOLDERS_LIST=( + '/Library/Frameworks/Mono.framework/Versions' + '/Library/Frameworks/Xamarin.iOS.framework/Versions' + '/Library/Frameworks/Xamarin.Android.framework/Versions' + '/Library/Frameworks/Xamarin.Mac.framework/Versions' + ) + +for FOLDER in "${FOLDERS_LIST[@]}" +do + echo "Set Current folder for ${FOLDER}" + sudo rm -f ${FOLDER}/Current + sudo ln -s ${FOLDER}/${XAMARIN_SDK} ${FOLDER}/Current +done \ No newline at end of file diff --git a/images/macos/provision/configuration/finalize-vm.sh b/images/macos/provision/configuration/finalize-vm.sh index b01b3c23..90abf20a 100644 --- a/images/macos/provision/configuration/finalize-vm.sh +++ b/images/macos/provision/configuration/finalize-vm.sh @@ -12,6 +12,12 @@ fi # Put documentation to $HOME root cp $HOME/image-generation/output/software-report/systeminfo.txt $HOME/image-generation/output/software-report/systeminfo.md $HOME/ +# Put build vm assets scripts to proper directory +sudo mkdir -p /usr/local/opt/$USER/scripts +sudo chmod ugo+rwx /usr/local/opt/$USER/scripts +sudo chown $USER:admin /usr/local/opt/$USER +mv $HOME/image-generation/assets/* /usr/local/opt/$USER/scripts + # Clean up npm cache which collected during image-generation # we have to do that here because `npm install` is run in a few different places during image-generation npm cache clean --force diff --git a/images/macos/templates/macOS-10.13.json b/images/macos/templates/macOS-10.13.json index 2190a6b4..d1737ac5 100644 --- a/images/macos/templates/macOS-10.13.json +++ b/images/macos/templates/macOS-10.13.json @@ -43,6 +43,11 @@ "type": "shell", "inline": "mkdir ~/image-generation" }, + { + "type": "file", + "source": "./provision/assets", + "destination": "~/image-generation/" + }, { "type": "file", "source": "./tests", diff --git a/images/macos/templates/macOS-10.14.json b/images/macos/templates/macOS-10.14.json index 269ffa71..ba6a0add 100644 --- a/images/macos/templates/macOS-10.14.json +++ b/images/macos/templates/macOS-10.14.json @@ -43,6 +43,11 @@ "type": "shell", "inline": "mkdir ~/image-generation" }, + { + "type": "file", + "source": "./provision/assets", + "destination": "~/image-generation/" + }, { "type": "file", "source": "./tests", diff --git a/images/macos/templates/macOS-10.15.json b/images/macos/templates/macOS-10.15.json index 3dcc3d33..468f02e9 100644 --- a/images/macos/templates/macOS-10.15.json +++ b/images/macos/templates/macOS-10.15.json @@ -43,6 +43,11 @@ "type": "shell", "inline": "mkdir ~/image-generation" }, + { + "type": "file", + "source": "./provision/assets", + "destination": "~/image-generation/" + }, { "type": "file", "source": "./tests", diff --git a/images/macos/templates/macOS-11.0.json b/images/macos/templates/macOS-11.0.json index 6da9df38..f270fc43 100644 --- a/images/macos/templates/macOS-11.0.json +++ b/images/macos/templates/macOS-11.0.json @@ -43,6 +43,11 @@ "type": "shell", "inline": "mkdir ~/image-generation" }, + { + "type": "file", + "source": "./provision/assets", + "destination": "~/image-generation/" + }, { "type": "file", "source": "./tests", From a5e3159c62c8f2ce4e691ba1290b35024dfebec5 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Tue, 22 Sep 2020 16:18:15 +0300 Subject: [PATCH 002/103] replace git for windows internal tools --- images/win/Windows2016-Azure.json | 20 +++++----- images/win/Windows2019-Azure.json | 33 ++++++--------- images/win/scripts/Installers/Install-Git.ps1 | 4 +- .../win/scripts/Installers/Install-Msys2.ps1 | 40 +++++++++---------- .../scripts/Installers/Post-Deployment.ps1 | 19 +++++++++ images/win/scripts/Tests/Git.Tests.ps1 | 2 +- 6 files changed, 62 insertions(+), 56 deletions(-) create mode 100644 images/win/scripts/Installers/Post-Deployment.ps1 diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index 6aa1423c..fa1352c8 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -235,6 +235,14 @@ "{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1" ] }, + { + "type": "powershell", + "elevated_user": "SYSTEM", + "elevated_password": "", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" + ] + }, { "type": "powershell", "scripts":[ @@ -290,15 +298,6 @@ "{{ template_dir }}/scripts/Installers/Install-DotnetSDK.ps1" ] }, - - { - "type": "powershell", - "elevated_user": "SYSTEM", - "elevated_password": "", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" - ] - }, { "type": "powershell", "scripts":[ @@ -385,7 +384,8 @@ "type": "powershell", "scripts":[ "{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1", - "{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1" + "{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1", + "{{ template_dir }}/scripts/Installers/Post-Deployment.ps1" ] }, { diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index 515caba9..351ea5b7 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -249,6 +249,14 @@ ] }, + { + "type": "powershell", + "elevated_user": "SYSTEM", + "elevated_password": "", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" + ] + }, { "type": "powershell", "scripts":[ @@ -276,14 +284,6 @@ "elevated_user": "{{user `install_user`}}", "elevated_password": "{{user `install_password`}}" }, - { - "type": "powershell", - "elevated_user": "SYSTEM", - "elevated_password": "", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" - ] - }, { "type": "powershell", "scripts":[ @@ -382,19 +382,10 @@ { "type": "powershell", "scripts":[ - "{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1" - ] - }, - { - "type": "powershell", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1" - ] - }, - { - "type": "powershell", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Run-NGen.ps1" + "{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1", + "{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1", + "{{ template_dir }}/scripts/Installers/Run-NGen.ps1", + "{{ template_dir }}/scripts/Installers/Post-Deployment.ps1" ] }, { diff --git a/images/win/scripts/Installers/Install-Git.ps1 b/images/win/scripts/Installers/Install-Git.ps1 index 2a5ea925..701cf6c4 100644 --- a/images/win/scripts/Installers/Install-Git.ps1 +++ b/images/win/scripts/Installers/Install-Git.ps1 @@ -28,7 +28,7 @@ Install-Binary -Url $downloadUrl ` "/SP-", ` "/CLOSEAPPLICATIONS", ` "/RESTARTAPPLICATIONS", ` - "/o:PathOption=CmdTools", ` + "/o:PathOption=Cmd", ` "/o:BashTerminalOption=ConHost", ` "/o:EnableSymlinks=Enabled", ` "/COMPONENTS=gitlfs") @@ -38,7 +38,5 @@ Choco-Install -PackageName hub # Disable GCM machine-wide [Environment]::SetEnvironmentVariable("GCM_INTERACTIVE", "Never", [System.EnvironmentVariableTarget]::Machine) -Add-MachinePathItem "C:\Program Files\Git\bin" - Invoke-PesterTests -TestFile "Git" -TestName "Git" Invoke-PesterTests -TestFile "CLI.Tools" -TestName "Hub CLI" diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 index f0da3850..919fd171 100644 --- a/images/win/scripts/Installers/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -9,35 +9,22 @@ $dash = "-" * 40 -$origPath = $env:PATH -$gitPath = "$env:ProgramFiles\Git" - -$msys2_release = "https://api.github.com/repos/msys2/msys2-installer/releases/latest" - -$msys2Uri = ((Invoke-RestMethod $msys2_release).assets | Where-Object { +# Downloading msys2 +$msys2Release = "https://api.github.com/repos/msys2/msys2-installer/releases/latest" +$msys2Uri = ((Invoke-RestMethod $msys2Release).assets | Where-Object { $_.name -match "x86_64" -and $_.name.EndsWith("tar.xz") }).browser_download_url - -# Download the latest msys2 x86_64, filename includes release date -Write-Host "Starting msys2 download using $($msys2Uri.split('/')[-1])" $msys2File = Start-DownloadWithRetry -Url $msys2Uri -Write-Host "Finished download" - -# nix style path for tar -$msys2FileU = "/$msys2File".replace(':', '').replace('\', '/') - -# Git tar needs exe's from mingw64\bin -$env:PATH = "$gitPath\usr\bin;$gitPath\mingw64\bin;$origPath" - -$tar = "$gitPath\usr\bin\tar.exe" # extract tar.xz to C:\ Write-Host "Starting msys2 extraction" -&$tar -xJf $msys2FileU -C /c/ -Remove-Item $msys2File +$tempPath = Join-Path $env:Temp msys +Extract-7Zip -Path $msys2File -DestinationPath $tempPath +$tarPath = Resolve-Path $tempPath\msys*.tar +Extract-7Zip -Path $tarPath -DestinationPath C:\ Write-Host "Finished extraction" # Add msys2 bin tools folders to PATH temporary -$env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$origPath" +$env:PATH = "C:\msys64\mingw64\bin;C:\msys64\usr\bin;$env:PATH" Write-Host "`n$dash bash pacman-key --init" bash.exe -c "pacman-key --init 2>&1" @@ -88,4 +75,15 @@ pacman.exe -Q | grep -v ^mingw-w64- Write-Host "`nMSYS2 installation completed" +# Environment +# add C:\msys64\mingw64\bin and C:\msys64\usr\bin to PATH +# C:\msys64\mingw64\bin add after C:\Windows\System32 to not replace built-in tar.exe +$regEnvKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\' +$pathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path' +$pathValue += ";C:\msys64\mingw64\bin;C:\msys64\usr\bin" +Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $pathValue + +# Rename python +Rename-Item "C:\msys64\usr\bin\python.exe" -NewName "_python.exe" + Invoke-PesterTests -TestFile "MSYS2" diff --git a/images/win/scripts/Installers/Post-Deployment.ps1 b/images/win/scripts/Installers/Post-Deployment.ps1 new file mode 100644 index 00000000..c514800d --- /dev/null +++ b/images/win/scripts/Installers/Post-Deployment.ps1 @@ -0,0 +1,19 @@ +# Create shells folder +$shellPath = "C:\shells" +$null = New-Item -Path $shellPath -ItemType Directory + +# MSYS2 <--> C:\msys64\usr\bin\bash.exe +$null = New-Item -ItemType SymbolicLink -Path "$shellPath\msys2.exe" -Target "C:\msys64\usr\bin\bash.exe" + +# sh and bash <--> C:\msys64\usr\bin\bash.exe +$null = New-Item -ItemType SymbolicLink -Path "$shellPath\bash.exe" -Target "C:\msys64\usr\bin\bash.exe" +$null = New-Item -ItemType SymbolicLink -Path "$shellPath\sh.exe" -Target "C:\msys64\usr\bin\sh.exe" + +# winbash <--> C:\Windows\System32\bash.exe +$null = New-Item -ItemType SymbolicLink -Path "$shellPath\winbash.exe" -Target "$env:SystemRoot\System32\bash.exe" + +# git4bash <--> C:\Program Files\Git\bin\bash.exe +$null = New-Item -ItemType SymbolicLink -Path "$shellPath\git4bash.exe" -Target "$env:ProgramFiles\Git\bin\bash.exe" + +# Add shells to PATH +Add-MachinePathItem $shellPath \ No newline at end of file diff --git a/images/win/scripts/Tests/Git.Tests.ps1 b/images/win/scripts/Tests/Git.Tests.ps1 index 8dd159fa..e7675ee0 100644 --- a/images/win/scripts/Tests/Git.Tests.ps1 +++ b/images/win/scripts/Tests/Git.Tests.ps1 @@ -1,5 +1,5 @@ Describe "Git" { - $gitTools = 'bash', 'awk', 'git', 'git-lfs' + $gitTools = 'git', 'git-lfs' $gitTestCases = $gitTools | ForEach-Object { @{ toolName = $_ From 56ea603436fd9f51c33c97cf61b96d914ff8547f Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Tue, 22 Sep 2020 16:28:42 +0300 Subject: [PATCH 003/103] merge edge fix --- images/win/scripts/Installers/Install-Edge.ps1 | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-Edge.ps1 b/images/win/scripts/Installers/Install-Edge.ps1 index ebb7871b..1f4ce0ae 100644 --- a/images/win/scripts/Installers/Install-Edge.ps1 +++ b/images/win/scripts/Installers/Install-Edge.ps1 @@ -24,7 +24,14 @@ $EdgeDriverVersionFile = Start-DownloadWithRetry -Url $EdgeDriverVersionUrl -Nam Write-Host "Download Microsoft Edge WebDriver..." $EdgeDriverLatestVersion = Get-Content -Path $EdgeDriverVersionFile $EdgeDriverArchName = "edgedriver_win64.zip" -$EdgeDriverDownloadUrl="https://msedgedriver.azureedge.net/${EdgeDriverLatestVersion}/${EdgeDriverArchName}" +# A temporary workaround to install the previous driver version because 85.0.564.60 for win64 doesn't exist +if ($EdgeDriverLatestVersion -eq "85.0.564.60") +{ + $EdgeDriverLatestVersion = "85.0.564.51" + Set-Content -Path $EdgeDriverVersionFile -Value $EdgeDriverLatestVersion +} + +$EdgeDriverDownloadUrl = "https://msedgedriver.azureedge.net/${EdgeDriverLatestVersion}/${EdgeDriverArchName}" $EdgeDriverArchPath = Start-DownloadWithRetry -Url $EdgeDriverDownloadUrl -Name $EdgeDriverArchName From 2148a2bd2fdbe4b88b42097ae839e2e9dd82f8da Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Tue, 22 Sep 2020 18:22:15 +0300 Subject: [PATCH 004/103] adding pester tests --- images/win/Windows2016-Azure.json | 8 ++-- images/win/Windows2019-Azure.json | 8 ++-- .../scripts/Installers/Configure-Shell.ps1 | 19 ++++++++ .../scripts/Installers/Post-Deployment.ps1 | 19 -------- images/win/scripts/Tests/Shell.Tests.ps1 | 43 +++++++++++++++++++ 5 files changed, 70 insertions(+), 27 deletions(-) create mode 100644 images/win/scripts/Installers/Configure-Shell.ps1 delete mode 100644 images/win/scripts/Installers/Post-Deployment.ps1 create mode 100644 images/win/scripts/Tests/Shell.Tests.ps1 diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index fa1352c8..442218d3 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -325,7 +325,9 @@ "type": "powershell", "scripts":[ "{{ template_dir }}/scripts/Installers/Install-WindowsUpdates.ps1", - "{{ template_dir }}/scripts/Installers/Configure-DynamicPort.ps1" + "{{ template_dir }}/scripts/Installers/Configure-DynamicPort.ps1", + "{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1", + "{{ template_dir }}/scripts/Installers/Configure-Shell.ps1" ], "elevated_user": "{{user `install_user`}}", "elevated_password": "{{user `install_password`}}" @@ -383,9 +385,7 @@ { "type": "powershell", "scripts":[ - "{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1", - "{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1", - "{{ template_dir }}/scripts/Installers/Post-Deployment.ps1" + "{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1" ] }, { diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index 351ea5b7..0e3d180b 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -324,7 +324,9 @@ "type": "powershell", "scripts":[ "{{ template_dir }}/scripts/Installers/Install-WindowsUpdates.ps1", - "{{ template_dir }}/scripts/Installers/Configure-DynamicPort.ps1" + "{{ template_dir }}/scripts/Installers/Configure-DynamicPort.ps1", + "{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1", + "{{ template_dir }}/scripts/Installers/Configure-Shell.ps1" ], "elevated_user": "{{user `install_user`}}", "elevated_password": "{{user `install_password`}}" @@ -383,9 +385,7 @@ "type": "powershell", "scripts":[ "{{ template_dir }}/scripts/Installers/Configure-Antivirus.ps1", - "{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1", - "{{ template_dir }}/scripts/Installers/Run-NGen.ps1", - "{{ template_dir }}/scripts/Installers/Post-Deployment.ps1" + "{{ template_dir }}/scripts/Installers/Run-NGen.ps1" ] }, { diff --git a/images/win/scripts/Installers/Configure-Shell.ps1 b/images/win/scripts/Installers/Configure-Shell.ps1 new file mode 100644 index 00000000..6bb7bc50 --- /dev/null +++ b/images/win/scripts/Installers/Configure-Shell.ps1 @@ -0,0 +1,19 @@ +# Create shells folder +$shellPath = "C:\shells" +New-Item -Path $shellPath -ItemType Directory | Out-Null + +# sh and bash <--> C:\msys64\usr\bin\bash.exe +New-Item -ItemType SymbolicLink -Path "$shellPath\bash.exe" -Target "C:\msys64\usr\bin\bash.exe" | Out-Null +New-Item -ItemType SymbolicLink -Path "$shellPath\sh.exe" -Target "C:\msys64\usr\bin\sh.exe" | Out-Null + +# winbash <--> C:\Windows\System32\bash.exe +New-Item -ItemType SymbolicLink -Path "$shellPath\winbash.exe" -Target "$env:SystemRoot\System32\bash.exe" | Out-Null + +# git4bash <--> C:\Program Files\Git\bin\bash.exe +New-Item -ItemType SymbolicLink -Path "$shellPath\git4bash.exe" -Target "$env:ProgramFiles\Git\bin\bash.exe" | Out-Null + +# MSYS2 <--> C:\msys64\usr\bin\bash.exe +New-Item -ItemType SymbolicLink -Path "$shellPath\msys2.exe" -Target "C:\msys64\usr\bin\bash.exe" | Out-Null + +# Add shells to PATH +Add-MachinePathItem $shellPath \ No newline at end of file diff --git a/images/win/scripts/Installers/Post-Deployment.ps1 b/images/win/scripts/Installers/Post-Deployment.ps1 deleted file mode 100644 index c514800d..00000000 --- a/images/win/scripts/Installers/Post-Deployment.ps1 +++ /dev/null @@ -1,19 +0,0 @@ -# Create shells folder -$shellPath = "C:\shells" -$null = New-Item -Path $shellPath -ItemType Directory - -# MSYS2 <--> C:\msys64\usr\bin\bash.exe -$null = New-Item -ItemType SymbolicLink -Path "$shellPath\msys2.exe" -Target "C:\msys64\usr\bin\bash.exe" - -# sh and bash <--> C:\msys64\usr\bin\bash.exe -$null = New-Item -ItemType SymbolicLink -Path "$shellPath\bash.exe" -Target "C:\msys64\usr\bin\bash.exe" -$null = New-Item -ItemType SymbolicLink -Path "$shellPath\sh.exe" -Target "C:\msys64\usr\bin\sh.exe" - -# winbash <--> C:\Windows\System32\bash.exe -$null = New-Item -ItemType SymbolicLink -Path "$shellPath\winbash.exe" -Target "$env:SystemRoot\System32\bash.exe" - -# git4bash <--> C:\Program Files\Git\bin\bash.exe -$null = New-Item -ItemType SymbolicLink -Path "$shellPath\git4bash.exe" -Target "$env:ProgramFiles\Git\bin\bash.exe" - -# Add shells to PATH -Add-MachinePathItem $shellPath \ No newline at end of file diff --git a/images/win/scripts/Tests/Shell.Tests.ps1 b/images/win/scripts/Tests/Shell.Tests.ps1 new file mode 100644 index 00000000..e7645f2e --- /dev/null +++ b/images/win/scripts/Tests/Shell.Tests.ps1 @@ -0,0 +1,43 @@ +Describe "Shell" { + $shellTestCases = @( + @{Name = "C:\shells\bash.exe"; Target = "C:\msys64\usr\bin\bash.exe"}, + @{Name = "C:\shells\sh.exe"; Target = "C:\msys64\usr\bin\sh.exe"}, + @{Name = "C:\shells\winbash.exe"; Target = "$env:SystemRoot\System32\bash.exe"}, + @{Name = "C:\shells\git4bash.exe"; Target = "$env:ProgramFiles\Git\bin\bash.exe"}, + @{Name = "C:\shells\msys2.exe"; Target = "C:\msys64\usr\bin\bash.exe"} + ) + + $pathTestCases = @( + @{Path = "C:\shells"}, + @{Path = "C:\msys64\mingw64\bin"}, + @{Path = "C:\msys64\usr\bin"} + ) + + It "Default bash.exe from MSYS2" { + (Get-Command bash).Path | Should -BeExactly "C:\shells\bash.exe" + } + + It "Default sh.exe from MSYS2" { + (Get-Command sh).Path | Should -BeExactly "C:\shells\sh.exe" + } + + It "Folder C:\shells exists" { + "C:\shells" | Should -Exist + } + + It "C:\Windows\System32 before C:\msys64\mingw64\bin and C:\msys64\usr\bin" { + $path = $env:Path.Split(";").ToLower() + $indexOfSystem32 = $path.IndexOf("c:\windows\system32") + + $path.IndexOf("c:\msys64\mingw64\bin") | Should -BeGreaterThan $indexOfSystem32 + $path.IndexOf("c:\msys64\usr\bin") | Should -BeGreaterThan $indexOfSystem32 + } + + It " target to " -TestCases $shellTestCases { + (Get-Item $Name).Target | Should -BeExactly $Target + } + + It " is in PATH" -TestCases $pathTestCases { + $env:Path.Split(";") | Should -Contain $Path + } +} \ No newline at end of file From ed62416e84b73fc13ffff7b61e60a0cbfff25437 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Wed, 23 Sep 2020 10:41:23 +0300 Subject: [PATCH 005/103] fix pester tests --- images/win/scripts/Installers/Configure-Shell.ps1 | 10 +++++++--- images/win/scripts/Installers/Install-Msys2.ps1 | 12 +++--------- images/win/scripts/Tests/Shell.Tests.ps1 | 11 +++++++++-- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/images/win/scripts/Installers/Configure-Shell.ps1 b/images/win/scripts/Installers/Configure-Shell.ps1 index 6bb7bc50..1eabdc08 100644 --- a/images/win/scripts/Installers/Configure-Shell.ps1 +++ b/images/win/scripts/Installers/Configure-Shell.ps1 @@ -6,14 +6,18 @@ New-Item -Path $shellPath -ItemType Directory | Out-Null New-Item -ItemType SymbolicLink -Path "$shellPath\bash.exe" -Target "C:\msys64\usr\bin\bash.exe" | Out-Null New-Item -ItemType SymbolicLink -Path "$shellPath\sh.exe" -Target "C:\msys64\usr\bin\sh.exe" | Out-Null -# winbash <--> C:\Windows\System32\bash.exe -New-Item -ItemType SymbolicLink -Path "$shellPath\winbash.exe" -Target "$env:SystemRoot\System32\bash.exe" | Out-Null +# WSL is available on Windows Server 2019 +if (Test-IsWin19) +{ + # winbash <--> C:\Windows\System32\bash.exe + New-Item -ItemType SymbolicLink -Path "$shellPath\winbash.exe" -Target "$env:SystemRoot\System32\bash.exe" | Out-Null +} # git4bash <--> C:\Program Files\Git\bin\bash.exe New-Item -ItemType SymbolicLink -Path "$shellPath\git4bash.exe" -Target "$env:ProgramFiles\Git\bin\bash.exe" | Out-Null # MSYS2 <--> C:\msys64\usr\bin\bash.exe -New-Item -ItemType SymbolicLink -Path "$shellPath\msys2.exe" -Target "C:\msys64\usr\bin\bash.exe" | Out-Null +New-Item -ItemType SymbolicLink -Path "$shellPath\msys2bash.exe" -Target "C:\msys64\usr\bin\bash.exe" | Out-Null # Add shells to PATH Add-MachinePathItem $shellPath \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 index 919fd171..b077f5cd 100644 --- a/images/win/scripts/Installers/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -12,15 +12,12 @@ $dash = "-" * 40 # Downloading msys2 $msys2Release = "https://api.github.com/repos/msys2/msys2-installer/releases/latest" $msys2Uri = ((Invoke-RestMethod $msys2Release).assets | Where-Object { - $_.name -match "x86_64" -and $_.name.EndsWith("tar.xz") }).browser_download_url + $_.name -match "x86_64" -and $_.name.EndsWith("sfx.exe") }).browser_download_url $msys2File = Start-DownloadWithRetry -Url $msys2Uri -# extract tar.xz to C:\ +# extract sfx.exe to C:\ Write-Host "Starting msys2 extraction" -$tempPath = Join-Path $env:Temp msys -Extract-7Zip -Path $msys2File -DestinationPath $tempPath -$tarPath = Resolve-Path $tempPath\msys*.tar -Extract-7Zip -Path $tarPath -DestinationPath C:\ +& $msys2File -y -oC:\ Write-Host "Finished extraction" # Add msys2 bin tools folders to PATH temporary @@ -83,7 +80,4 @@ $pathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path' $pathValue += ";C:\msys64\mingw64\bin;C:\msys64\usr\bin" Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $pathValue -# Rename python -Rename-Item "C:\msys64\usr\bin\python.exe" -NewName "_python.exe" - Invoke-PesterTests -TestFile "MSYS2" diff --git a/images/win/scripts/Tests/Shell.Tests.ps1 b/images/win/scripts/Tests/Shell.Tests.ps1 index e7645f2e..eec1a3bf 100644 --- a/images/win/scripts/Tests/Shell.Tests.ps1 +++ b/images/win/scripts/Tests/Shell.Tests.ps1 @@ -2,9 +2,8 @@ Describe "Shell" { $shellTestCases = @( @{Name = "C:\shells\bash.exe"; Target = "C:\msys64\usr\bin\bash.exe"}, @{Name = "C:\shells\sh.exe"; Target = "C:\msys64\usr\bin\sh.exe"}, - @{Name = "C:\shells\winbash.exe"; Target = "$env:SystemRoot\System32\bash.exe"}, @{Name = "C:\shells\git4bash.exe"; Target = "$env:ProgramFiles\Git\bin\bash.exe"}, - @{Name = "C:\shells\msys2.exe"; Target = "C:\msys64\usr\bin\bash.exe"} + @{Name = "C:\shells\msys2bash.exe"; Target = "C:\msys64\usr\bin\bash.exe"} ) $pathTestCases = @( @@ -13,6 +12,8 @@ Describe "Shell" { @{Path = "C:\msys64\usr\bin"} ) + $IsWin16 = Test-IsWin16 + It "Default bash.exe from MSYS2" { (Get-Command bash).Path | Should -BeExactly "C:\shells\bash.exe" } @@ -33,6 +34,12 @@ Describe "Shell" { $path.IndexOf("c:\msys64\usr\bin") | Should -BeGreaterThan $indexOfSystem32 } + It "C:\shells\winbash.exe target to $env:SystemRoot\System32\bash.exe" -Skip:$IsWin16 { + $Name = "C:\shells\winbash.exe" + $Target = "$env:SystemRoot\System32\bash.exe" + (Get-Item $Name).Target | Should -BeExactly $Target + } + It " target to " -TestCases $shellTestCases { (Get-Item $Name).Target | Should -BeExactly $Target } From b6d36cae6103cc622c55c34af25f74b2c238ff52 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Wed, 23 Sep 2020 11:45:36 +0300 Subject: [PATCH 006/103] consistency shell naming --- images/win/scripts/Installers/Configure-Shell.ps1 | 8 ++++---- images/win/scripts/Tests/Shell.Tests.ps1 | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/images/win/scripts/Installers/Configure-Shell.ps1 b/images/win/scripts/Installers/Configure-Shell.ps1 index 1eabdc08..8eb163bc 100644 --- a/images/win/scripts/Installers/Configure-Shell.ps1 +++ b/images/win/scripts/Installers/Configure-Shell.ps1 @@ -13,11 +13,11 @@ if (Test-IsWin19) New-Item -ItemType SymbolicLink -Path "$shellPath\winbash.exe" -Target "$env:SystemRoot\System32\bash.exe" | Out-Null } -# git4bash <--> C:\Program Files\Git\bin\bash.exe -New-Item -ItemType SymbolicLink -Path "$shellPath\git4bash.exe" -Target "$env:ProgramFiles\Git\bin\bash.exe" | Out-Null +# gitbash <--> C:\Program Files\Git\bin\bash.exe +New-Item -ItemType SymbolicLink -Path "$shellPath\gitbash.exe" -Target "$env:ProgramFiles\Git\bin\bash.exe" | Out-Null -# MSYS2 <--> C:\msys64\usr\bin\bash.exe -New-Item -ItemType SymbolicLink -Path "$shellPath\msys2bash.exe" -Target "C:\msys64\usr\bin\bash.exe" | Out-Null +# msysbash <--> C:\msys64\usr\bin\bash.exe +New-Item -ItemType SymbolicLink -Path "$shellPath\msysbash.exe" -Target "C:\msys64\usr\bin\bash.exe" | Out-Null # Add shells to PATH Add-MachinePathItem $shellPath \ No newline at end of file diff --git a/images/win/scripts/Tests/Shell.Tests.ps1 b/images/win/scripts/Tests/Shell.Tests.ps1 index eec1a3bf..915940e2 100644 --- a/images/win/scripts/Tests/Shell.Tests.ps1 +++ b/images/win/scripts/Tests/Shell.Tests.ps1 @@ -2,8 +2,8 @@ Describe "Shell" { $shellTestCases = @( @{Name = "C:\shells\bash.exe"; Target = "C:\msys64\usr\bin\bash.exe"}, @{Name = "C:\shells\sh.exe"; Target = "C:\msys64\usr\bin\sh.exe"}, - @{Name = "C:\shells\git4bash.exe"; Target = "$env:ProgramFiles\Git\bin\bash.exe"}, - @{Name = "C:\shells\msys2bash.exe"; Target = "C:\msys64\usr\bin\bash.exe"} + @{Name = "C:\shells\gitbash.exe"; Target = "$env:ProgramFiles\Git\bin\bash.exe"}, + @{Name = "C:\shells\msysbash.exe"; Target = "C:\msys64\usr\bin\bash.exe"} ) $pathTestCases = @( From c076e851f4f23cd0802e885996d1cbf09c1805ef Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Wed, 23 Sep 2020 13:30:07 +0300 Subject: [PATCH 007/103] make scripts executable --- images/macos/provision/configuration/finalize-vm.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/images/macos/provision/configuration/finalize-vm.sh b/images/macos/provision/configuration/finalize-vm.sh index 90abf20a..3b7f1dc6 100644 --- a/images/macos/provision/configuration/finalize-vm.sh +++ b/images/macos/provision/configuration/finalize-vm.sh @@ -18,6 +18,12 @@ sudo chmod ugo+rwx /usr/local/opt/$USER/scripts sudo chown $USER:admin /usr/local/opt/$USER mv $HOME/image-generation/assets/* /usr/local/opt/$USER/scripts +executableScripts=$(ls /usr/local/opt/$USER/scripts | grep "*\.sh") +for script in $executableScripts +do + chmod +x $script +done + # Clean up npm cache which collected during image-generation # we have to do that here because `npm install` is run in a few different places during image-generation npm cache clean --force From c189d7eac048a0f7bbfa7364f8c72a12cba1b2fc Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Wed, 23 Sep 2020 13:37:15 +0300 Subject: [PATCH 008/103] rename select-xamarin to selec-xamarin-sdk --- .../provision/assets/{select-xamarin.sh => select-xamarin-sdk.sh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename images/macos/provision/assets/{select-xamarin.sh => select-xamarin-sdk.sh} (100%) diff --git a/images/macos/provision/assets/select-xamarin.sh b/images/macos/provision/assets/select-xamarin-sdk.sh similarity index 100% rename from images/macos/provision/assets/select-xamarin.sh rename to images/macos/provision/assets/select-xamarin-sdk.sh From c5aa898cd6a59686a559a20be464929a98af2095 Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Wed, 23 Sep 2020 14:13:02 +0300 Subject: [PATCH 009/103] change to find search --- images/macos/provision/configuration/finalize-vm.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/images/macos/provision/configuration/finalize-vm.sh b/images/macos/provision/configuration/finalize-vm.sh index 3b7f1dc6..77902ea4 100644 --- a/images/macos/provision/configuration/finalize-vm.sh +++ b/images/macos/provision/configuration/finalize-vm.sh @@ -18,11 +18,7 @@ sudo chmod ugo+rwx /usr/local/opt/$USER/scripts sudo chown $USER:admin /usr/local/opt/$USER mv $HOME/image-generation/assets/* /usr/local/opt/$USER/scripts -executableScripts=$(ls /usr/local/opt/$USER/scripts | grep "*\.sh") -for script in $executableScripts -do - chmod +x $script -done +find /usr/local/opt/$USER/scripts -type f -name "*\.sh" -exec chmod +x {} \; # Clean up npm cache which collected during image-generation # we have to do that here because `npm install` is run in a few different places during image-generation From cdc9d19df849adcce5dec98866e65f3c7359100b Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Fri, 25 Sep 2020 11:54:37 +0300 Subject: [PATCH 010/103] msys2 after openssl --- images/win/Windows2016-Azure.json | 16 ++++++++-------- images/win/Windows2019-Azure.json | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index 442218d3..8d47c462 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -235,14 +235,6 @@ "{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1" ] }, - { - "type": "powershell", - "elevated_user": "SYSTEM", - "elevated_password": "", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" - ] - }, { "type": "powershell", "scripts":[ @@ -270,6 +262,14 @@ "elevated_user": "{{user `install_user`}}", "elevated_password": "{{user `install_password`}}" }, + { + "type": "powershell", + "elevated_user": "SYSTEM", + "elevated_password": "", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" + ] + }, { "type": "windows-shell", "inline": ["wmic product where \"name like '%%microsoft azure powershell%%'\" call uninstall /nointeractive"] diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index 0e3d180b..b1500edb 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -249,14 +249,6 @@ ] }, - { - "type": "powershell", - "elevated_user": "SYSTEM", - "elevated_password": "", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" - ] - }, { "type": "powershell", "scripts":[ @@ -284,6 +276,14 @@ "elevated_user": "{{user `install_user`}}", "elevated_password": "{{user `install_password`}}" }, + { + "type": "powershell", + "elevated_user": "SYSTEM", + "elevated_password": "", + "scripts":[ + "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" + ] + }, { "type": "powershell", "scripts":[ From caefc77d7ad916c0e56d763a4adbd7b435061109 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Mon, 28 Sep 2020 15:08:08 +0300 Subject: [PATCH 011/103] update msys2 notes --- .../scripts/SoftwareReport/SoftwareReport.Common.psm1 | 6 ++++++ .../SoftwareReport/SoftwareReport.Generator.ps1 | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 b/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 index 05b101aa..45a9a4ac 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 @@ -271,6 +271,12 @@ function Get-PacmanVersion { return "- Pacman $pacmanVersion" } +function Get-ShellTarget { + $shells = Get-ChildItem C:\shells -File | Select-Object @{n="Name";e={ + if ($_.Name -eq 'bash.exe') {"$($_.Name) (Default)"} else {$_.Name}}},@{n="Target";e={$_.Target[0]}} | Sort-Object Name + $shells | New-MDTable -Columns ([ordered]@{Name = "left"; Target = "left";}) +} + function Get-YAMLLintVersion { yamllint --version } \ No newline at end of file diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 b/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 index 2f45ecde..4a24d73e 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 @@ -148,14 +148,22 @@ $markdown += New-MDList -Style Unordered -Lines @( (Get-SeleniumWebDriverVersion -Driver "iexplorer") ) +$markdown += New-MDHeader "Shells" -Level 3 +$markdown += Get-ShellTarget +$markdown += New-MDNewLine + $markdown += New-MDHeader "MSYS2" -Level 3 $markdown += Get-PacmanVersion $markdown += New-MDNewLine +$markdown += New-MDHeader "Notes:" -Level 5 $markdown += @' ``` Location: C:\msys64 -Note: MSYS2 is pre-installed on image but not added to PATH. +1. MSYS2 is pre-installed on image +2. C:\msys64\mingw64\bin is added to PATH and has lower precedence than C:\Windows\System32 +3. C:\msys64\usr\bin is added to PATH and has lower precedence than C:\Windows\System32 +4. Default bash.exe shell is set to the C:\msys64\usr\bin\bash.exe ``` '@ $markdown += New-MDNewLine From 55b69ec4b48c3ef16642484919051035eb12feb0 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Wed, 30 Sep 2020 10:33:53 +0300 Subject: [PATCH 012/103] remove duplicate msys2 record --- images/win/Windows2016-Azure.json | 8 -------- 1 file changed, 8 deletions(-) diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index be64ae47..e20404c8 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -266,14 +266,6 @@ "elevated_user": "{{user `install_user`}}", "elevated_password": "{{user `install_password`}}" }, - { - "type": "powershell", - "elevated_user": "SYSTEM", - "elevated_password": "", - "scripts":[ - "{{ template_dir }}/scripts/Installers/Install-Msys2.ps1" - ] - }, { "type": "windows-shell", "inline": [ From fe810160ee404f091d1ca84173477cb89bbd8d7c Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Wed, 30 Sep 2020 19:08:14 +0300 Subject: [PATCH 013/103] fix target --- images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 b/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 index 45a9a4ac..0ca95ee7 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 @@ -273,7 +273,8 @@ function Get-PacmanVersion { function Get-ShellTarget { $shells = Get-ChildItem C:\shells -File | Select-Object @{n="Name";e={ - if ($_.Name -eq 'bash.exe') {"$($_.Name) (Default)"} else {$_.Name}}},@{n="Target";e={$_.Target[0]}} | Sort-Object Name + $name = $_.Name + if ($name -eq 'bash.exe') {"$name (Default)"} else {$name}}},@{n="Target";e={@($_.Target)[0]}} | Sort-Object Name $shells | New-MDTable -Columns ([ordered]@{Name = "left"; Target = "left";}) } From 5d96d50f595c66e45212350b93ab77380d7b58fa Mon Sep 17 00:00:00 2001 From: Nikita Bykov Date: Wed, 7 Oct 2020 09:29:37 +0300 Subject: [PATCH 014/103] added pipx and yamllint --- images/macos/provision/core/commonutils.sh | 1 - images/macos/provision/core/pipx-packages.sh | 25 +++++++++++++++++++ images/macos/provision/core/python.sh | 14 ++++++++++- .../SoftwareReport.Common.psm1 | 4 +++ .../SoftwareReport.Generator.ps1 | 2 ++ images/macos/templates/macOS-10.14.json | 7 ++++++ images/macos/templates/macOS-10.15.json | 7 ++++++ images/macos/templates/macOS-11.0.json | 7 ++++++ images/macos/toolsets/toolset-10.14.json | 6 +++++ images/macos/toolsets/toolset-10.15.json | 14 ++++++++--- images/macos/toolsets/toolset-11.0.json | 10 ++++++-- 11 files changed, 89 insertions(+), 8 deletions(-) create mode 100644 images/macos/provision/core/pipx-packages.sh diff --git a/images/macos/provision/core/commonutils.sh b/images/macos/provision/core/commonutils.sh index 9b32d5c2..5b3522f5 100644 --- a/images/macos/provision/core/commonutils.sh +++ b/images/macos/provision/core/commonutils.sh @@ -22,7 +22,6 @@ binst_common_utils=( github/gh/gh p7zip ant - yamllint aria2 ) diff --git a/images/macos/provision/core/pipx-packages.sh b/images/macos/provision/core/pipx-packages.sh new file mode 100644 index 00000000..c01a4b97 --- /dev/null +++ b/images/macos/provision/core/pipx-packages.sh @@ -0,0 +1,25 @@ +source ~/utils/utils.sh + +export PATH="$PATH:/opt/pipx_bin" + +toolset=get_toolset_path +pipx_packages=$(jq -r ".pipx[] .package" $toolset) + +for package in $pipx_packages; do + python_version=$(jq -r ".pipx[] | select(.package == \"$package\") .python" $toolset) + if [ "$python_version" != "null" ]; then + python_path="/opt/hostedtoolcache/Python/$python_version*/x64/bin/python$python_version" + echo "Install $package into python $python_path" + pipx install $package --python $python_path + else + echo "Install $package into default python" + pipx install $package + fi + + # Run tests to determine that the software installed as expected + cmd=$(jq -r ".pipx[] | select(.package == \"$package\") .cmd" $toolset) + if ! command -v $cmd; then + echo "$package was not installed" + exit 1 + fi +done \ No newline at end of file diff --git a/images/macos/provision/core/python.sh b/images/macos/provision/core/python.sh index 41488642..5bda9ef3 100755 --- a/images/macos/provision/core/python.sh +++ b/images/macos/provision/core/python.sh @@ -7,7 +7,19 @@ echo "Brew Installing Python 3" /usr/local/bin/brew install python3 echo "Brew Installing Python 2" -# Create local tap with formula due to python2 formula depreciation +# Create local tap with formula due to python2 formula depreciation /usr/local/bin/brew tap-new local/python2 FORMULA_PATH=$(/usr/local/bin/brew extract python@2 local/python2 | grep "Homebrew/Library/Taps") /usr/local/bin/brew install $FORMULA_PATH + +echo "Installing pipx" +export PIPX_BIN_DIR=/opt/pipx_bin +export PIPX_HOME=/opt/pipx + +brew install pipx +python3 -m pipx ensurepath + +echo "export PIPX_BIN_DIR=${PIPX_BIN_DIR}" >> "${HOME}/.bashrc" +echo "export PIPX_HOME=${PIPX_HOME}" >> "${HOME}/.bashrc" +echo 'export PATH="$PIPX_BIN_DIR:$PATH"' >> "${HOME}/.bashrc" + diff --git a/images/macos/software-report/SoftwareReport.Common.psm1 b/images/macos/software-report/SoftwareReport.Common.psm1 index c3fe7517..5c518d16 100644 --- a/images/macos/software-report/SoftwareReport.Common.psm1 +++ b/images/macos/software-report/SoftwareReport.Common.psm1 @@ -96,6 +96,10 @@ function Get-PipVersion { return "${versionPart1} ${versionPart2} ${versionPart3}" } +function Get-PipxVersion { + return "Pipx $(pipx --version 2> $null)" +} + function Get-NVMNodeVersionList { $nvmPath = Join-Path $env:HOME ".nvm" "nvm.sh" $nvmInitCommand = ". ${nvmPath} > /dev/null 2>&1 || true" diff --git a/images/macos/software-report/SoftwareReport.Generator.ps1 b/images/macos/software-report/SoftwareReport.Generator.ps1 index 87c94459..40214d7a 100644 --- a/images/macos/software-report/SoftwareReport.Generator.ps1 +++ b/images/macos/software-report/SoftwareReport.Generator.ps1 @@ -81,6 +81,7 @@ $npmVersion = Run-Command "npm --version" $yarnVersion = Run-Command "yarn --version" $nugetVersion = Run-Command "nuget help" | Select-Object -First 1 | Take-Part -Part 2 $pip3Version = Get-PipVersion -Version 3 +$pipxVersion = Get-PipxVersion $condaVersion = Invoke-Expression "conda --version" $rubyGemsVersion = Run-Command "gem --version" $composerVersion = Run-Command "composer --version" | Take-Part -Part 2 @@ -97,6 +98,7 @@ if ($os.IsLessThanBigSur) { $markdown += New-MDList -Style Unordered -Lines @( "Pip ${pip3Version}", + $pipxVersion, $bundlerVersion, "Carthage ${carthageVersion}", "CocoaPods ${cocoaPodsVersion}", diff --git a/images/macos/templates/macOS-10.14.json b/images/macos/templates/macOS-10.14.json index 269ffa71..3cb0b070 100644 --- a/images/macos/templates/macOS-10.14.json +++ b/images/macos/templates/macOS-10.14.json @@ -196,6 +196,13 @@ "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}", "scripts": "./provision/core/toolset.ps1" }, + { + "type": "shell", + "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}", + "scripts": [ + "./provision/core/pipx-packages.sh" + ] + }, { "type": "shell", "execute_command": "ruby {{ .Path }}", diff --git a/images/macos/templates/macOS-10.15.json b/images/macos/templates/macOS-10.15.json index 3dcc3d33..65a0d12d 100644 --- a/images/macos/templates/macOS-10.15.json +++ b/images/macos/templates/macOS-10.15.json @@ -195,6 +195,13 @@ "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}", "scripts": "./provision/core/toolset.ps1" }, + { + "type": "shell", + "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}", + "scripts": [ + "./provision/core/pipx-packages.sh" + ] + }, { "type": "shell", "execute_command": "ruby {{ .Path }}", diff --git a/images/macos/templates/macOS-11.0.json b/images/macos/templates/macOS-11.0.json index 6da9df38..c732f799 100644 --- a/images/macos/templates/macOS-11.0.json +++ b/images/macos/templates/macOS-11.0.json @@ -192,6 +192,13 @@ "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}", "scripts": "./provision/core/toolset.ps1" }, + { + "type": "shell", + "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}", + "scripts": [ + "./provision/core/pipx-packages.sh" + ] + }, { "type": "shell", "execute_command": "ruby {{ .Path }}", diff --git a/images/macos/toolsets/toolset-10.14.json b/images/macos/toolsets/toolset-10.14.json index e868f769..fc1d44af 100644 --- a/images/macos/toolsets/toolset-10.14.json +++ b/images/macos/toolsets/toolset-10.14.json @@ -257,5 +257,11 @@ "1.15.*" ] } + ], + "pipx": [ + { + "package": "yamllint", + "cmd": "yamllint" + } ] } \ No newline at end of file diff --git a/images/macos/toolsets/toolset-10.15.json b/images/macos/toolsets/toolset-10.15.json index 8497a710..e754bacf 100644 --- a/images/macos/toolsets/toolset-10.15.json +++ b/images/macos/toolsets/toolset-10.15.json @@ -26,28 +26,28 @@ "mono":"6.12", "ios": "14.0", "mac": "6.20", - "android": "11.0" + "android": "11.0" }, { "symlink": "6_12_0", "mono":"6.12", "ios": "13.20", "mac": "6.20", - "android": "11.0" + "android": "11.0" }, { "symlink": "6_10_0", "mono":"6.10", "ios": "13.18", "mac": "6.18", - "android": "10.3" + "android": "10.3" }, { "symlink": "6_8_1", "mono":"6.8", "ios": "13.16", "mac": "6.16", - "android": "10.2" + "android": "10.2" }, { "symlink": "6_8_0", @@ -166,5 +166,11 @@ "1.15.*" ] } + ], + "pipx": [ + { + "package": "yamllint", + "cmd": "yamllint" + } ] } \ No newline at end of file diff --git a/images/macos/toolsets/toolset-11.0.json b/images/macos/toolsets/toolset-11.0.json index 725da218..8a739f91 100644 --- a/images/macos/toolsets/toolset-11.0.json +++ b/images/macos/toolsets/toolset-11.0.json @@ -26,14 +26,14 @@ "mono":"6.12", "ios": "14.0", "mac": "6.20", - "android": "11.0" + "android": "11.0" }, { "symlink": "6_12_0", "mono":"6.12", "ios": "13.20", "mac": "6.20", - "android": "11.0" + "android": "11.0" } ] }, @@ -91,5 +91,11 @@ "1.15.*" ] } + ], + "pipx": [ + { + "package": "yamllint", + "cmd": "yamllint" + } ] } \ No newline at end of file From 6742dd7a546df5c182a04a552d62ebb6eaaa41b9 Mon Sep 17 00:00:00 2001 From: Nikita Bykov Date: Wed, 7 Oct 2020 14:58:13 +0300 Subject: [PATCH 015/103] resolved comments --- images/macos/provision/core/pipx-packages.sh | 9 +-------- images/macos/provision/core/python.sh | 5 ++--- images/macos/tests/Python.Tests.ps1 | 4 ++++ 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/images/macos/provision/core/pipx-packages.sh b/images/macos/provision/core/pipx-packages.sh index c01a4b97..b755dede 100644 --- a/images/macos/provision/core/pipx-packages.sh +++ b/images/macos/provision/core/pipx-packages.sh @@ -8,18 +8,11 @@ pipx_packages=$(jq -r ".pipx[] .package" $toolset) for package in $pipx_packages; do python_version=$(jq -r ".pipx[] | select(.package == \"$package\") .python" $toolset) if [ "$python_version" != "null" ]; then - python_path="/opt/hostedtoolcache/Python/$python_version*/x64/bin/python$python_version" + python_path="$HOME/hostedtoolcache/Python/$python_version*/x64/bin/python$python_version" echo "Install $package into python $python_path" pipx install $package --python $python_path else echo "Install $package into default python" pipx install $package fi - - # Run tests to determine that the software installed as expected - cmd=$(jq -r ".pipx[] | select(.package == \"$package\") .cmd" $toolset) - if ! command -v $cmd; then - echo "$package was not installed" - exit 1 - fi done \ No newline at end of file diff --git a/images/macos/provision/core/python.sh b/images/macos/provision/core/python.sh index 5bda9ef3..0c4058e3 100755 --- a/images/macos/provision/core/python.sh +++ b/images/macos/provision/core/python.sh @@ -13,11 +13,10 @@ FORMULA_PATH=$(/usr/local/bin/brew extract python@2 local/python2 | grep "Homebr /usr/local/bin/brew install $FORMULA_PATH echo "Installing pipx" -export PIPX_BIN_DIR=/opt/pipx_bin -export PIPX_HOME=/opt/pipx +export PIPX_BIN_DIR=/usr/local/opt/pipx_bin +export PIPX_HOME=/usr/local/opt/pipx brew install pipx -python3 -m pipx ensurepath echo "export PIPX_BIN_DIR=${PIPX_BIN_DIR}" >> "${HOME}/.bashrc" echo "export PIPX_HOME=${PIPX_HOME}" >> "${HOME}/.bashrc" diff --git a/images/macos/tests/Python.Tests.ps1 b/images/macos/tests/Python.Tests.ps1 index 76cd8941..43dc122a 100644 --- a/images/macos/tests/Python.Tests.ps1 +++ b/images/macos/tests/Python.Tests.ps1 @@ -31,4 +31,8 @@ Describe "Python" { It "Pip 3 is available" { "pip3 --version" | Should -ReturnZeroExitCode } + + It "Pipx is available" { + "pipx --version" | Should -ReturnZeroExitCode + } } \ No newline at end of file From ef1a055d44d3210760ee96ac96ec0c124e72cd68 Mon Sep 17 00:00:00 2001 From: Nikita Bykov Date: Wed, 7 Oct 2020 16:20:27 +0300 Subject: [PATCH 016/103] added pipx to 10.13 --- images/macos/templates/macOS-10.13.json | 7 +++++++ images/macos/toolsets/toolset-10.13.json | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/images/macos/templates/macOS-10.13.json b/images/macos/templates/macOS-10.13.json index 2190a6b4..2300bf51 100644 --- a/images/macos/templates/macOS-10.13.json +++ b/images/macos/templates/macOS-10.13.json @@ -183,6 +183,13 @@ "./provision/core/pypy.sh" ] }, + { + "type": "shell", + "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}", + "scripts": [ + "./provision/core/pipx-packages.sh" + ] + }, { "type": "shell", "inline": [ diff --git a/images/macos/toolsets/toolset-10.13.json b/images/macos/toolsets/toolset-10.13.json index fdb14d08..5157fe47 100644 --- a/images/macos/toolsets/toolset-10.13.json +++ b/images/macos/toolsets/toolset-10.13.json @@ -198,5 +198,11 @@ "3.6" ] } + ], + "pipx": [ + { + "package": "yamllint", + "cmd": "yamllint" + } ] } \ No newline at end of file From 451598b8c171adf7fea6da3715e7e41cdee0d368 Mon Sep 17 00:00:00 2001 From: Nikita Bykov Date: Fri, 9 Oct 2020 09:43:44 +0300 Subject: [PATCH 017/103] fixed pipx-packages.sh --- images/macos/provision/core/pipx-packages.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/macos/provision/core/pipx-packages.sh b/images/macos/provision/core/pipx-packages.sh index b755dede..658600fa 100644 --- a/images/macos/provision/core/pipx-packages.sh +++ b/images/macos/provision/core/pipx-packages.sh @@ -2,7 +2,7 @@ source ~/utils/utils.sh export PATH="$PATH:/opt/pipx_bin" -toolset=get_toolset_path +toolset=$(get_toolset_path) pipx_packages=$(jq -r ".pipx[] .package" $toolset) for package in $pipx_packages; do From f1da709f47f9f14aa559501fd260f2dcdc1448de Mon Sep 17 00:00:00 2001 From: Nikita Bykov Date: Mon, 12 Oct 2020 11:10:02 +0300 Subject: [PATCH 018/103] fixed Get-PipxVersion --- images/macos/software-report/SoftwareReport.Common.psm1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/images/macos/software-report/SoftwareReport.Common.psm1 b/images/macos/software-report/SoftwareReport.Common.psm1 index 5c518d16..7616b81b 100644 --- a/images/macos/software-report/SoftwareReport.Common.psm1 +++ b/images/macos/software-report/SoftwareReport.Common.psm1 @@ -97,7 +97,8 @@ function Get-PipVersion { } function Get-PipxVersion { - return "Pipx $(pipx --version 2> $null)" + $pipxVersion = Run-Command "pipx --version" -SuppressStderr + return "Pipx $pipxVersion" } function Get-NVMNodeVersionList { From a766bb164b81e837ab566c4993f7ef97bae4128c Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 02:45:29 +0700 Subject: [PATCH 019/103] added linter for ubuntu --- images.CI/linux-and-win/lint_ubuntu.ps1 | 34 +++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 images.CI/linux-and-win/lint_ubuntu.ps1 diff --git a/images.CI/linux-and-win/lint_ubuntu.ps1 b/images.CI/linux-and-win/lint_ubuntu.ps1 new file mode 100644 index 00000000..7adcf70b --- /dev/null +++ b/images.CI/linux-and-win/lint_ubuntu.ps1 @@ -0,0 +1,34 @@ +param( + [Parameter(Mandatory)] [string] $path, + [Parameter(Mandatory)] [string] $pattern +) + +$ErrorActionPreference = "Stop" + +function Validate-Scripts { + Param ( + [Parameter(Mandatory=$true)] + [string[]]$Path, + [Parameter(Mandatory=$true)] + [string]$Pattern + ) + $WrongScript = New-Object System.Collections.Generic.List[System.Object] + Get-ChildItem $path | ForEach-Object { + if (Select-String -Path $($_.FullName) -Pattern $Pattern -Quiet) { + Write-Host "Pattern '$pattern' found in '$($_.FullName)'" + } + else { + Write-Host "Pattern '$pattern' not found in '$($_.FullName)'" + $WrongScript += $($_.FullName) + } + } + return $WrongScript +} + +$FailedScripts = Validate-Scripts -Path $path -Pattern "#/bin/bash -e" +if ($FailedScripts.Length -gt 0) { + $FailedScripts | ForEach-Object { + Write-Warning "The following script does not contain shebang: '$_'" + } + exit 1 +} \ No newline at end of file From 374bf8e5cddd2e849017fb2d0601ccb47d4a33e2 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 17:10:22 +0700 Subject: [PATCH 020/103] resolve comments --- images.CI/lint-shebang.ps1 | 34 +++++++++++++++++++++++++ images.CI/linux-and-win/lint_ubuntu.ps1 | 34 ------------------------- 2 files changed, 34 insertions(+), 34 deletions(-) create mode 100644 images.CI/lint-shebang.ps1 delete mode 100644 images.CI/linux-and-win/lint_ubuntu.ps1 diff --git a/images.CI/lint-shebang.ps1 b/images.CI/lint-shebang.ps1 new file mode 100644 index 00000000..6a2789f5 --- /dev/null +++ b/images.CI/lint-shebang.ps1 @@ -0,0 +1,34 @@ +param( + [Parameter(Mandatory)] [string] $path, + [Parameter(Mandatory)] [string] $pattern +) + +$ErrorActionPreference = "Stop" + +function Validate-Scripts { + Param ( + [Parameter(Mandatory=$true)] + [string[]]$Path, + [Parameter(Mandatory=$true)] + [string]$Pattern + ) + $ScriptsWithBrokenShebang = @() + Get-ChildItem $path | ForEach-Object { + if (Get-Content -Path $($_.FullName) | Select-Object -First 1 | Select-String -Pattern $Pattern -Quiet) { + Write-Host "Pattern '$Pattern' found in '$($_.FullName)'" + } + else { + Write-Host "Pattern '$Pattern' not found in '$($_.FullName)'" + $ScriptsWithBrokenShebang += $($_.FullName) + } + } + return $ScriptsWithBrokenShebang +} + +$ScriptsWithBrokenShebang = Validate-Scripts -Path $path -Pattern "#!/bin/bash -e" +if ($ScriptsWithBrokenShebang.Length -gt 0) { + $ScriptsWithBrokenShebang | ForEach-Object { + Write-Warning "The following script does not contain shebang: '$_'" + } + exit 1 +} \ No newline at end of file diff --git a/images.CI/linux-and-win/lint_ubuntu.ps1 b/images.CI/linux-and-win/lint_ubuntu.ps1 deleted file mode 100644 index 7adcf70b..00000000 --- a/images.CI/linux-and-win/lint_ubuntu.ps1 +++ /dev/null @@ -1,34 +0,0 @@ -param( - [Parameter(Mandatory)] [string] $path, - [Parameter(Mandatory)] [string] $pattern -) - -$ErrorActionPreference = "Stop" - -function Validate-Scripts { - Param ( - [Parameter(Mandatory=$true)] - [string[]]$Path, - [Parameter(Mandatory=$true)] - [string]$Pattern - ) - $WrongScript = New-Object System.Collections.Generic.List[System.Object] - Get-ChildItem $path | ForEach-Object { - if (Select-String -Path $($_.FullName) -Pattern $Pattern -Quiet) { - Write-Host "Pattern '$pattern' found in '$($_.FullName)'" - } - else { - Write-Host "Pattern '$pattern' not found in '$($_.FullName)'" - $WrongScript += $($_.FullName) - } - } - return $WrongScript -} - -$FailedScripts = Validate-Scripts -Path $path -Pattern "#/bin/bash -e" -if ($FailedScripts.Length -gt 0) { - $FailedScripts | ForEach-Object { - Write-Warning "The following script does not contain shebang: '$_'" - } - exit 1 -} \ No newline at end of file From fe4def773996201394af79bae3baf605d01402f3 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 17:24:06 +0700 Subject: [PATCH 021/103] resolve comments. --- images.CI/lint-shebang.ps1 | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/images.CI/lint-shebang.ps1 b/images.CI/lint-shebang.ps1 index 6a2789f5..ffed13bd 100644 --- a/images.CI/lint-shebang.ps1 +++ b/images.CI/lint-shebang.ps1 @@ -12,20 +12,22 @@ function Validate-Scripts { [Parameter(Mandatory=$true)] [string]$Pattern ) - $ScriptsWithBrokenShebang = @() + $ScriptWithoutShebangLine = @() Get-ChildItem $path | ForEach-Object { if (Get-Content -Path $($_.FullName) | Select-Object -First 1 | Select-String -Pattern $Pattern -Quiet) { Write-Host "Pattern '$Pattern' found in '$($_.FullName)'" } else { Write-Host "Pattern '$Pattern' not found in '$($_.FullName)'" - $ScriptsWithBrokenShebang += $($_.FullName) + $ScriptWithoutShebangLine += $($_.FullName) } } - return $ScriptsWithBrokenShebang + return $ScriptWithoutShebangLine } -$ScriptsWithBrokenShebang = Validate-Scripts -Path $path -Pattern "#!/bin/bash -e" +$ScriptsWithBrokenShebang = @() +$ScriptsWithBrokenShebang += Validate-Scripts -Path $path1 -Pattern "#!/bin/bash -e" +$ScriptsWithBrokenShebang += Validate-Scripts -Path $path2 -Pattern "#!/bin/bash -e" if ($ScriptsWithBrokenShebang.Length -gt 0) { $ScriptsWithBrokenShebang | ForEach-Object { Write-Warning "The following script does not contain shebang: '$_'" From 4f08343661c445b8a901c7923958f3494f7bcffd Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 17:25:30 +0700 Subject: [PATCH 022/103] added comments --- images.CI/lint-shebang.ps1 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/images.CI/lint-shebang.ps1 b/images.CI/lint-shebang.ps1 index ffed13bd..9e38bda2 100644 --- a/images.CI/lint-shebang.ps1 +++ b/images.CI/lint-shebang.ps1 @@ -26,8 +26,10 @@ function Validate-Scripts { } $ScriptsWithBrokenShebang = @() +# Check Ubuntu contains required shebang string $ScriptsWithBrokenShebang += Validate-Scripts -Path $path1 -Pattern "#!/bin/bash -e" -$ScriptsWithBrokenShebang += Validate-Scripts -Path $path2 -Pattern "#!/bin/bash -e" +# Check MacOS contains required shebang string +$ScriptsWithBrokenShebang += Validate-Scripts -Path $path2 -Pattern "#!/bin/bash -e -o pipefail" if ($ScriptsWithBrokenShebang.Length -gt 0) { $ScriptsWithBrokenShebang | ForEach-Object { Write-Warning "The following script does not contain shebang: '$_'" From e88c5b8f09fdfae6d0c8a427d7847c7e2ae1f4c3 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 17:55:00 +0700 Subject: [PATCH 023/103] added all changes. --- images.CI/lint-shebang.ps1 | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/images.CI/lint-shebang.ps1 b/images.CI/lint-shebang.ps1 index 9e38bda2..233ed334 100644 --- a/images.CI/lint-shebang.ps1 +++ b/images.CI/lint-shebang.ps1 @@ -1,8 +1,3 @@ -param( - [Parameter(Mandatory)] [string] $path, - [Parameter(Mandatory)] [string] $pattern -) - $ErrorActionPreference = "Stop" function Validate-Scripts { @@ -10,29 +5,32 @@ function Validate-Scripts { [Parameter(Mandatory=$true)] [string[]]$Path, [Parameter(Mandatory=$true)] - [string]$Pattern + [string]$ExpectedShebang ) $ScriptWithoutShebangLine = @() - Get-ChildItem $path | ForEach-Object { - if (Get-Content -Path $($_.FullName) | Select-Object -First 1 | Select-String -Pattern $Pattern -Quiet) { - Write-Host "Pattern '$Pattern' found in '$($_.FullName)'" + Get-ChildItem $path -Recurse -File -Filter "*.sh" | ForEach-Object { + $shebangLine = Get-Content -Path $($_.FullName) | Select-Object -First 1 + if ($shebangLine -eq $ExpectedShebang) { + Write-Host "Pattern '$ExpectedShebang' found in '$($_.FullName)'" } else { - Write-Host "Pattern '$Pattern' not found in '$($_.FullName)'" - $ScriptWithoutShebangLine += $($_.FullName) + Write-Host "Pattern '$ExpectedShebang' not found in '$($_.FullName)'" + $ScriptWithoutShebangLine += $($_.FullName) } } return $ScriptWithoutShebangLine } +$PathUbuntu = "./images/linux/scripts" +$PathMacOS = "./images/macos/provision" $ScriptsWithBrokenShebang = @() # Check Ubuntu contains required shebang string -$ScriptsWithBrokenShebang += Validate-Scripts -Path $path1 -Pattern "#!/bin/bash -e" +$ScriptsWithBrokenShebang += Validate-Scripts -Path $PathUbuntu -Pattern "#!/bin/bash -e" # Check MacOS contains required shebang string -$ScriptsWithBrokenShebang += Validate-Scripts -Path $path2 -Pattern "#!/bin/bash -e -o pipefail" +$ScriptsWithBrokenShebang += Validate-Scripts -Path $PathMacOS -Pattern "#!/bin/bash -e -o pipefail" if ($ScriptsWithBrokenShebang.Length -gt 0) { $ScriptsWithBrokenShebang | ForEach-Object { - Write-Warning "The following script does not contain shebang: '$_'" + Write-Warning "The following script does not contain shebang: '$_'" } - exit 1 + exit 1 } \ No newline at end of file From a191335ab6d7d44c9fba5d9df4557daf3ce6b049 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 18:06:14 +0700 Subject: [PATCH 024/103] last comments resolved. --- .../{lint-shebang.ps1 => shebang-linter.ps1} | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) rename images.CI/{lint-shebang.ps1 => shebang-linter.ps1} (72%) diff --git a/images.CI/lint-shebang.ps1 b/images.CI/shebang-linter.ps1 similarity index 72% rename from images.CI/lint-shebang.ps1 rename to images.CI/shebang-linter.ps1 index 233ed334..f031f4a6 100644 --- a/images.CI/lint-shebang.ps1 +++ b/images.CI/shebang-linter.ps1 @@ -7,16 +7,16 @@ function Validate-Scripts { [Parameter(Mandatory=$true)] [string]$ExpectedShebang ) - $ScriptWithoutShebangLine = @() - Get-ChildItem $path -Recurse -File -Filter "*.sh" | ForEach-Object { - $shebangLine = Get-Content -Path $($_.FullName) | Select-Object -First 1 - if ($shebangLine -eq $ExpectedShebang) { + $ScriptWithoutShebangLine = @() + Get-ChildItem $path -Recurse -File -Filter "*.sh" | ForEach-Object { + $shebangLine = Get-Content -Path $($_.FullName) | Select-Object -First 1 + if ($shebangLine -eq $ExpectedShebang) { Write-Host "Pattern '$ExpectedShebang' found in '$($_.FullName)'" - } - else { + } + else { Write-Host "Pattern '$ExpectedShebang' not found in '$($_.FullName)'" $ScriptWithoutShebangLine += $($_.FullName) - } + } } return $ScriptWithoutShebangLine } @@ -24,13 +24,11 @@ function Validate-Scripts { $PathUbuntu = "./images/linux/scripts" $PathMacOS = "./images/macos/provision" $ScriptsWithBrokenShebang = @() -# Check Ubuntu contains required shebang string $ScriptsWithBrokenShebang += Validate-Scripts -Path $PathUbuntu -Pattern "#!/bin/bash -e" -# Check MacOS contains required shebang string $ScriptsWithBrokenShebang += Validate-Scripts -Path $PathMacOS -Pattern "#!/bin/bash -e -o pipefail" if ($ScriptsWithBrokenShebang.Length -gt 0) { $ScriptsWithBrokenShebang | ForEach-Object { Write-Warning "The following script does not contain shebang: '$_'" - } + } exit 1 } \ No newline at end of file From 01e2f948f6c865470ee5476042b18205a1527bd6 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 18:31:14 +0700 Subject: [PATCH 025/103] added latest changes. --- .github/workflows/linter.yml | 5 +++++ images.CI/shebang-linter.ps1 | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 42eb7cad..37636bed 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -23,3 +23,8 @@ jobs: VALIDATE_JSON: true VALIDATE_MD: true DEFAULT_BRANCH: ${{ github.base_ref }} + + - name: Checking shebang lines in MacOS and Ubuntu releases. + shell: powershell + run: | + ./images.CI/shebang-linter.ps1 diff --git a/images.CI/shebang-linter.ps1 b/images.CI/shebang-linter.ps1 index f031f4a6..bba5ed02 100644 --- a/images.CI/shebang-linter.ps1 +++ b/images.CI/shebang-linter.ps1 @@ -24,8 +24,8 @@ function Validate-Scripts { $PathUbuntu = "./images/linux/scripts" $PathMacOS = "./images/macos/provision" $ScriptsWithBrokenShebang = @() -$ScriptsWithBrokenShebang += Validate-Scripts -Path $PathUbuntu -Pattern "#!/bin/bash -e" -$ScriptsWithBrokenShebang += Validate-Scripts -Path $PathMacOS -Pattern "#!/bin/bash -e -o pipefail" +$ScriptsWithBrokenShebang += Validate-Scripts -Path $PathUbuntu -ExpectedShebang "#!/bin/bash -e" +$ScriptsWithBrokenShebang += Validate-Scripts -Path $PathMacOS -ExpectedShebang "#!/bin/bash -e -o pipefail" if ($ScriptsWithBrokenShebang.Length -gt 0) { $ScriptsWithBrokenShebang | ForEach-Object { Write-Warning "The following script does not contain shebang: '$_'" From 6238508a2181d70d437b599bbd19b17baa73c882 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 20:02:18 +0700 Subject: [PATCH 026/103] added relative path instead of fullpath --- images.CI/shebang-linter.ps1 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/images.CI/shebang-linter.ps1 b/images.CI/shebang-linter.ps1 index bba5ed02..3397f99d 100644 --- a/images.CI/shebang-linter.ps1 +++ b/images.CI/shebang-linter.ps1 @@ -9,13 +9,14 @@ function Validate-Scripts { ) $ScriptWithoutShebangLine = @() Get-ChildItem $path -Recurse -File -Filter "*.sh" | ForEach-Object { - $shebangLine = Get-Content -Path $($_.FullName) | Select-Object -First 1 + $RelativePath = Join-Path $Path $($_.Name) + $shebangLine = Get-Content -Path $RelativePath | Select-Object -First 1 if ($shebangLine -eq $ExpectedShebang) { - Write-Host "Pattern '$ExpectedShebang' found in '$($_.FullName)'" + Write-Host "Pattern '$ExpectedShebang' found in '$RelativePath'" } else { - Write-Host "Pattern '$ExpectedShebang' not found in '$($_.FullName)'" - $ScriptWithoutShebangLine += $($_.FullName) + Write-Host "Pattern '$ExpectedShebang' not found in '$RelativePath'" + $ScriptWithoutShebangLine += $RelativePath } } return $ScriptWithoutShebangLine From 57c3deaaf6d2ea6afcadc2e9b75aec1363b1177a Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 20:30:57 +0700 Subject: [PATCH 027/103] addes spaces --- .github/workflows/linter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 37636bed..921e5547 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -4,7 +4,7 @@ name: CI on: pull_request: - branches: [$default-branch] + branches: [ $default-branch ] jobs: build: From 65129b886edb6769e2809aa09793a5ecf2f962d7 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 20:31:29 +0700 Subject: [PATCH 028/103] changed name from CI to Linter --- .github/workflows/linter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 921e5547..7b1def8c 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -1,6 +1,6 @@ # CI Validation -name: CI +name: Linter on: pull_request: From ab806eaf303fe796203504469565ab7aacabbd25 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 20:33:55 +0700 Subject: [PATCH 029/103] intendation change --- .github/workflows/linter.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 7b1def8c..d99d4a17 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -24,7 +24,7 @@ jobs: VALIDATE_MD: true DEFAULT_BRANCH: ${{ github.base_ref }} - - name: Checking shebang lines in MacOS and Ubuntu releases. - shell: powershell - run: | - ./images.CI/shebang-linter.ps1 + - name: Checking shebang lines in MacOS and Ubuntu releases. + shell: powershell + run: | + ./images.CI/shebang-linter.ps1 From 8d991b682f2d4b121cffc958e62497061529bd99 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 20:41:49 +0700 Subject: [PATCH 030/103] change branches --- .github/workflows/linter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index d99d4a17..e4488530 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -4,7 +4,7 @@ name: Linter on: pull_request: - branches: [ $default-branch ] + branches: [$default-branch] jobs: build: From e1ace194bb56e8338d68a805bfd43c1ba0adc500 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 20:44:17 +0700 Subject: [PATCH 031/103] stop --- .github/workflows/linter.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index e4488530..4a869771 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -1,10 +1,10 @@ # CI Validation -name: Linter +name: CI on: pull_request: - branches: [$default-branch] + branches: [ $default-branch ] jobs: build: From df71273fa4d45f81e13016e11f4329aab23d3bbe Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 20:45:28 +0700 Subject: [PATCH 032/103] spaces --- .github/workflows/linter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 4a869771..d99d4a17 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -1,6 +1,6 @@ # CI Validation -name: CI +name: Linter on: pull_request: From f4b59cee6f5cd98205c54e6013a0ddfba52909bf Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 20:47:35 +0700 Subject: [PATCH 033/103] ok --- images.CI/shebang-linter.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images.CI/shebang-linter.ps1 b/images.CI/shebang-linter.ps1 index 3397f99d..1d215698 100644 --- a/images.CI/shebang-linter.ps1 +++ b/images.CI/shebang-linter.ps1 @@ -1,5 +1,5 @@ $ErrorActionPreference = "Stop" - +# Comment here function Validate-Scripts { Param ( [Parameter(Mandatory=$true)] From d2fc140343a2cb62138e3d71cb314ebf7537d61f Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 20:49:07 +0700 Subject: [PATCH 034/103] removed dummy line --- images.CI/shebang-linter.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images.CI/shebang-linter.ps1 b/images.CI/shebang-linter.ps1 index 1d215698..3397f99d 100644 --- a/images.CI/shebang-linter.ps1 +++ b/images.CI/shebang-linter.ps1 @@ -1,5 +1,5 @@ $ErrorActionPreference = "Stop" -# Comment here + function Validate-Scripts { Param ( [Parameter(Mandatory=$true)] From 9ea40392dcab44796b7d95265b6141bcdf97571c Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 20:49:59 +0700 Subject: [PATCH 035/103] added additional trigger --- .github/workflows/linter.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index d99d4a17..88b97e1f 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -5,6 +5,8 @@ name: Linter on: pull_request: branches: [ $default-branch ] + push: + branches: [ v-danurg/lint_shebang_ubuntu ] jobs: build: From 4b81b1dedccc629ff930cf24219eaf87de616851 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 20:53:45 +0700 Subject: [PATCH 036/103] powershell changed intendation --- .github/workflows/linter.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 88b97e1f..7b04bc72 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -27,6 +27,5 @@ jobs: DEFAULT_BRANCH: ${{ github.base_ref }} - name: Checking shebang lines in MacOS and Ubuntu releases. - shell: powershell - run: | - ./images.CI/shebang-linter.ps1 + run: ./images.CI/shebang-linter.ps1 + shell: powershell From 6d776ba19b1f4431654659590dfe327381198f9c Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 20:55:47 +0700 Subject: [PATCH 037/103] powershell added as shell --- .github/workflows/linter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 7b04bc72..dd8ac0f8 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -28,4 +28,4 @@ jobs: - name: Checking shebang lines in MacOS and Ubuntu releases. run: ./images.CI/shebang-linter.ps1 - shell: powershell + shell: pwsh From b6357f0e0020679b35279fbe2d7b0bf1c11bd242 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 21:02:57 +0700 Subject: [PATCH 038/103] removed relative path --- images.CI/shebang-linter.ps1 | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/images.CI/shebang-linter.ps1 b/images.CI/shebang-linter.ps1 index 3397f99d..b950fd32 100644 --- a/images.CI/shebang-linter.ps1 +++ b/images.CI/shebang-linter.ps1 @@ -9,14 +9,13 @@ function Validate-Scripts { ) $ScriptWithoutShebangLine = @() Get-ChildItem $path -Recurse -File -Filter "*.sh" | ForEach-Object { - $RelativePath = Join-Path $Path $($_.Name) - $shebangLine = Get-Content -Path $RelativePath | Select-Object -First 1 + $shebangLine = Get-Content -Path $($_.FullName)| Select-Object -First 1 if ($shebangLine -eq $ExpectedShebang) { - Write-Host "Pattern '$ExpectedShebang' found in '$RelativePath'" + Write-Host "Pattern '$ExpectedShebang' found in '$($_.FullName)'" } else { - Write-Host "Pattern '$ExpectedShebang' not found in '$RelativePath'" - $ScriptWithoutShebangLine += $RelativePath + Write-Host "Pattern '$ExpectedShebang' not found in '$($_.FullName)'" + $ScriptWithoutShebangLine += $($_.FullName) } } return $ScriptWithoutShebangLine From dfa109e3b663873d8d7b81b8acffe5339442eb8b Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 21:21:37 +0700 Subject: [PATCH 039/103] added additional logging --- images.CI/shebang-linter.ps1 | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/images.CI/shebang-linter.ps1 b/images.CI/shebang-linter.ps1 index b950fd32..d2d08485 100644 --- a/images.CI/shebang-linter.ps1 +++ b/images.CI/shebang-linter.ps1 @@ -11,10 +11,10 @@ function Validate-Scripts { Get-ChildItem $path -Recurse -File -Filter "*.sh" | ForEach-Object { $shebangLine = Get-Content -Path $($_.FullName)| Select-Object -First 1 if ($shebangLine -eq $ExpectedShebang) { - Write-Host "Pattern '$ExpectedShebang' found in '$($_.FullName)'" + Write-Host "[+] '$($_.FullName)'" } else { - Write-Host "Pattern '$ExpectedShebang' not found in '$($_.FullName)'" + Write-Host "[-] '$($_.FullName)'" $ScriptWithoutShebangLine += $($_.FullName) } } @@ -23,12 +23,20 @@ function Validate-Scripts { $PathUbuntu = "./images/linux/scripts" $PathMacOS = "./images/macos/provision" +$PatternUbuntu = "#!/bin/bash -e" +$PatternMacOS = "#!/bin/bash -e -o pipefail" $ScriptsWithBrokenShebang = @() -$ScriptsWithBrokenShebang += Validate-Scripts -Path $PathUbuntu -ExpectedShebang "#!/bin/bash -e" -$ScriptsWithBrokenShebang += Validate-Scripts -Path $PathMacOS -ExpectedShebang "#!/bin/bash -e -o pipefail" +$ScriptsWithBrokenShebang += Validate-Scripts -Path $PathUbuntu -ExpectedShebang $PatternUbuntu +$ScriptsWithBrokenShebang += Validate-Scripts -Path $PathMacOS -ExpectedShebang $PatternMacOS if ($ScriptsWithBrokenShebang.Length -gt 0) { + Write-Host "The following scripts have incorrect shebang:" $ScriptsWithBrokenShebang | ForEach-Object { - Write-Warning "The following script does not contain shebang: '$_'" + Write-Host "- '$_'" } + Write-Host "Expected shebang for scripts in 'images/linux' folder is '$PatternUbuntu'" + Write-Host "Expected shebang for scripts in 'images/macos' folder is '$PatternMacOS'" exit 1 + else { + Write-Host "All scripts have correct shebang." + } } \ No newline at end of file From be8eba42a1b86ac4c8fa02ca6dbd55913245db5f Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 21:26:48 +0700 Subject: [PATCH 040/103] added error to linter --- images.CI/shebang-linter.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/images.CI/shebang-linter.ps1 b/images.CI/shebang-linter.ps1 index d2d08485..26248e26 100644 --- a/images.CI/shebang-linter.ps1 +++ b/images.CI/shebang-linter.ps1 @@ -31,10 +31,10 @@ $ScriptsWithBrokenShebang += Validate-Scripts -Path $PathMacOS -ExpectedShebang if ($ScriptsWithBrokenShebang.Length -gt 0) { Write-Host "The following scripts have incorrect shebang:" $ScriptsWithBrokenShebang | ForEach-Object { - Write-Host "- '$_'" + Write-Host "##[error] - '$_'" } - Write-Host "Expected shebang for scripts in 'images/linux' folder is '$PatternUbuntu'" - Write-Host "Expected shebang for scripts in 'images/macos' folder is '$PatternMacOS'" + Write-Host "##[error] Expected shebang for scripts in 'images/linux' folder is '$PatternUbuntu'" + Write-Host "##[error] Expected shebang for scripts in 'images/macos' folder is '$PatternMacOS'" exit 1 else { Write-Host "All scripts have correct shebang." From 955aec5bef2a3bddc1fcf1a300463672a874e88b Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 21:32:58 +0700 Subject: [PATCH 041/103] added new linter --- images.CI/shebang-linter.ps1 | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/images.CI/shebang-linter.ps1 b/images.CI/shebang-linter.ps1 index 26248e26..34f95200 100644 --- a/images.CI/shebang-linter.ps1 +++ b/images.CI/shebang-linter.ps1 @@ -9,17 +9,16 @@ function Validate-Scripts { ) $ScriptWithoutShebangLine = @() Get-ChildItem $path -Recurse -File -Filter "*.sh" | ForEach-Object { - $shebangLine = Get-Content -Path $($_.FullName)| Select-Object -First 1 + $relativePath = Resolve-Path $_.FullName -Relative + $shebangLine = Get-Content -Path $.FullName | Select-Object -First 1 if ($shebangLine -eq $ExpectedShebang) { - Write-Host "[+] '$($_.FullName)'" + Write-Host "[+] '$relativePath'" } else { - Write-Host "[-] '$($_.FullName)'" - $ScriptWithoutShebangLine += $($_.FullName) + Write-Host "[-] 'relativePath'" + $ScriptWithoutShebangLine += $relativePath } } - return $ScriptWithoutShebangLine -} $PathUbuntu = "./images/linux/scripts" $PathMacOS = "./images/macos/provision" @@ -29,11 +28,11 @@ $ScriptsWithBrokenShebang = @() $ScriptsWithBrokenShebang += Validate-Scripts -Path $PathUbuntu -ExpectedShebang $PatternUbuntu $ScriptsWithBrokenShebang += Validate-Scripts -Path $PathMacOS -ExpectedShebang $PatternMacOS if ($ScriptsWithBrokenShebang.Length -gt 0) { - Write-Host "The following scripts have incorrect shebang:" + Write-Host "`n`n`n##[error] The following scripts have incorrect shebang:" $ScriptsWithBrokenShebang | ForEach-Object { - Write-Host "##[error] - '$_'" + Write-Host "##[error] '$_'" } - Write-Host "##[error] Expected shebang for scripts in 'images/linux' folder is '$PatternUbuntu'" + Write-Host "`n`n##[error] Expected shebang for scripts in 'images/linux' folder is '$PatternUbuntu'" Write-Host "##[error] Expected shebang for scripts in 'images/macos' folder is '$PatternMacOS'" exit 1 else { From d237f71482563ca0cd4c4364fae6853a62679ae4 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 21:36:03 +0700 Subject: [PATCH 042/103] added intendation --- images.CI/shebang-linter.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/images.CI/shebang-linter.ps1 b/images.CI/shebang-linter.ps1 index 34f95200..bf891286 100644 --- a/images.CI/shebang-linter.ps1 +++ b/images.CI/shebang-linter.ps1 @@ -19,6 +19,7 @@ function Validate-Scripts { $ScriptWithoutShebangLine += $relativePath } } +} $PathUbuntu = "./images/linux/scripts" $PathMacOS = "./images/macos/provision" From 8786b3e436985bf14cf15e3ee03e2e3786068309 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Tue, 13 Oct 2020 21:39:12 +0700 Subject: [PATCH 043/103] added corrected things --- images.CI/shebang-linter.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/images.CI/shebang-linter.ps1 b/images.CI/shebang-linter.ps1 index bf891286..b57703d7 100644 --- a/images.CI/shebang-linter.ps1 +++ b/images.CI/shebang-linter.ps1 @@ -10,12 +10,12 @@ function Validate-Scripts { $ScriptWithoutShebangLine = @() Get-ChildItem $path -Recurse -File -Filter "*.sh" | ForEach-Object { $relativePath = Resolve-Path $_.FullName -Relative - $shebangLine = Get-Content -Path $.FullName | Select-Object -First 1 + $shebangLine = Get-Content -Path $_.FullName | Select-Object -First 1 if ($shebangLine -eq $ExpectedShebang) { Write-Host "[+] '$relativePath'" } else { - Write-Host "[-] 'relativePath'" + Write-Host "[-] '$relativePath'" $ScriptWithoutShebangLine += $relativePath } } From b3a337ea8a854615d20922742b6fa52766ed1b53 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Wed, 14 Oct 2020 02:04:32 +0700 Subject: [PATCH 044/103] returned return --- images.CI/shebang-linter.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/images.CI/shebang-linter.ps1 b/images.CI/shebang-linter.ps1 index b57703d7..a3862f65 100644 --- a/images.CI/shebang-linter.ps1 +++ b/images.CI/shebang-linter.ps1 @@ -19,6 +19,7 @@ function Validate-Scripts { $ScriptWithoutShebangLine += $relativePath } } + return $ScriptWithoutShebangLine } $PathUbuntu = "./images/linux/scripts" From 47f5cf3834fa303f9ce3b945f566943be5fb5107 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Wed, 14 Oct 2020 02:44:52 +0700 Subject: [PATCH 045/103] change trigger to main --- .github/workflows/linter.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index dd8ac0f8..48ec7dd6 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -4,10 +4,8 @@ name: Linter on: pull_request: - branches: [ $default-branch ] - push: - branches: [ v-danurg/lint_shebang_ubuntu ] - + branches: [ main ] + jobs: build: name: Lint JSON & MD files From 27361ddb4a2fbf5ee2e01f87b16d70743f4b84d9 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Mon, 19 Oct 2020 10:25:04 +0300 Subject: [PATCH 046/103] resize disk using powershell --- images/win/scripts/Installers/Initialize-VM.ps1 | 12 ++++-------- images/win/windows2019.json | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/images/win/scripts/Installers/Initialize-VM.ps1 b/images/win/scripts/Installers/Initialize-VM.ps1 index ad853bb7..a8509be0 100644 --- a/images/win/scripts/Installers/Initialize-VM.ps1 +++ b/images/win/scripts/Installers/Initialize-VM.ps1 @@ -128,11 +128,7 @@ if (Test-IsWin19) { } # Expand disk size of OS drive -New-Item -Path d:\ -Name cmds.txt -ItemType File -Force -Add-Content -Path d:\cmds.txt "SELECT VOLUME=C`r`nEXTEND" - -$expandResult = (diskpart /s 'd:\cmds.txt') -Write-Host $expandResult - -Write-Host "Disk sizes after expansion" -wmic logicaldisk get size,freespace,caption +$driveLetter = "C" +$size = Get-PartitionSupportedSize -DriveLetter $driveLetter +Resize-Partition -DriveLetter $driveLetter -Size $size.SizeMax +Get-Partition | Select-Object DriveLetter, PartitionNumber, Size \ No newline at end of file diff --git a/images/win/windows2019.json b/images/win/windows2019.json index 6609b5b3..6b9f3a86 100644 --- a/images/win/windows2019.json +++ b/images/win/windows2019.json @@ -13,7 +13,7 @@ "virtual_network_resource_group_name": "{{env `VNET_RESOURCE_GROUP`}}", "virtual_network_subnet_name": "{{env `VNET_SUBNET`}}", "private_virtual_network_with_public_ip": "{{env `PRIVATE_VIRTUAL_NETWORK_WITH_PUBLIC_IP`}}", - "vm_size": "Standard_D4_v2", + "vm_size": "Standard_DS4_v2", "run_scan_antivirus": "false", "root_folder": "C:", "toolset_json_path": "{{env `TEMP`}}\\toolset.json", From 3633730364c0eac3a457f0abd385e5b0d19e63f6 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Mon, 19 Oct 2020 10:33:43 +0300 Subject: [PATCH 047/103] use Get-Volume --- images/win/scripts/Installers/Initialize-VM.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Initialize-VM.ps1 b/images/win/scripts/Installers/Initialize-VM.ps1 index a8509be0..02772872 100644 --- a/images/win/scripts/Installers/Initialize-VM.ps1 +++ b/images/win/scripts/Installers/Initialize-VM.ps1 @@ -131,4 +131,4 @@ if (Test-IsWin19) { $driveLetter = "C" $size = Get-PartitionSupportedSize -DriveLetter $driveLetter Resize-Partition -DriveLetter $driveLetter -Size $size.SizeMax -Get-Partition | Select-Object DriveLetter, PartitionNumber, Size \ No newline at end of file +Get-Volume | Select-Object DriveLetter, SizeRemaining, Size | Sort-Object DriveLetter \ No newline at end of file From 114da935564e7339abcc111d14e1f0defa5e823e Mon Sep 17 00:00:00 2001 From: Nikita Bykov Date: Tue, 20 Oct 2020 13:47:33 +0300 Subject: [PATCH 048/103] rework chrome installation --- images/macos/provision/core/chrome.sh | 4 +++- images/macos/provision/utils/utils.sh | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/images/macos/provision/core/chrome.sh b/images/macos/provision/core/chrome.sh index 203faee7..aad4fb4d 100644 --- a/images/macos/provision/core/chrome.sh +++ b/images/macos/provision/core/chrome.sh @@ -1,5 +1,7 @@ +source ~/utils/utils.sh + echo "Installing Chrome..." -brew cask install google-chrome +brew_install_ignoring_sha256 "google-chrome" echo "Installing Chrome Driver" brew cask install chromedriver diff --git a/images/macos/provision/utils/utils.sh b/images/macos/provision/utils/utils.sh index 85881c7e..1bca5c8a 100755 --- a/images/macos/provision/utils/utils.sh +++ b/images/macos/provision/utils/utils.sh @@ -96,4 +96,15 @@ get_default_xcode_from_toolset() { verlte() { sortedVersion=$(echo -e "$1\n$2" | sort -V | head -n1) [ "$1" = "$sortedVersion" ] +} + +brew_install_ignoring_sha256() { + local TOOL_NAME=$1 + + CASK_DIR=/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Casks + chmod a+w "$CASK_DIR/$TOOL_NAME.rb" + SHA=$(grep "sha256" "$CASK_DIR/$TOOL_NAME.rb" | awk '{print $2}') + sed -i '' "s/$SHA/:no_check/" "$CASK_DIR/$TOOL_NAME.rb" + brew cask install $TOOL_NAME + sed -i '' "s/:no_check/:$SHA/" "$CASK_DIR/$TOOL_NAME.rb" } \ No newline at end of file From fa295e460b777fd065831cac7f3304867aef61c0 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev Date: Tue, 20 Oct 2020 16:04:35 +0300 Subject: [PATCH 049/103] add workaround with ip --- images/win/scripts/Installers/Install-VS.ps1 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-VS.ps1 b/images/win/scripts/Installers/Install-VS.ps1 index 4c1ce952..51fd9e7c 100644 --- a/images/win/scripts/Installers/Install-VS.ps1 +++ b/images/win/scripts/Installers/Install-VS.ps1 @@ -3,6 +3,9 @@ ## Desc: Install Visual Studio ################################################################################ +Copy-Item -Path "$env:windir\System32\drivers\etc\hosts" -Destination "$env:temp\hosts_backup" +"68.232.34.200 download.visualstudio.microsoft.com" > "$env:windir\System32\drivers\etc\hosts" + $toolset = Get-ToolsetContent $requiredComponents = $toolset.visualStudio.workloads | ForEach-Object { "--add $_" } $workLoads = @( @@ -47,4 +50,5 @@ if (Test-IsWin19) { Install-Binary -Url $sdkUrl -Name $sdkFileName -ArgumentList $argumentList } -Invoke-PesterTests -TestFile "VisualStudio" \ No newline at end of file +Invoke-PesterTests -TestFile "VisualStudio" +Move-Item -Path "$env:temp\hosts_backup" -Destination "$env:windir\System32\drivers\etc\hosts" -Force From 188ab7840087af5ae95036ea8a856c5f9ab74062 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev Date: Tue, 20 Oct 2020 18:32:11 +0300 Subject: [PATCH 050/103] change to c directory --- images/win/scripts/Installers/Install-VS.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/images/win/scripts/Installers/Install-VS.ps1 b/images/win/scripts/Installers/Install-VS.ps1 index 51fd9e7c..7e4b2b76 100644 --- a/images/win/scripts/Installers/Install-VS.ps1 +++ b/images/win/scripts/Installers/Install-VS.ps1 @@ -3,7 +3,7 @@ ## Desc: Install Visual Studio ################################################################################ -Copy-Item -Path "$env:windir\System32\drivers\etc\hosts" -Destination "$env:temp\hosts_backup" +Copy-Item -Path "$env:windir\System32\drivers\etc\hosts" -Destination "C:\hosts_backup" -Verbose "68.232.34.200 download.visualstudio.microsoft.com" > "$env:windir\System32\drivers\etc\hosts" $toolset = Get-ToolsetContent @@ -51,4 +51,4 @@ if (Test-IsWin19) { } Invoke-PesterTests -TestFile "VisualStudio" -Move-Item -Path "$env:temp\hosts_backup" -Destination "$env:windir\System32\drivers\etc\hosts" -Force +Move-Item -Path "C:\hosts_backup" -Destination "$env:windir\System32\drivers\etc\hosts" -Force -Verbose From edff9f791bade856d31e67e25fa191500d429c96 Mon Sep 17 00:00:00 2001 From: Nikita Bykov Date: Wed, 21 Oct 2020 08:33:58 +0300 Subject: [PATCH 051/103] updated json files --- images/macos/templates/macOS-10.13.json | 8 +------- images/macos/templates/macOS-10.14.json | 10 ++-------- images/macos/templates/macOS-10.15.json | 10 ++-------- images/macos/templates/macOS-11.0.json | 10 ++-------- 4 files changed, 7 insertions(+), 31 deletions(-) diff --git a/images/macos/templates/macOS-10.13.json b/images/macos/templates/macOS-10.13.json index aa43650a..9ebd56e6 100644 --- a/images/macos/templates/macOS-10.13.json +++ b/images/macos/templates/macOS-10.13.json @@ -181,13 +181,7 @@ "./provision/core/edge.sh", "./provision/core/firefox.sh", "./provision/core/toolcache-high-sierra.sh", - "./provision/core/pypy.sh" - ] - }, - { - "type": "shell", - "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}", - "scripts": [ + "./provision/core/pypy.sh", "./provision/core/pipx-packages.sh" ] }, diff --git a/images/macos/templates/macOS-10.14.json b/images/macos/templates/macOS-10.14.json index 017bc607..c03cc72a 100644 --- a/images/macos/templates/macOS-10.14.json +++ b/images/macos/templates/macOS-10.14.json @@ -186,7 +186,8 @@ "./provision/core/miniconda.sh", "./provision/core/xcode-postbuild.sh", "./provision/core/toolcache.sh", - "./provision/core/pypy.sh" + "./provision/core/pypy.sh", + "./provision/core/pipx-packages.sh" ], "environment_vars": [ "GITHUB_FEED_TOKEN={{user `github_feed_token`}}" @@ -197,13 +198,6 @@ "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}", "scripts": "./provision/core/toolset.ps1" }, - { - "type": "shell", - "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}", - "scripts": [ - "./provision/core/pipx-packages.sh" - ] - }, { "type": "shell", "execute_command": "ruby {{ .Path }}", diff --git a/images/macos/templates/macOS-10.15.json b/images/macos/templates/macOS-10.15.json index cf225d41..cf49ef57 100644 --- a/images/macos/templates/macOS-10.15.json +++ b/images/macos/templates/macOS-10.15.json @@ -185,7 +185,8 @@ "./provision/core/firefox.sh", "./provision/core/xcode-postbuild.sh", "./provision/core/toolcache.sh", - "./provision/core/pypy.sh" + "./provision/core/pypy.sh", + "./provision/core/pipx-packages.sh" ], "environment_vars": [ "GITHUB_FEED_TOKEN={{user `github_feed_token`}}" @@ -196,13 +197,6 @@ "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}", "scripts": "./provision/core/toolset.ps1" }, - { - "type": "shell", - "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}", - "scripts": [ - "./provision/core/pipx-packages.sh" - ] - }, { "type": "shell", "execute_command": "ruby {{ .Path }}", diff --git a/images/macos/templates/macOS-11.0.json b/images/macos/templates/macOS-11.0.json index d1f54d31..585a9354 100644 --- a/images/macos/templates/macOS-11.0.json +++ b/images/macos/templates/macOS-11.0.json @@ -181,7 +181,8 @@ "./provision/core/chrome.sh", "./provision/core/edge.sh", "./provision/core/firefox.sh", - "./provision/core/toolcache.sh" + "./provision/core/toolcache.sh", + "./provision/core/pipx-packages.sh" ], "environment_vars": [ "GITHUB_FEED_TOKEN={{user `github_feed_token`}}" @@ -192,13 +193,6 @@ "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} pwsh -f {{ .Path }}", "scripts": "./provision/core/toolset.ps1" }, - { - "type": "shell", - "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}", - "scripts": [ - "./provision/core/pipx-packages.sh" - ] - }, { "type": "shell", "execute_command": "ruby {{ .Path }}", From 1ddf2470ababf200d29e6abbd0600899215e982d Mon Sep 17 00:00:00 2001 From: Nikita Bykov Date: Wed, 21 Oct 2020 12:44:54 +0300 Subject: [PATCH 052/103] fixed function --- images/macos/provision/utils/utils.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/images/macos/provision/utils/utils.sh b/images/macos/provision/utils/utils.sh index 1bca5c8a..7f295897 100755 --- a/images/macos/provision/utils/utils.sh +++ b/images/macos/provision/utils/utils.sh @@ -98,13 +98,14 @@ verlte() { [ "$1" = "$sortedVersion" ] } -brew_install_ignoring_sha256() { +brew_cask_install_ignoring_sha256() { local TOOL_NAME=$1 - CASK_DIR=/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Casks + CASK_DIR="$(brew --repo homebrew/cask)/Casks" chmod a+w "$CASK_DIR/$TOOL_NAME.rb" SHA=$(grep "sha256" "$CASK_DIR/$TOOL_NAME.rb" | awk '{print $2}') sed -i '' "s/$SHA/:no_check/" "$CASK_DIR/$TOOL_NAME.rb" brew cask install $TOOL_NAME - sed -i '' "s/:no_check/:$SHA/" "$CASK_DIR/$TOOL_NAME.rb" + cd $CASK_DIR + git reset --hard } \ No newline at end of file From 00bb4818cec8f8676369d59f0eb33f7802ca37f2 Mon Sep 17 00:00:00 2001 From: Nikita Bykov Date: Wed, 21 Oct 2020 15:50:53 +0300 Subject: [PATCH 053/103] fixed pipx packages tests --- images/macos/tests/Linters.Tests.ps1 | 4 ---- images/macos/tests/PipxPackages.Tests.ps1 | 7 +++++++ images/macos/toolsets/toolset-10.13.json | 2 +- images/macos/toolsets/toolset-10.14.json | 2 +- images/macos/toolsets/toolset-10.15.json | 2 +- images/macos/toolsets/toolset-11.0.json | 2 +- 6 files changed, 11 insertions(+), 8 deletions(-) create mode 100644 images/macos/tests/PipxPackages.Tests.ps1 diff --git a/images/macos/tests/Linters.Tests.ps1 b/images/macos/tests/Linters.Tests.ps1 index 3b7b8e0d..31d3698c 100644 --- a/images/macos/tests/Linters.Tests.ps1 +++ b/images/macos/tests/Linters.Tests.ps1 @@ -3,10 +3,6 @@ Import-Module "$PSScriptRoot/../helpers/Tests.Helpers.psm1" $os = Get-OSVersion Describe "Linters" { - It "yamllint" { - "yamllint --version" | Should -ReturnZeroExitCode - } - It "SwiftLint" -Skip:($os.IsHighSierra) { "swiftlint version" | Should -ReturnZeroExitCode } diff --git a/images/macos/tests/PipxPackages.Tests.ps1 b/images/macos/tests/PipxPackages.Tests.ps1 new file mode 100644 index 00000000..ed981938 --- /dev/null +++ b/images/macos/tests/PipxPackages.Tests.ps1 @@ -0,0 +1,7 @@ +Describe "PipxPackages" { + $pipxToolset = Get-ToolsetValue "pipx" + $testCases = $pipxToolset | ForEach-Object { @{package = $_.package; cmd = $_.cmd} } + It "" -TestCases $testCases { + "$cmd" | Should -ReturnZeroExitCode + } +} \ No newline at end of file diff --git a/images/macos/toolsets/toolset-10.13.json b/images/macos/toolsets/toolset-10.13.json index f1ce3b06..3bf62968 100644 --- a/images/macos/toolsets/toolset-10.13.json +++ b/images/macos/toolsets/toolset-10.13.json @@ -198,7 +198,7 @@ "pipx": [ { "package": "yamllint", - "cmd": "yamllint" + "cmd": "yamllint --version" } ] } \ No newline at end of file diff --git a/images/macos/toolsets/toolset-10.14.json b/images/macos/toolsets/toolset-10.14.json index f1c70a83..aa1b4101 100644 --- a/images/macos/toolsets/toolset-10.14.json +++ b/images/macos/toolsets/toolset-10.14.json @@ -258,7 +258,7 @@ "pipx": [ { "package": "yamllint", - "cmd": "yamllint" + "cmd": "yamllint --version" } ] } \ No newline at end of file diff --git a/images/macos/toolsets/toolset-10.15.json b/images/macos/toolsets/toolset-10.15.json index e2debc9f..c54db919 100644 --- a/images/macos/toolsets/toolset-10.15.json +++ b/images/macos/toolsets/toolset-10.15.json @@ -167,7 +167,7 @@ "pipx": [ { "package": "yamllint", - "cmd": "yamllint" + "cmd": "yamllint --version" } ] } \ No newline at end of file diff --git a/images/macos/toolsets/toolset-11.0.json b/images/macos/toolsets/toolset-11.0.json index e5cf3e64..ed8903d3 100644 --- a/images/macos/toolsets/toolset-11.0.json +++ b/images/macos/toolsets/toolset-11.0.json @@ -92,7 +92,7 @@ "pipx": [ { "package": "yamllint", - "cmd": "yamllint" + "cmd": "yamllint --version" } ] } \ No newline at end of file From 38bc88214f8e65cc04dff4f728f363defa6d8c78 Mon Sep 17 00:00:00 2001 From: Nikita Bykov Date: Wed, 21 Oct 2020 16:36:03 +0300 Subject: [PATCH 054/103] fixed brew_cask_install_ignoring_sha256 function --- images/macos/provision/utils/utils.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/images/macos/provision/utils/utils.sh b/images/macos/provision/utils/utils.sh index 7f295897..97e9b18c 100755 --- a/images/macos/provision/utils/utils.sh +++ b/images/macos/provision/utils/utils.sh @@ -106,6 +106,7 @@ brew_cask_install_ignoring_sha256() { SHA=$(grep "sha256" "$CASK_DIR/$TOOL_NAME.rb" | awk '{print $2}') sed -i '' "s/$SHA/:no_check/" "$CASK_DIR/$TOOL_NAME.rb" brew cask install $TOOL_NAME - cd $CASK_DIR - git reset --hard + pushd $CASK_DIR + git checkout HEAD -- "$TOOL_NAME.rb" + popd } \ No newline at end of file From 62eca78ba7e61a60a7c9e2952f674ebb2b06b06e Mon Sep 17 00:00:00 2001 From: Nikita Bykov Date: Thu, 22 Oct 2020 09:48:03 +0300 Subject: [PATCH 055/103] fixed naming --- images/macos/provision/core/chrome.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/macos/provision/core/chrome.sh b/images/macos/provision/core/chrome.sh index aad4fb4d..5f8b4bdd 100644 --- a/images/macos/provision/core/chrome.sh +++ b/images/macos/provision/core/chrome.sh @@ -1,7 +1,7 @@ source ~/utils/utils.sh echo "Installing Chrome..." -brew_install_ignoring_sha256 "google-chrome" +brew_cask_install_ignoring_sha256 "google-chrome" echo "Installing Chrome Driver" brew cask install chromedriver From dee484a90ce67d42f5df91a42b618cdd14b2a8f2 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev Date: Thu, 22 Oct 2020 10:49:07 +0300 Subject: [PATCH 056/103] remove chmod --- images/linux/scripts/installers/homebrew.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/images/linux/scripts/installers/homebrew.sh b/images/linux/scripts/installers/homebrew.sh index 865923f2..dd9e8f9e 100644 --- a/images/linux/scripts/installers/homebrew.sh +++ b/images/linux/scripts/installers/homebrew.sh @@ -12,9 +12,6 @@ source $HELPER_SCRIPTS/etc-environment.sh /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv) -# Make brew files and directories writable by any user -sudo chmod -R o+w $HOMEBREW_PREFIX - # Update /etc/environemnt ## Put HOMEBREW_* variables brew shellenv|grep 'export HOMEBREW'|sed -E 's/^export (.*);$/\1/' | sudo tee -a /etc/environment From f527ec3588bd8cc1a8005e8d23cb5577db2b5457 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev Date: Fri, 23 Oct 2020 10:28:50 +0300 Subject: [PATCH 057/103] add comments --- images/win/scripts/Installers/Install-VS.ps1 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/images/win/scripts/Installers/Install-VS.ps1 b/images/win/scripts/Installers/Install-VS.ps1 index 7e4b2b76..d3db5b4d 100644 --- a/images/win/scripts/Installers/Install-VS.ps1 +++ b/images/win/scripts/Installers/Install-VS.ps1 @@ -3,6 +3,7 @@ ## Desc: Install Visual Studio ################################################################################ +# Temporary replace ip for download server to the one with the correct files and backup hosts file Copy-Item -Path "$env:windir\System32\drivers\etc\hosts" -Destination "C:\hosts_backup" -Verbose "68.232.34.200 download.visualstudio.microsoft.com" > "$env:windir\System32\drivers\etc\hosts" @@ -51,4 +52,5 @@ if (Test-IsWin19) { } Invoke-PesterTests -TestFile "VisualStudio" +# Restore hosts file after VS installation Move-Item -Path "C:\hosts_backup" -Destination "$env:windir\System32\drivers\etc\hosts" -Force -Verbose From 096e01637269fa56e0f4c8291b4a9904089962e2 Mon Sep 17 00:00:00 2001 From: Maxim Lobanov Date: Fri, 23 Oct 2020 11:09:22 +0300 Subject: [PATCH 058/103] untap formulas --- images/macos/provision/core/openssl.sh | 12 +++++------- images/macos/provision/core/python.sh | 17 +++++++++-------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/images/macos/provision/core/openssl.sh b/images/macos/provision/core/openssl.sh index a058673a..b4acd430 100755 --- a/images/macos/provision/core/openssl.sh +++ b/images/macos/provision/core/openssl.sh @@ -2,18 +2,16 @@ source ~/utils/utils.sh -echo "Installing OpenSSL..." -export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH" - echo Installing OpenSSL... -/usr/local/bin/brew install openssl +brew install openssl # Install OpenSSL 1.0.2t # https://www.openssl.org/policies/releasestrat.html - Version 1.0.2 will be supported until 2019-12-31 (LTS) # To preserve backward compatibility with ruby-toolcache -/usr/local/bin/brew tap-new local/openssl -FORMULA_PATH=$(/usr/local/bin/brew extract openssl local/openssl | grep "Homebrew/Library/Taps") -/usr/local/bin/brew install $FORMULA_PATH +brew tap-new local/openssl +FORMULA_PATH=$(brew extract openssl local/openssl | grep "Homebrew/Library/Taps") +brew install $FORMULA_PATH +brew untap local/homebrew-openssl # Set OpenSSL 1.0.2t as default ln -sf /usr/local/Cellar/openssl@1.0.2t /usr/local/Cellar/openssl diff --git a/images/macos/provision/core/python.sh b/images/macos/provision/core/python.sh index 1565ced2..13e054fe 100755 --- a/images/macos/provision/core/python.sh +++ b/images/macos/provision/core/python.sh @@ -5,14 +5,15 @@ echo "Installing Python Tooling" echo "Brew Installing Python 3" # Workaround to have both 3.8 & 3.9(which required by some brew formulas) in the system, but only 3.8 is linked -/usr/local/bin/brew install python@3.8 -/usr/local/bin/brew install python@3.9 -/usr/local/bin/brew unlink python@3.9 -/usr/local/bin/brew unlink python@3.8 -/usr/local/bin/brew link python@3.8 +brew install python@3.8 +brew install python@3.9 +brew unlink python@3.9 +brew unlink python@3.8 +brew link python@3.8 echo "Brew Installing Python 2" # Create local tap with formula due to python2 formula depreciation -/usr/local/bin/brew tap-new local/python2 -FORMULA_PATH=$(/usr/local/bin/brew extract python@2 local/python2 | grep "Homebrew/Library/Taps") -/usr/local/bin/brew install $FORMULA_PATH +brew tap-new local/python2 +FORMULA_PATH=$(brew extract python@2 local/python2 | grep "Homebrew/Library/Taps") +brew install $FORMULA_PATH +brew untap local/homebrew-python2 From baad68926ac7944208dfa01044517e61f6e439ab Mon Sep 17 00:00:00 2001 From: Vladimir Safonkin Date: Fri, 23 Oct 2020 14:15:22 +0300 Subject: [PATCH 059/103] [macOS] Rework retry helper function (#1871) * Rework macOS retry helper * Add more logs --- images/macos/provision/utils/utils.sh | 35 +++++++++++++++++---------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/images/macos/provision/utils/utils.sh b/images/macos/provision/utils/utils.sh index a15f8d2e..7428c900 100755 --- a/images/macos/provision/utils/utils.sh +++ b/images/macos/provision/utils/utils.sh @@ -5,22 +5,31 @@ download_with_retries() { local URL="$1" local DEST="${2:-.}" local NAME="${3:-${URL##*/}}" + local COMPRESSED="$4" - echo "Downloading $URL..." - wget $URL --output-document="$DEST/$NAME" \ - --tries=30 \ - --wait 30 \ - --retry-connrefused \ - --retry-on-host-error \ - --retry-on-http-error=404,429,500,502,503 \ - --no-verbose - - if [ $? != 0 ]; then - echo "Could not download $URL; Exiting build!" - exit 1 + if [[ $COMPRESSED == "compressed" ]]; then + COMMAND="curl $URL -4 -sL --compressed -o '$DEST/$NAME'" + else + COMMAND="curl $URL -4 -sL -o '$DEST/$NAME'" fi - return 0 + echo "Downloading $URL..." + retries=20 + interval=30 + while [ $retries -gt 0 ]; do + ((retries--)) + eval $COMMAND + if [ $? != 0 ]; then + echo "Unable to download $URL, next attempt in $interval sec, $retries attempts left" + sleep $interval + else + echo "$URL was downloaded successfully to $DEST/$NAME" + return 0 + fi + done + + echo "Could not download $URL" + return 1 } is_BigSur() { From fc389f0cc0a1420c2249ceeb830609a682b6166f Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Fri, 23 Oct 2020 14:30:10 +0300 Subject: [PATCH 060/103] fix ssh-keyscan Windows Server 2016 --- images/win/scripts/Install-OpenSSH.ps1 | 13 +++++++++++++ images/win/windows2016.json | 1 + 2 files changed, 14 insertions(+) create mode 100644 images/win/scripts/Install-OpenSSH.ps1 diff --git a/images/win/scripts/Install-OpenSSH.ps1 b/images/win/scripts/Install-OpenSSH.ps1 new file mode 100644 index 00000000..b0ea1527 --- /dev/null +++ b/images/win/scripts/Install-OpenSSH.ps1 @@ -0,0 +1,13 @@ +################################################################################ +## File: Install-OpenSSH.ps1 +## Desc: Install OpenSSH-Win64 +################################################################################ + +Write-Host "Download Latest OpenSSH-Win64 archive" +$url = 'https://api.github.com/repos/PowerShell/Win32-OpenSSH/releases/latest' +$name = 'OpenSSH-Win64.zip' +# Explicitly set type to string since match returns array by default +[string]$opensshLatest = (Invoke-RestMethod -Uri $url).assets.browser_download_url -match $name +$opensshArchivePath = Start-DownloadWithRetry -Url $opensshLatest -Name $name +Write-Host "Expand OpenSSH-Win64 archive" +Extract-7Zip -Path $opensshArchivePath -DestinationPath $env:ProgramFiles \ No newline at end of file diff --git a/images/win/windows2016.json b/images/win/windows2016.json index a008e760..43faaa25 100644 --- a/images/win/windows2016.json +++ b/images/win/windows2016.json @@ -245,6 +245,7 @@ "{{ template_dir }}/scripts/Installers/Install-Sbt.ps1", "{{ template_dir }}/scripts/Installers/Install-OpenSSL.ps1", "{{ template_dir }}/scripts/Installers/Install-Perl.ps1", + "{{ template_dir }}/scripts/Installers/Install-OpenSSH.ps1", "{{ template_dir }}/scripts/Installers/Install-Git.ps1", "{{ template_dir }}/scripts/Installers/Install-GitHub-CLI.ps1", "{{ template_dir }}/scripts/Installers/Install-PHP.ps1", From e8bd1e858e9ce94c75a0450995034d8941c2d247 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Fri, 23 Oct 2020 14:37:52 +0300 Subject: [PATCH 061/103] move Install-OpenSSH.ps1 --- images/win/scripts/{ => Installers}/Install-OpenSSH.ps1 | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename images/win/scripts/{ => Installers}/Install-OpenSSH.ps1 (100%) diff --git a/images/win/scripts/Install-OpenSSH.ps1 b/images/win/scripts/Installers/Install-OpenSSH.ps1 similarity index 100% rename from images/win/scripts/Install-OpenSSH.ps1 rename to images/win/scripts/Installers/Install-OpenSSH.ps1 From 0d46520ccf08c3780f879b324d81639975be3fcd Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Fri, 23 Oct 2020 17:59:08 +0300 Subject: [PATCH 062/103] [macOS] Fail builds on errors during the image generation (#1756) * set -e and fix all the scripts * add source utils to finalize_vm script * change xcode version in postbuild script * fix for softwareupdates and for xcode version --- .../add-network-interface-detection.sh | 2 +- .../provision/configuration/autologin.sh | 2 ++ .../configuration/configure-hostname.sh | 4 ++-- .../configuration/configure-machine.sh | 10 +------- .../provision/configuration/configure-ssh.sh | 2 +- .../configuration/disable-auto-updates.sh | 2 +- .../provision/configuration/finalize-vm.sh | 14 +++++++---- .../provision/configuration/max-files.sh | 4 +--- .../macos/provision/configuration/ntpconf.sh | 2 +- .../provision/configuration/preimagedata.sh | 3 ++- .../configuration/screensaver-off.sh | 3 ++- .../provision/configuration/shell-change.sh | 2 ++ .../macos/provision/core/android-toolsets.sh | 2 +- images/macos/provision/core/audiodevice.sh | 2 +- images/macos/provision/core/aws.sh | 2 +- images/macos/provision/core/azcopy.sh | 3 +-- .../provision/core/build-xcode-symlinks.sh | 2 +- images/macos/provision/core/chrome.sh | 2 ++ images/macos/provision/core/cocoapods.sh | 3 ++- images/macos/provision/core/commonutils.sh | 3 +-- images/macos/provision/core/dotnet.sh | 6 ++--- images/macos/provision/core/edge.sh | 2 ++ images/macos/provision/core/firefox.sh | 2 ++ images/macos/provision/core/gcc.sh | 2 +- images/macos/provision/core/git.sh | 2 ++ images/macos/provision/core/haskell.sh | 2 +- images/macos/provision/core/miniconda.sh | 2 +- images/macos/provision/core/mongodb.sh | 2 +- images/macos/provision/core/node.sh | 3 ++- images/macos/provision/core/nvm.sh | 10 +++----- images/macos/provision/core/openjdk.sh | 4 +--- images/macos/provision/core/openssl.sh | 2 +- images/macos/provision/core/php.sh | 3 +-- images/macos/provision/core/postgresql.sh | 24 ++++++++++++------- images/macos/provision/core/powershell.sh | 2 ++ images/macos/provision/core/pypy.sh | 3 +-- images/macos/provision/core/python.sh | 3 ++- images/macos/provision/core/reboot.sh | 3 ++- images/macos/provision/core/ruby.sh | 15 ++---------- images/macos/provision/core/rubygem.sh | 3 ++- images/macos/provision/core/rust.sh | 4 +--- images/macos/provision/core/stack.sh | 2 +- .../provision/core/toolcache-high-sierra.sh | 5 ++-- images/macos/provision/core/toolcache.sh | 2 +- images/macos/provision/core/vcpkg.sh | 3 +-- images/macos/provision/core/vsmac.sh | 6 ++--- .../provision/core/xamarin-android-ndk.sh | 3 ++- images/macos/provision/core/xamarin.sh | 9 ++++--- .../macos/provision/core/xcode-postbuild.sh | 9 +++++-- images/macos/provision/core/xcode-sims.sh | 2 +- images/macos/provision/core/xcode-tools.sh | 4 +--- images/macos/provision/utils/utils.sh | 2 ++ images/macos/provision/utils/xamarin-utils.sh | 8 +++---- images/macos/provision/utils/xcode-utils.sh | 2 ++ 54 files changed, 116 insertions(+), 109 deletions(-) diff --git a/images/macos/provision/configuration/add-network-interface-detection.sh b/images/macos/provision/configuration/add-network-interface-detection.sh index e939f04b..ca9192bf 100755 --- a/images/macos/provision/configuration/add-network-interface-detection.sh +++ b/images/macos/provision/configuration/add-network-interface-detection.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash -e -o pipefail # This script was taken from https://github.com/timsutton/osx-vm-templates/blob/master/scripts/add-network-interface-detection.sh # Distributed by MIT license, license can be found at the bottom of this script diff --git a/images/macos/provision/configuration/autologin.sh b/images/macos/provision/configuration/autologin.sh index caa29a6b..02f2f06d 100755 --- a/images/macos/provision/configuration/autologin.sh +++ b/images/macos/provision/configuration/autologin.sh @@ -1,3 +1,5 @@ +#!/bin/bash -e -o pipefail + # This script was taken from https://github.com/timsutton/osx-vm-templates/blob/master/scripts/autologin.sh # Distributed by MIT license, license can be found at the bottom of this script diff --git a/images/macos/provision/configuration/configure-hostname.sh b/images/macos/provision/configuration/configure-hostname.sh index 477e0980..e0de0bf8 100644 --- a/images/macos/provision/configuration/configure-hostname.sh +++ b/images/macos/provision/configuration/configure-hostname.sh @@ -1,8 +1,8 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail # Add script for changing hostname to run on startup to prevent duplicate hostnames across the environment. Hostname and Computername should contain .local in name to avoid name resolution issues tee -a /usr/local/bin/change_hostname.sh > /dev/null <<\EOF -#!/bin/bash +#!/bin/bash -e -o pipefail name="Mac-$(python -c 'from time import time; print int(round(time() * 1000))')" scutil --set HostName "${name}.local" diff --git a/images/macos/provision/configuration/configure-machine.sh b/images/macos/provision/configuration/configure-machine.sh index dbfae673..df991c21 100644 --- a/images/macos/provision/configuration/configure-machine.sh +++ b/images/macos/provision/configuration/configure-machine.sh @@ -1,12 +1,4 @@ -#!/bin/bash - -# Enable firewall. SSH and VNC opened. Can't did it at bootstrap step, so placed it here -defaults write /Library/Preferences/com.apple.alf globalstate -int 1 - -# Setting correct time zone -echo "Configuring system time to GMT..." -rm -f /etc/localtime -ln -sf /usr/share/zoneinfo/UTC /etc/localtime +#!/bin/bash -e -o pipefail # https://developer.apple.com/documentation/webkit/testing_with_webdriver_in_safari # Safari’s executable is located at /usr/bin/safaridriver diff --git a/images/macos/provision/configuration/configure-ssh.sh b/images/macos/provision/configuration/configure-ssh.sh index f85e9efa..73095f55 100755 --- a/images/macos/provision/configuration/configure-ssh.sh +++ b/images/macos/provision/configuration/configure-ssh.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash -e -o pipefail [[ ! -d ~/.ssh ]] && mkdir ~/.ssh 2>/dev/null chmod 777 ~/.ssh diff --git a/images/macos/provision/configuration/disable-auto-updates.sh b/images/macos/provision/configuration/disable-auto-updates.sh index 3a35f5be..050f7d9a 100755 --- a/images/macos/provision/configuration/disable-auto-updates.sh +++ b/images/macos/provision/configuration/disable-auto-updates.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail # Disabling automatic updates sudo softwareupdate --schedule off diff --git a/images/macos/provision/configuration/finalize-vm.sh b/images/macos/provision/configuration/finalize-vm.sh index b01b3c23..b6975139 100644 --- a/images/macos/provision/configuration/finalize-vm.sh +++ b/images/macos/provision/configuration/finalize-vm.sh @@ -1,12 +1,16 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail + +source ~/utils/utils.sh # Close all finder windows because they can interfere with UI tests osascript -e 'tell application "Finder" to close windows' -# Ignore available updates to prevent system pop-ups -updateName=$(softwareupdate -l | grep "Title: " | awk -F[:,] '{print $2}' | awk '{$1=$1};1') -if [ ! -z "$updateName" ]; then - sudo softwareupdate --ignore "$updateName" +if is_Less_BigSur; then + # Ignore available updates to prevent system pop-ups + updateName=$(softwareupdate -l | grep "Title: " | awk -F[:,] '{print $2}' | awk '{$1=$1};1') || true + if [ ! -z "$updateName" ]; then + sudo softwareupdate --ignore "$updateName" + fi fi # Put documentation to $HOME root diff --git a/images/macos/provision/configuration/max-files.sh b/images/macos/provision/configuration/max-files.sh index a6e41f12..cd1df451 100755 --- a/images/macos/provision/configuration/max-files.sh +++ b/images/macos/provision/configuration/max-files.sh @@ -1,6 +1,4 @@ -#!/bin/bash - -set -e +#!/bin/bash -e -o pipefail Launch_Daemons="/Library/LaunchDaemons" diff --git a/images/macos/provision/configuration/ntpconf.sh b/images/macos/provision/configuration/ntpconf.sh index 09916cc3..b4f68128 100755 --- a/images/macos/provision/configuration/ntpconf.sh +++ b/images/macos/provision/configuration/ntpconf.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail echo Additional NTP servers adding into /etc/ntp.conf file... cat > /etc/ntp.conf << EOF diff --git a/images/macos/provision/configuration/preimagedata.sh b/images/macos/provision/configuration/preimagedata.sh index c269a149..8060acb7 100644 --- a/images/macos/provision/configuration/preimagedata.sh +++ b/images/macos/provision/configuration/preimagedata.sh @@ -1,4 +1,5 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail + source ~/utils/utils.sh imagedata_file="$HOME/imagedata.json" diff --git a/images/macos/provision/configuration/screensaver-off.sh b/images/macos/provision/configuration/screensaver-off.sh index c154f8d8..6844792e 100755 --- a/images/macos/provision/configuration/screensaver-off.sh +++ b/images/macos/provision/configuration/screensaver-off.sh @@ -1,4 +1,5 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail + # set screensaver idleTime to 0, to prevent turning screensaver on macUUID=`ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-62` diff --git a/images/macos/provision/configuration/shell-change.sh b/images/macos/provision/configuration/shell-change.sh index a84216cb..5fb12a03 100644 --- a/images/macos/provision/configuration/shell-change.sh +++ b/images/macos/provision/configuration/shell-change.sh @@ -1,3 +1,5 @@ +#!/bin/bash -e -o pipefail + echo "Changing shell to bash" sudo chsh -s /bin/bash $USERNAME sudo chsh -s /bin/bash root \ No newline at end of file diff --git a/images/macos/provision/core/android-toolsets.sh b/images/macos/provision/core/android-toolsets.sh index 093a133c..2f6139c8 100755 --- a/images/macos/provision/core/android-toolsets.sh +++ b/images/macos/provision/core/android-toolsets.sh @@ -1,4 +1,4 @@ -#!/bin/bash -e +#!/bin/bash -e -o pipefail source ~/utils/utils.sh function filter_components_by_version { diff --git a/images/macos/provision/core/audiodevice.sh b/images/macos/provision/core/audiodevice.sh index 4a151e3f..ec7d71d9 100644 --- a/images/macos/provision/core/audiodevice.sh +++ b/images/macos/provision/core/audiodevice.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail echo "install soundflower" brew cask install soundflower diff --git a/images/macos/provision/core/aws.sh b/images/macos/provision/core/aws.sh index 4d98d512..02009449 100644 --- a/images/macos/provision/core/aws.sh +++ b/images/macos/provision/core/aws.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail echo Installing aws... curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" diff --git a/images/macos/provision/core/azcopy.sh b/images/macos/provision/core/azcopy.sh index 56b848e9..5098c878 100755 --- a/images/macos/provision/core/azcopy.sh +++ b/images/macos/provision/core/azcopy.sh @@ -1,5 +1,4 @@ -#!/bin/bash -set -e +#!/bin/bash -e -o pipefail AZCOPY_DOWNLOAD_URL="https://aka.ms/downloadazcopy-v10-mac" diff --git a/images/macos/provision/core/build-xcode-symlinks.sh b/images/macos/provision/core/build-xcode-symlinks.sh index 0cee8df8..60070938 100644 --- a/images/macos/provision/core/build-xcode-symlinks.sh +++ b/images/macos/provision/core/build-xcode-symlinks.sh @@ -1,4 +1,4 @@ -set -e +#!/bin/bash -e -o pipefail source ~/utils/utils.sh diff --git a/images/macos/provision/core/chrome.sh b/images/macos/provision/core/chrome.sh index 203faee7..4a9deba1 100644 --- a/images/macos/provision/core/chrome.sh +++ b/images/macos/provision/core/chrome.sh @@ -1,3 +1,5 @@ +#!/bin/bash -e -o pipefail + echo "Installing Chrome..." brew cask install google-chrome diff --git a/images/macos/provision/core/cocoapods.sh b/images/macos/provision/core/cocoapods.sh index edf2a85f..d692bf3d 100755 --- a/images/macos/provision/core/cocoapods.sh +++ b/images/macos/provision/core/cocoapods.sh @@ -1,4 +1,5 @@ -#!/bin/sh +#!/bin/bash -e -o pipefail + echo "Installing Cocoapods..." # Setup the Cocoapods master repo diff --git a/images/macos/provision/core/commonutils.sh b/images/macos/provision/core/commonutils.sh index 5a98f004..c7e93496 100644 --- a/images/macos/provision/core/commonutils.sh +++ b/images/macos/provision/core/commonutils.sh @@ -1,5 +1,4 @@ -#!/bin/sh -set -e +#!/bin/bash -e -o pipefail source ~/utils/utils.sh diff --git a/images/macos/provision/core/dotnet.sh b/images/macos/provision/core/dotnet.sh index 78056488..36df3be9 100755 --- a/images/macos/provision/core/dotnet.sh +++ b/images/macos/provision/core/dotnet.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash -e -o pipefail ########################################################################### # The main idea of this script is to automate dotnet installs @@ -23,7 +23,7 @@ echo "Parsing dotnet SDK (except rc and preview versions) from .json..." if is_BigSur; then DOTNET_CHANNELS=( 'https://raw.githubusercontent.com/dotnet/core/master/release-notes/2.1/releases.json' - 'https://raw.githubusercontent.com/dotnet/core/master/release-notes/3.1/releases.json' + 'https://raw.githubusercontent.com/dotnet/core/master/release-notes/3.1/releases.json' ) elif is_Less_Catalina; then DOTNET_CHANNELS=( @@ -33,7 +33,7 @@ else DOTNET_CHANNELS=( 'https://raw.githubusercontent.com/dotnet/core/master/release-notes/2.1/releases.json' 'https://raw.githubusercontent.com/dotnet/core/master/release-notes/3.0/releases.json' - 'https://raw.githubusercontent.com/dotnet/core/master/release-notes/3.1/releases.json' + 'https://raw.githubusercontent.com/dotnet/core/master/release-notes/3.1/releases.json' ) fi diff --git a/images/macos/provision/core/edge.sh b/images/macos/provision/core/edge.sh index bc19a566..da1673e0 100644 --- a/images/macos/provision/core/edge.sh +++ b/images/macos/provision/core/edge.sh @@ -1,3 +1,5 @@ +#!/bin/bash -e -o pipefail + source ~/utils/utils.sh echo "Installing Microsoft Edge..." diff --git a/images/macos/provision/core/firefox.sh b/images/macos/provision/core/firefox.sh index f6a90d61..b9ee1c5e 100644 --- a/images/macos/provision/core/firefox.sh +++ b/images/macos/provision/core/firefox.sh @@ -1,3 +1,5 @@ +#!/bin/bash -e -o pipefail + echo "Installing Firefox..." brew cask install firefox diff --git a/images/macos/provision/core/gcc.sh b/images/macos/provision/core/gcc.sh index febc0760..fefe20fd 100644 --- a/images/macos/provision/core/gcc.sh +++ b/images/macos/provision/core/gcc.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail echo "Installing GCC@8 using homebrew..." brew install gcc@8 diff --git a/images/macos/provision/core/git.sh b/images/macos/provision/core/git.sh index 55feb92b..d59ebf91 100644 --- a/images/macos/provision/core/git.sh +++ b/images/macos/provision/core/git.sh @@ -1,3 +1,5 @@ +#!/bin/bash -e -o pipefail + echo Installing Git... brew install git diff --git a/images/macos/provision/core/haskell.sh b/images/macos/provision/core/haskell.sh index 1bc11d91..b7f35e4d 100644 --- a/images/macos/provision/core/haskell.sh +++ b/images/macos/provision/core/haskell.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh export PATH="$HOME/.ghcup/bin:$PATH" diff --git a/images/macos/provision/core/miniconda.sh b/images/macos/provision/core/miniconda.sh index b214b352..876883a6 100644 --- a/images/macos/provision/core/miniconda.sh +++ b/images/macos/provision/core/miniconda.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail MINICONDA_INSTALLER="/tmp/miniconda.sh" curl -sL https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -o $MINICONDA_INSTALLER diff --git a/images/macos/provision/core/mongodb.sh b/images/macos/provision/core/mongodb.sh index 1b6a5a8d..3a4440d9 100644 --- a/images/macos/provision/core/mongodb.sh +++ b/images/macos/provision/core/mongodb.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash -e -o pipefail # MongoDB object-value database # installs last version of MongoDB Community Edition diff --git a/images/macos/provision/core/node.sh b/images/macos/provision/core/node.sh index 840b433f..59e727ce 100644 --- a/images/macos/provision/core/node.sh +++ b/images/macos/provision/core/node.sh @@ -1,3 +1,5 @@ +#!/bin/bash -e -o pipefail + source ~/utils/utils.sh node_modules=( @@ -16,7 +18,6 @@ if is_Less_Catalina; then echo Installing NPM 3.x.x... npm install -g npm@3 - npm config set prefix /usr/local # This step is required to install App Center CLI echo Installing Omelette... diff --git a/images/macos/provision/core/nvm.sh b/images/macos/provision/core/nvm.sh index 527bd4c6..c02ecf43 100755 --- a/images/macos/provision/core/nvm.sh +++ b/images/macos/provision/core/nvm.sh @@ -1,5 +1,4 @@ -#!/bin/sh - +#!/bin/bash -e -o pipefail ########################################################################### # The script installs node version manager with node versions 6,8,10 and 12 # @@ -24,11 +23,8 @@ if [ $? -eq 0 ]; then nvm alias node12 lts/erbium nvm alias node13 v13 nvm alias node14 v14 - - if is_Catalina || is_BigSur; then - # set system node as default - nvm alias default system - fi + # set system node as default + nvm alias default system else echo error fi diff --git a/images/macos/provision/core/openjdk.sh b/images/macos/provision/core/openjdk.sh index ca2c5f01..c2b22baf 100644 --- a/images/macos/provision/core/openjdk.sh +++ b/images/macos/provision/core/openjdk.sh @@ -1,6 +1,4 @@ -#!/bin/sh - -set -e +#!/bin/bash -e -o pipefail source ~/utils/utils.sh diff --git a/images/macos/provision/core/openssl.sh b/images/macos/provision/core/openssl.sh index a058673a..855c1c60 100755 --- a/images/macos/provision/core/openssl.sh +++ b/images/macos/provision/core/openssl.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash -e -o pipefail source ~/utils/utils.sh diff --git a/images/macos/provision/core/php.sh b/images/macos/provision/core/php.sh index 08c19f94..90111448 100644 --- a/images/macos/provision/core/php.sh +++ b/images/macos/provision/core/php.sh @@ -1,5 +1,4 @@ -#!/bin/sh -set -e +#!/bin/bash -e -o pipefail echo Installing PHP brew install php diff --git a/images/macos/provision/core/postgresql.sh b/images/macos/provision/core/postgresql.sh index f69e078a..b5d7ab61 100644 --- a/images/macos/provision/core/postgresql.sh +++ b/images/macos/provision/core/postgresql.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail #Install latest version of postgresql brew install postgres @@ -6,13 +6,21 @@ brew install postgres #Service postgresql should be started before use. brew services start postgresql -#Verify that PostgreSQL is ready for accept incoming connections. -# exit codes: -# ready - 0 -# reject - 1 -# connection timeout - 2 -# incorrect credentials or parameters - 3 -pg_isready +#Verify PostgreSQL is ready for accept incoming connections +echo "Check PostgreSQL service is running" +i=10 +COMMAND='pg_isready' +while [ $i -gt 0 ]; do + echo "Check PostgreSQL service status" + eval $COMMAND && break + ((i--)) + if [ $i == 0 ]; then + echo "PostgreSQL service not ready, all attempts exhausted" + exit 1 + fi + echo "PostgreSQL service not ready, wait 10 more sec, attempts left: $i" + sleep 10 +done #Stop postgresql brew services stop postgresql \ No newline at end of file diff --git a/images/macos/provision/core/powershell.sh b/images/macos/provision/core/powershell.sh index 5717adc7..12beeca6 100644 --- a/images/macos/provision/core/powershell.sh +++ b/images/macos/provision/core/powershell.sh @@ -1,3 +1,5 @@ +#!/bin/bash -e -o pipefail + source ~/utils/utils.sh echo Installing Azure CLI... diff --git a/images/macos/provision/core/pypy.sh b/images/macos/provision/core/pypy.sh index 5f24cd5f..d55d785a 100644 --- a/images/macos/provision/core/pypy.sh +++ b/images/macos/provision/core/pypy.sh @@ -1,10 +1,9 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail ################################################################################ ## File: pypy.sh ## Desc: Installs PyPy ################################################################################ source ~/utils/utils.sh -set -e function InstallPyPy { diff --git a/images/macos/provision/core/python.sh b/images/macos/provision/core/python.sh index 1565ced2..7aa0e777 100755 --- a/images/macos/provision/core/python.sh +++ b/images/macos/provision/core/python.sh @@ -1,4 +1,5 @@ -#!/bin/sh +#!/bin/bash -e -o pipefail + source ~/utils/utils.sh echo "Installing Python Tooling" diff --git a/images/macos/provision/core/reboot.sh b/images/macos/provision/core/reboot.sh index a6e44435..e0a2dfb8 100644 --- a/images/macos/provision/core/reboot.sh +++ b/images/macos/provision/core/reboot.sh @@ -1,2 +1,3 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail + shutdown -r now \ No newline at end of file diff --git a/images/macos/provision/core/ruby.sh b/images/macos/provision/core/ruby.sh index 19877de3..61eb33c0 100755 --- a/images/macos/provision/core/ruby.sh +++ b/images/macos/provision/core/ruby.sh @@ -1,17 +1,6 @@ -#!/bin/sh - -set -e +#!/bin/bash -e -o pipefail source ~/utils/utils.sh echo Installing Ruby... -if is_Less_BigSur; then - # We can't install latest ruby 2.7 as a default version related with bug - # https://github.com/fastlane/fastlane/issues/15397 - /usr/local/bin/brew install ruby@2.6 - ln -sf /usr/local/opt/ruby\@2.6 /usr/local/opt/ruby -else - brew install ruby -fi - - +brew install ruby diff --git a/images/macos/provision/core/rubygem.sh b/images/macos/provision/core/rubygem.sh index 83639e47..14f4af7a 100755 --- a/images/macos/provision/core/rubygem.sh +++ b/images/macos/provision/core/rubygem.sh @@ -1,4 +1,5 @@ -#!/bin/sh +#!/bin/bash -e -o pipefail + source ~/utils/utils.sh echo Updating RubyGems... diff --git a/images/macos/provision/core/rust.sh b/images/macos/provision/core/rust.sh index 5ef7675c..de82c7b4 100644 --- a/images/macos/provision/core/rust.sh +++ b/images/macos/provision/core/rust.sh @@ -1,6 +1,4 @@ -#!/bin/sh - -set -e +#!/bin/bash -e -o pipefail echo Installing Rustup... brew install rustup-init diff --git a/images/macos/provision/core/stack.sh b/images/macos/provision/core/stack.sh index 81b41fa8..17c5ecd9 100644 --- a/images/macos/provision/core/stack.sh +++ b/images/macos/provision/core/stack.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail echo "Get the latest Stack version..." StackRelease=$(curl -s "https://api.github.com/repos/commercialhaskell/stack/releases/latest") diff --git a/images/macos/provision/core/toolcache-high-sierra.sh b/images/macos/provision/core/toolcache-high-sierra.sh index 61a3cc8c..9a67418b 100644 --- a/images/macos/provision/core/toolcache-high-sierra.sh +++ b/images/macos/provision/core/toolcache-high-sierra.sh @@ -1,7 +1,6 @@ -#!/bin/sh - +#!/bin/bash -e -o pipefail ########################################################################### -# The script downloads macos hosted tool cache for several Python versions +# The script downloads macos hosted tool cache for several Python versions # and installs them onto the system # ########################################################################### diff --git a/images/macos/provision/core/toolcache.sh b/images/macos/provision/core/toolcache.sh index eb6dc905..dab45deb 100755 --- a/images/macos/provision/core/toolcache.sh +++ b/images/macos/provision/core/toolcache.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash -e -o pipefail # Download hosted tool cache with npm NPM_FEED="npm.pkg.github.com" diff --git a/images/macos/provision/core/vcpkg.sh b/images/macos/provision/core/vcpkg.sh index 289d7ba4..260f2c2a 100644 --- a/images/macos/provision/core/vcpkg.sh +++ b/images/macos/provision/core/vcpkg.sh @@ -1,6 +1,5 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail -set -e source ~/utils/utils.sh # Set env variable for vcpkg diff --git a/images/macos/provision/core/vsmac.sh b/images/macos/provision/core/vsmac.sh index 20a8efd4..f0c498fc 100644 --- a/images/macos/provision/core/vsmac.sh +++ b/images/macos/provision/core/vsmac.sh @@ -1,4 +1,5 @@ -#!/bin/sh +#!/bin/bash -e -o pipefail + source ~/utils/utils.sh source ~/utils/xamarin-utils.sh @@ -22,9 +23,6 @@ echo "Moving Visual Studio to /Applications/..." pushd $TMPMOUNT tar cf - "./Visual Studio.app" | tar xf - -C /Applications/ -echo "Launching vstools..." -/Applications/Visual\ Studio.app/Contents/MacOS/vstool - popd sudo hdiutil detach "$TMPMOUNT" sudo rm -rf "$TMPMOUNT" \ No newline at end of file diff --git a/images/macos/provision/core/xamarin-android-ndk.sh b/images/macos/provision/core/xamarin-android-ndk.sh index 35e4d006..d5b23ebb 100644 --- a/images/macos/provision/core/xamarin-android-ndk.sh +++ b/images/macos/provision/core/xamarin-android-ndk.sh @@ -1,4 +1,5 @@ -#!/bin/sh +#!/bin/bash -e -o pipefail + source ~/utils/utils.sh ANDROID_HOME=$HOME/Library/Android/sdk diff --git a/images/macos/provision/core/xamarin.sh b/images/macos/provision/core/xamarin.sh index 0f0801d7..86dc1a0f 100755 --- a/images/macos/provision/core/xamarin.sh +++ b/images/macos/provision/core/xamarin.sh @@ -1,4 +1,5 @@ -#!/bin/sh +#!/bin/bash -e -o pipefail + source ~/utils/utils.sh source ~/utils/xamarin-utils.sh @@ -63,8 +64,10 @@ createBundleLink $CURRENT_SDK_SYMLINK "Current" # Fix nuget in some mono versions because of known bugs # -# Fix Mono issue with default nuget: https://github.com/mono/mono/issues/17637 -installNuget "6.4.0" "5.3.1" +if is_Less_BigSur; then + # Fix Mono issue with default nuget: https://github.com/mono/mono/issues/17637 + installNuget "6.4.0" "5.3.1" +fi if is_Less_Catalina; then installNuget "4.8.1" "4.3.0" diff --git a/images/macos/provision/core/xcode-postbuild.sh b/images/macos/provision/core/xcode-postbuild.sh index bf7ba387..6afd42c2 100644 --- a/images/macos/provision/core/xcode-postbuild.sh +++ b/images/macos/provision/core/xcode-postbuild.sh @@ -1,11 +1,11 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail source ~/utils/utils.sh XCODE_LIST=($(get_xcode_list_from_toolset)) DEFAULT_XCODE_VERSION=$(get_default_xcode_from_toolset) # https://github.com/microsoft/appcenter/issues/847 -# Assets.xcassets : error : CoreData: error: (6922) I/O error for database +# Assets.xcassets : error : CoreData: error: (6922) I/O error for database # at $HOME/Library/Developer/Xcode/UserData/IB Support/Simulator Devices/{GUID} echo "Erase a device's contents and settings:" for XCODE_VERSION in "${XCODE_LIST[@]}" @@ -15,6 +15,11 @@ do #add sleep to let CoreSimulatorService to exit sleep 3 + # Version 12.2_beta installed into 12.2 directory and 12.1_GM_seed in 12.1 + pattern="[0-9]{1,2}.*_" + if [[ $XCODE_VERSION =~ $pattern ]] ; then + XCODE_VERSION=$(echo $XCODE_VERSION | cut -d"_" -f 1) + fi # Select xcode version by default sudo xcode-select -s "/Applications/Xcode_${XCODE_VERSION}.app/Contents/Developer" diff --git a/images/macos/provision/core/xcode-sims.sh b/images/macos/provision/core/xcode-sims.sh index fb2af5d4..8dff14a5 100755 --- a/images/macos/provision/core/xcode-sims.sh +++ b/images/macos/provision/core/xcode-sims.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash -e -o pipefail source ~/utils/utils.sh diff --git a/images/macos/provision/core/xcode-tools.sh b/images/macos/provision/core/xcode-tools.sh index 643dc293..773b07a9 100755 --- a/images/macos/provision/core/xcode-tools.sh +++ b/images/macos/provision/core/xcode-tools.sh @@ -1,10 +1,8 @@ -#!/bin/sh +#!/bin/bash -e -o pipefail # The script currently requires 2 external variables to be set: XCODE_INSTALL_USER # and XCODE_INSTALL_PASSWORD, in order to access the Apple Developer Center -set -e - source ~/utils/utils.sh source ~/utils/xcode-utils.sh diff --git a/images/macos/provision/utils/utils.sh b/images/macos/provision/utils/utils.sh index 7428c900..d2c39317 100755 --- a/images/macos/provision/utils/utils.sh +++ b/images/macos/provision/utils/utils.sh @@ -1,3 +1,5 @@ +#!/bin/bash -e -o pipefail + download_with_retries() { # Due to restrictions of bash functions, positional arguments are used here. # In case if you using latest argument NAME, you should also set value to all previous parameters. diff --git a/images/macos/provision/utils/xamarin-utils.sh b/images/macos/provision/utils/xamarin-utils.sh index dd6d7ae9..1017cec2 100644 --- a/images/macos/provision/utils/xamarin-utils.sh +++ b/images/macos/provision/utils/xamarin-utils.sh @@ -1,11 +1,11 @@ -#!/bin/sh +#!/bin/bash -e -o pipefail # Xamarin can clean their SDKs while updating to newer versions, # so we should be able to detect it during image generation downloadAndInstallPKG() { local PKG_URL=$1 local PKG_NAME=${PKG_URL##*/} - + download_with_retries $PKG_URL echo "Installing $PKG_NAME..." @@ -159,7 +159,7 @@ installNunitConsole() { local MONO_VERSION=$1 cat < ${TMPMOUNT}/${NUNIT3_CONSOLE_BIN} -#!/bin/sh +#!/bin/bash -e -o pipefail exec /Library/Frameworks/Mono.framework/Versions/${MONO_VERSION}/bin/mono --debug \$MONO_OPTIONS $NUNIT3_PATH/nunit3-console.exe "\$@" EOF sudo chmod +x ${TMPMOUNT}/${NUNIT3_CONSOLE_BIN} @@ -180,7 +180,7 @@ downloadNUnitConsole() { echo "Installing NUnit 3..." sudo unzip nunit3.zip -d $NUNIT3_PATH NUNIT3_CONSOLE_BIN=nunit3-console - + popd } diff --git a/images/macos/provision/utils/xcode-utils.sh b/images/macos/provision/utils/xcode-utils.sh index 7cd63b2f..cfe93439 100644 --- a/images/macos/provision/utils/xcode-utils.sh +++ b/images/macos/provision/utils/xcode-utils.sh @@ -1,3 +1,5 @@ +#!/bin/bash -e -o pipefail + createXamarinProvisionatorSymlink() { local XCODE_VERSION="$1" local FULL_VERSION=$(echo "${XCODE_VERSION}.0.0" | cut -d'.' -f 1,2,3) From 73c5b0bf879ab16a804170af0670a89560d4aa1a Mon Sep 17 00:00:00 2001 From: Maxim Lobanov Date: Fri, 23 Oct 2020 20:12:52 +0300 Subject: [PATCH 063/103] Update images/macos/provision/core/openssl.sh Co-authored-by: Mike McQuaid --- images/macos/provision/core/openssl.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/images/macos/provision/core/openssl.sh b/images/macos/provision/core/openssl.sh index b4acd430..ff6c3ff0 100755 --- a/images/macos/provision/core/openssl.sh +++ b/images/macos/provision/core/openssl.sh @@ -8,10 +8,9 @@ brew install openssl # Install OpenSSL 1.0.2t # https://www.openssl.org/policies/releasestrat.html - Version 1.0.2 will be supported until 2019-12-31 (LTS) # To preserve backward compatibility with ruby-toolcache -brew tap-new local/openssl +brew tap-new --no-git local/openssl FORMULA_PATH=$(brew extract openssl local/openssl | grep "Homebrew/Library/Taps") brew install $FORMULA_PATH -brew untap local/homebrew-openssl # Set OpenSSL 1.0.2t as default ln -sf /usr/local/Cellar/openssl@1.0.2t /usr/local/Cellar/openssl @@ -23,4 +22,4 @@ ln -sf ../Cellar/openssl/1.0.2t /usr/local/opt/openssl # https://github.com/microsoft/azure-pipelines-agent/blob/master/docs/start/envosx.md mkdir -p /usr/local/lib/ ln -s /usr/local/opt/openssl@1.0.2t/lib/libcrypto.1.0.0.dylib /usr/local/lib/ -ln -s /usr/local/opt/openssl@1.0.2t/lib/libssl.1.0.0.dylib /usr/local/lib/ \ No newline at end of file +ln -s /usr/local/opt/openssl@1.0.2t/lib/libssl.1.0.0.dylib /usr/local/lib/ From bbb8bd3f4ca995d718ce79da8651b0465270af01 Mon Sep 17 00:00:00 2001 From: Maxim Lobanov Date: Fri, 23 Oct 2020 20:12:58 +0300 Subject: [PATCH 064/103] Update images/macos/provision/core/python.sh Co-authored-by: Mike McQuaid --- images/macos/provision/core/python.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/images/macos/provision/core/python.sh b/images/macos/provision/core/python.sh index 13e054fe..d0a56ee1 100755 --- a/images/macos/provision/core/python.sh +++ b/images/macos/provision/core/python.sh @@ -13,7 +13,6 @@ brew link python@3.8 echo "Brew Installing Python 2" # Create local tap with formula due to python2 formula depreciation -brew tap-new local/python2 +brew tap-new --no-git local/python2 FORMULA_PATH=$(brew extract python@2 local/python2 | grep "Homebrew/Library/Taps") brew install $FORMULA_PATH -brew untap local/homebrew-python2 From 44d1f85e34c64c03adb3a25c51b5f87d30cbe092 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev Date: Sat, 24 Oct 2020 23:30:27 +0700 Subject: [PATCH 065/103] add missed shebang --- images/linux/scripts/base/apt.sh | 2 +- images/linux/scripts/base/repos.sh | 2 +- images/linux/scripts/helpers/etc-environment.sh | 2 +- images/linux/scripts/helpers/install.sh | 2 +- images/linux/scripts/helpers/os.sh | 2 +- images/linux/scripts/installers/pipx-packages.sh | 2 +- .../provision/bootstrap-provisioner/installNewProvisioner.sh | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/images/linux/scripts/base/apt.sh b/images/linux/scripts/base/apt.sh index 8afcbe8d..114708be 100644 --- a/images/linux/scripts/base/apt.sh +++ b/images/linux/scripts/base/apt.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e export DEBIAN_FRONTEND=noninteractive apt-get -yq update diff --git a/images/linux/scripts/base/repos.sh b/images/linux/scripts/base/repos.sh index 4ecd2028..9005d32a 100644 --- a/images/linux/scripts/base/repos.sh +++ b/images/linux/scripts/base/repos.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: repos.sh ## Desc: Installs official Microsoft package repos for the distribution diff --git a/images/linux/scripts/helpers/etc-environment.sh b/images/linux/scripts/helpers/etc-environment.sh index 24801723..eba0ecc0 100644 --- a/images/linux/scripts/helpers/etc-environment.sh +++ b/images/linux/scripts/helpers/etc-environment.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: etc-environment.sh ## Desc: Helper functions for source and modify /etc/environment diff --git a/images/linux/scripts/helpers/install.sh b/images/linux/scripts/helpers/install.sh index bb1befe2..e42cd319 100644 --- a/images/linux/scripts/helpers/install.sh +++ b/images/linux/scripts/helpers/install.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: install.sh ## Desc: Helper functions for installing tools diff --git a/images/linux/scripts/helpers/os.sh b/images/linux/scripts/helpers/os.sh index 9c30c811..8bec8608 100644 --- a/images/linux/scripts/helpers/os.sh +++ b/images/linux/scripts/helpers/os.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: install-helpers.sh ## Desc: Helper functions for installing tools diff --git a/images/linux/scripts/installers/pipx-packages.sh b/images/linux/scripts/installers/pipx-packages.sh index 07e1427e..3b625fe4 100644 --- a/images/linux/scripts/installers/pipx-packages.sh +++ b/images/linux/scripts/installers/pipx-packages.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e ################################################################################ ## File: pipx-packages.sh ## Desc: Install tools via pipx diff --git a/images/macos/provision/bootstrap-provisioner/installNewProvisioner.sh b/images/macos/provision/bootstrap-provisioner/installNewProvisioner.sh index 79a3afdf..e588c670 100644 --- a/images/macos/provision/bootstrap-provisioner/installNewProvisioner.sh +++ b/images/macos/provision/bootstrap-provisioner/installNewProvisioner.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail BOOTSTRAP_PATH="$1" ProvisionerPackageUri="$2" ProvisionerScriptUri="$3" From 16ff1bc8a86029832184b27aec82a163eb3d72a7 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Sun, 25 Oct 2020 21:34:19 +0300 Subject: [PATCH 066/103] Revert "[windows] Temporary workaround for VS installation" (#1895) --- images/win/scripts/Installers/Install-VS.ps1 | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/images/win/scripts/Installers/Install-VS.ps1 b/images/win/scripts/Installers/Install-VS.ps1 index d3db5b4d..4c1ce952 100644 --- a/images/win/scripts/Installers/Install-VS.ps1 +++ b/images/win/scripts/Installers/Install-VS.ps1 @@ -3,10 +3,6 @@ ## Desc: Install Visual Studio ################################################################################ -# Temporary replace ip for download server to the one with the correct files and backup hosts file -Copy-Item -Path "$env:windir\System32\drivers\etc\hosts" -Destination "C:\hosts_backup" -Verbose -"68.232.34.200 download.visualstudio.microsoft.com" > "$env:windir\System32\drivers\etc\hosts" - $toolset = Get-ToolsetContent $requiredComponents = $toolset.visualStudio.workloads | ForEach-Object { "--add $_" } $workLoads = @( @@ -51,6 +47,4 @@ if (Test-IsWin19) { Install-Binary -Url $sdkUrl -Name $sdkFileName -ArgumentList $argumentList } -Invoke-PesterTests -TestFile "VisualStudio" -# Restore hosts file after VS installation -Move-Item -Path "C:\hosts_backup" -Destination "$env:windir\System32\drivers\etc\hosts" -Force -Verbose +Invoke-PesterTests -TestFile "VisualStudio" \ No newline at end of file From 96faa1ea2a69b8bdcef676f8fae168439085e0ee Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Mon, 26 Oct 2020 12:20:14 +0300 Subject: [PATCH 067/103] fix mingw64 --- images/win/scripts/Installers/Install-Mingw64.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-Mingw64.ps1 b/images/win/scripts/Installers/Install-Mingw64.ps1 index b6c86048..2b999f45 100644 --- a/images/win/scripts/Installers/Install-Mingw64.ps1 +++ b/images/win/scripts/Installers/Install-Mingw64.ps1 @@ -7,7 +7,7 @@ Choco-Install -PackageName mingw # Make a copy of mingw32-make.exe to make.exe, which is a more discoverable name # and so the same command line can be used on Windows as on macOS and Linux -$path = where.exe mingw32-make.exe | Get-Item +$path = Get-Command mingw32-make.exe -CommandType All | Where-Object { $_.Path.Contains("C:\ProgramData\Chocolatey") } | Get-Item Copy-Item -Path $path -Destination (Join-Path $path.Directory 'make.exe') Invoke-PesterTests -TestFile "Tools" -TestName "Mingw64" From eb92aba93bcc53d0028086ea6abd8f2e53d12994 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Mon, 26 Oct 2020 14:33:46 +0300 Subject: [PATCH 068/103] add ssh host keys --- images/win/scripts/Installers/Install-Msys2.ps1 | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 index b077f5cd..844c071b 100644 --- a/images/win/scripts/Installers/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -57,6 +57,10 @@ Write-Host "`n$dash Install mingw32 packages" $pre = "mingw-w64-i686-" pacman.exe -S --noconfirm --needed --noprogressbar $tools32.replace('___', $pre).split(' ') +# install openssh +Write-Host "`n$dash Install openssh package" +pacman.exe -S --noconfirm --needed --noprogressbar openssh + # clean all packages to decrease image size Write-Host "`n$dash Clean packages" pacman.exe -Scc --noconfirm @@ -80,4 +84,8 @@ $pathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path' $pathValue += ";C:\msys64\mingw64\bin;C:\msys64\usr\bin" Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $pathValue +# Add well-known SSH host keys to ssh_known_hosts +ssh-keyscan -t rsa github.com >> "C:\msys64\etc\ssh\ssh_known_hosts" +ssh-keyscan -t rsa ssh.dev.azure.com >> "C:\msys64\etc\ssh\ssh_known_hosts" + Invoke-PesterTests -TestFile "MSYS2" From 47eaa69646becdb28d3de6b28d92a16a18972b73 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Mon, 26 Oct 2020 14:37:18 +0300 Subject: [PATCH 069/103] [macOS] Improve select datastore script (#1892) * modify script to set tages * add vmname * nitpicks * add remove tag --- .../azure-pipelines/image-generation.yml | 7 +- images.CI/macos/move-vm.ps1 | 7 ++ images.CI/macos/select-datastore.ps1 | 87 ++++++++++++++----- 3 files changed, 75 insertions(+), 26 deletions(-) diff --git a/images.CI/macos/azure-pipelines/image-generation.yml b/images.CI/macos/azure-pipelines/image-generation.yml index 89216e21..60837bc1 100644 --- a/images.CI/macos/azure-pipelines/image-generation.yml +++ b/images.CI/macos/azure-pipelines/image-generation.yml @@ -52,7 +52,8 @@ jobs: inputs: targetType: 'filePath' filePath: ./images.CI/macos/select-datastore.ps1 - arguments: -VIServer "$(vcenter-server-v2)" ` + arguments: -VMName "$(VirtualMachineName)" ` + -VIServer "$(vcenter-server-v2)" ` -VIUserName "$(vcenter-username-v2)" ` -VIPassword "$(vcenter-password-v2)" @@ -121,8 +122,8 @@ jobs: condition: always() - task: PowerShell@2 - displayName: 'Move vm to cold storage' - condition: succeededOrFailed() + displayName: 'Move vm to cold storage and clear datastore tag' + condition: always() inputs: targetType: 'filePath' filePath: ./images.CI/macos/move-vm.ps1 diff --git a/images.CI/macos/move-vm.ps1 b/images.CI/macos/move-vm.ps1 index 69872140..37e83906 100644 --- a/images.CI/macos/move-vm.ps1 +++ b/images.CI/macos/move-vm.ps1 @@ -48,6 +48,13 @@ Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking # Connection to a vCenter Server system Connect-VCServer +# Clear previously assigned tag with VM Name +try { + Remove-Tag $VMName -Confirm:$false +} catch { + Write-Host "Tag with $VMName doesn't exist" +} + $vm = Get-VM $VMName if ($env:AGENT_JOBSTATUS -eq 'Failed') { diff --git a/images.CI/macos/select-datastore.ps1 b/images.CI/macos/select-datastore.ps1 index d6477700..2884fdf4 100644 --- a/images.CI/macos/select-datastore.ps1 +++ b/images.CI/macos/select-datastore.ps1 @@ -20,6 +20,10 @@ vCenter password (Example "12345678") [CmdletBinding()] param( + [Parameter(Mandatory)] + [ValidateNotNullOrEmpty()] + [string]$VMName, + [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [string]$VIServer, @@ -30,35 +34,72 @@ param( [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] - [string]$VIPassword + [string]$VIPassword, + + [string]$TagCategory = "Busy" ) # Import helpers module Import-Module $PSScriptRoot\helpers.psm1 -DisableNameChecking +function Select-DataStore { + param ( + [string]$VMName, + [string]$TagCategory, + [string]$TemplateDatastore = "ds-local-Datastore-*", + [int]$ThresholdInGb = 400, + [int]$VMCount = 2, + [int]$Retries = 5 + ) + + # 1. Name starts with ds-local-Datastore + # 2. FreespaceGB > 400 Gb + # 3. VM count on a datastore < 2 + + Write-Host "Start Datastore selection process..." + $allDatastores = Get-Datastore -Name $templateDatastore | Where-Object { $_.State -eq "Available" } + $buildDatastore = $allDatastores | Where-Object { $_.FreeSpaceGB -ge $thresholdInGb } | Where-Object { + $vmOnDatastore = @((Get-ChildItem -Path $_.DatastoreBrowserPath).Name -notmatch "^\.").Count + $vmOnDatastore -lt $vmCount + } | Select-Object -ExpandProperty Name -First 1 + + $tag = Get-Tag -Category $TagCategory -Name $VMName -ErrorAction Ignore + if (-not $tag) + { + $tag = New-Tag -Name $VMName -Category $TagCategory + } + + New-TagAssignment -Tag $tag -Entity $buildDatastore | Out-Null + + # Wait for 60 seconds to check if any other tags are assigned to the same datastore + Start-Sleep -Seconds 60 + # Take only first 2 tags, all the others will go to the next round + $tagAssignments = (Get-TagAssignment -Entity $buildDatastore).Tag.Name | Select-Object -First 2 + $isAllow = $tagAssignments -contains $VMName + + if ($isAllow) + { + Write-Host "Datastore selected successfully" + Write-Host "##vso[task.setvariable variable=buildDatastore;issecret=true]$buildDatastore" + return + } + + # Remove the tag if datastore wasn't selected + Remove-Tag $tag -Confirm:$false + + $retries-- + if ($retries -le 0) + { + Write-Host "##vso[task.LogIssue type=error;]No datastores found for the condition" + exit 1 + } + + Write-Host "Datastore select failed, $retries left" + Select-DataStore -VMName $VMName -TagCategory $TagCategory -Retries $retries +} + # Connection to a vCenter Server system Connect-VCServer # Get a target datastore for current deployment -# 1. Name starts with ds-local-Datastore -# 2. FreespaceGB > 400 Gb -# 3. VM count on a datastore < 2 -$templateDatastore = "ds-local-Datastore-*" -$thresholdInGb = 400 -$vmCount = 2 -$allDatastores = Get-Datastore -Name $templateDatastore | Where-Object { $_.State -eq "Available" } -$buildDatastore = $allDatastores | Where-Object { $_.FreeSpaceGB -ge $thresholdInGb } | Where-Object { - $vmOnDatastore = @((Get-ChildItem -Path $_.DatastoreBrowserPath).Name -notmatch "^\.").Count - $vmOnDatastore -lt $vmCount - } | Select-Object -ExpandProperty Name -First 1 - -if ($buildDatastore) -{ - Write-Host "Datastore selected successfully" - Write-Host "##vso[task.setvariable variable=buildDatastore;issecret=true]$buildDatastore" -} -else -{ - Write-Host "##vso[task.LogIssue type=error;]No datastores found for the condition" - exit 1 -} \ No newline at end of file +Select-DataStore -VMName $VMName -TagCategory $TagCategory From 48e266a55a3c4aa19b715b299ac5729fdb6379a8 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev <48208649+miketimofeev@users.noreply.github.com> Date: Mon, 26 Oct 2020 16:41:26 +0300 Subject: [PATCH 070/103] [macOS] remove workaround for MS edge (#1898) --- images/macos/provision/core/edge.sh | 4 ---- 1 file changed, 4 deletions(-) diff --git a/images/macos/provision/core/edge.sh b/images/macos/provision/core/edge.sh index da1673e0..bd0ffedd 100644 --- a/images/macos/provision/core/edge.sh +++ b/images/macos/provision/core/edge.sh @@ -3,11 +3,7 @@ source ~/utils/utils.sh echo "Installing Microsoft Edge..." -# Workaround to install version 85 since webdriver is broken for 86 -cd "$(brew --repo homebrew/homebrew-cask)" -git checkout 81f9d08d2b9b7557c0178621078cf59d2c5db2bc brew cask install microsoft-edge -git checkout master EDGE_INSTALLATION_PATH="/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge" EDGE_VERSION=$("$EDGE_INSTALLATION_PATH" --version | cut -d' ' -f 3) From 4444dfd517ec0bc970a8c1bd8dbc2a902b9db97c Mon Sep 17 00:00:00 2001 From: MaksimZhukov Date: Mon, 26 Oct 2020 17:41:40 +0300 Subject: [PATCH 071/103] Fix Xamarin issue with Xcode symlink --- images/macos/provision/core/xamarin.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/images/macos/provision/core/xamarin.sh b/images/macos/provision/core/xamarin.sh index 86dc1a0f..18eef321 100755 --- a/images/macos/provision/core/xamarin.sh +++ b/images/macos/provision/core/xamarin.sh @@ -9,6 +9,7 @@ XAMARIN_MAC_VERSIONS=($(get_toolset_value '.xamarin."mac-versions" | reverse | . XAMARIN_ANDROID_VERSIONS=($(get_toolset_value '.xamarin."android-versions" | reverse | .[]')) LATEST_SDK_SYMLINK=$(get_toolset_value '.xamarin.bundles[0].symlink') CURRENT_SDK_SYMLINK=$(get_toolset_value '.xamarin."bundle-default"') +DEFAULT_XCODE_VERSION=$(get_default_xcode_from_toolset) if [ "$CURRENT_SDK_SYMLINK" == "latest" ]; then CURRENT_SDK_SYMLINK=$LATEST_SDK_SYMLINK @@ -82,3 +83,8 @@ popd echo "Clean up packages..." sudo rm -rf "$TMPMOUNT" + +# Fix Xamarin issue with Xcode symlink: https://github.com/xamarin/xamarin-macios/issues/9960 +PREFERENCES_XAMARIN_DIR="${HOME}/Library/Preferences/Xamarin" +mkdir -p $PREFERENCES_XAMARIN_DIR +/usr/libexec/PlistBuddy -c "add :AppleSdkRoot string /Applications/Xcode_${DEFAULT_XCODE_VERSION}.app" $PREFERENCES_XAMARIN_DIR/Settings.plist From b53fc3daba47f4064fa6beef3157044edb4a9de2 Mon Sep 17 00:00:00 2001 From: Maxim Lobanov Date: Tue, 27 Oct 2020 07:52:15 +0300 Subject: [PATCH 072/103] Update readme and issue templates with MacOS 11.0 --- .github/ISSUE_TEMPLATE/bug-report.md | 7 ++++--- .github/ISSUE_TEMPLATE/tool-request.md | 7 ++++--- README.md | 8 +++++++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md index b95d5ebc..cf1a5340 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -17,10 +17,11 @@ A clear and concise description of what the bug is, and why you consider it to b **Virtual environments affected** +- [ ] Ubuntu 16.04 +- [ ] Ubuntu 18.04 +- [ ] Ubuntu 20.04 - [ ] macOS 10.15 -- [ ] Ubuntu 16.04 LTS -- [ ] Ubuntu 18.04 LTS -- [ ] Ubuntu 20.04 LTS +- [ ] macOS 11.0 - [ ] Windows Server 2016 R2 - [ ] Windows Server 2019 diff --git a/.github/ISSUE_TEMPLATE/tool-request.md b/.github/ISSUE_TEMPLATE/tool-request.md index 2eeb8737..72fdd006 100644 --- a/.github/ISSUE_TEMPLATE/tool-request.md +++ b/.github/ISSUE_TEMPLATE/tool-request.md @@ -25,10 +25,11 @@ assignees: '' **Virtual environments affected** +- [ ] Ubuntu 16.04 +- [ ] Ubuntu 18.04 +- [ ] Ubuntu 20.04 - [ ] macOS 10.15 -- [ ] Ubuntu 16.04 LTS -- [ ] Ubuntu 18.04 LTS -- [ ] Ubuntu 20.04 LTS +- [ ] macOS 11.0 - [ ] Windows Server 2016 R2 - [ ] Windows Server 2019 diff --git a/README.md b/README.md index b3c59649..99086a72 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,18 @@ For general questions about using the virtual environments or writing your Actio | Ubuntu 20.04 | `ubuntu-20.04` | [ubuntu-20.04] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu20&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu20&redirect=1) | Ubuntu 18.04 | `ubuntu-latest` or `ubuntu-18.04` | [ubuntu-18.04] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu18&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu18&redirect=1) | Ubuntu 16.04 | `ubuntu-16.04` | [ubuntu-16.04] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu16&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu16&redirect=1) | -| macOS 10.15 | `macos-latest` or `macos-10.15` | [macOS-10.15] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=MacOS&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=MacOS&redirect=1) +| macOS 11.0 | `macos-11.0` | [macOS-11.0] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-11.0&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-11.0&redirect=1) +| macOS 10.15 | `macos-latest` or `macos-10.15` | [macOS-10.15] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macOS-10.15&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macOS-10.15&redirect=1) | Windows Server 2019 | `windows-latest` or `windows-2019` | [windows-2019] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019&badge=1)](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&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2016&redirect=1) ``` The Ubuntu 20.04 virtual environment is currently provided as a preview only. The "ubuntu-latest" YAML workflow label still uses the Ubuntu 18.04 virtual environment. ``` +``` +The MacOS 11.0 virtual environment is currently provided as a preview only. +The "macos-latest" YAML workflow label still uses the MacOS 10.15 virtual environment. +``` ***Looking for other Linux distributions?*** We do not plan to offer other Linux distributions. We recommend using Docker if you'd like to build using other distributions with the hosted virtual environments. Alternatively, you can leverage [self-hosted runners] and fully customize your environment to your needs. @@ -56,4 +61,5 @@ Low Impact changes will be pinned in this repository and marked with the [Announ [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-10.15]: https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md +[macOS-11.0]: https://github.com/actions/virtual-environments/blob/main/images/macos/macos-11.0-Readme.md [self-hosted runners]: https://help.github.com/en/actions/hosting-your-own-runners From 222f3bb86f3d9f64c0832a70469fa45f717c7567 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Tue, 27 Oct 2020 11:05:36 +0300 Subject: [PATCH 073/103] use ssh-keyscan from git --- images/win/scripts/Installers/Install-Git.ps1 | 2 +- images/win/scripts/Installers/Install-OpenSSH.ps1 | 13 ------------- images/win/windows2016.json | 2 -- images/win/windows2019.json | 1 - 4 files changed, 1 insertion(+), 17 deletions(-) delete mode 100644 images/win/scripts/Installers/Install-OpenSSH.ps1 diff --git a/images/win/scripts/Installers/Install-Git.ps1 b/images/win/scripts/Installers/Install-Git.ps1 index 2a5eb546..c7b2c457 100644 --- a/images/win/scripts/Installers/Install-Git.ps1 +++ b/images/win/scripts/Installers/Install-Git.ps1 @@ -37,7 +37,7 @@ Choco-Install -PackageName hub [Environment]::SetEnvironmentVariable("GCM_INTERACTIVE", "Never", [System.EnvironmentVariableTarget]::Machine) if (Test-IsWin16) { - $env:Path += ";$env:ProgramFiles\OpenSSH-Win64" + $env:Path += ";$env:ProgramFiles\Git\usr\bin\" } # Add well-known SSH host keys to ssh_known_hosts diff --git a/images/win/scripts/Installers/Install-OpenSSH.ps1 b/images/win/scripts/Installers/Install-OpenSSH.ps1 deleted file mode 100644 index b0ea1527..00000000 --- a/images/win/scripts/Installers/Install-OpenSSH.ps1 +++ /dev/null @@ -1,13 +0,0 @@ -################################################################################ -## File: Install-OpenSSH.ps1 -## Desc: Install OpenSSH-Win64 -################################################################################ - -Write-Host "Download Latest OpenSSH-Win64 archive" -$url = 'https://api.github.com/repos/PowerShell/Win32-OpenSSH/releases/latest' -$name = 'OpenSSH-Win64.zip' -# Explicitly set type to string since match returns array by default -[string]$opensshLatest = (Invoke-RestMethod -Uri $url).assets.browser_download_url -match $name -$opensshArchivePath = Start-DownloadWithRetry -Url $opensshLatest -Name $name -Write-Host "Expand OpenSSH-Win64 archive" -Extract-7Zip -Path $opensshArchivePath -DestinationPath $env:ProgramFiles \ No newline at end of file diff --git a/images/win/windows2016.json b/images/win/windows2016.json index 43faaa25..8c1314d6 100644 --- a/images/win/windows2016.json +++ b/images/win/windows2016.json @@ -245,7 +245,6 @@ "{{ template_dir }}/scripts/Installers/Install-Sbt.ps1", "{{ template_dir }}/scripts/Installers/Install-OpenSSL.ps1", "{{ template_dir }}/scripts/Installers/Install-Perl.ps1", - "{{ template_dir }}/scripts/Installers/Install-OpenSSH.ps1", "{{ template_dir }}/scripts/Installers/Install-Git.ps1", "{{ template_dir }}/scripts/Installers/Install-GitHub-CLI.ps1", "{{ template_dir }}/scripts/Installers/Install-PHP.ps1", @@ -334,7 +333,6 @@ "scripts": [ "{{ template_dir }}/scripts/Installers/Install-WindowsUpdates.ps1", "{{ template_dir }}/scripts/Installers/Configure-DynamicPort.ps1", - "{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1", "{{ template_dir }}/scripts/Installers/Configure-Shell.ps1" ], "elevated_user": "{{user `install_user`}}", diff --git a/images/win/windows2019.json b/images/win/windows2019.json index dd717711..a002f77f 100644 --- a/images/win/windows2019.json +++ b/images/win/windows2019.json @@ -331,7 +331,6 @@ "scripts": [ "{{ template_dir }}/scripts/Installers/Install-WindowsUpdates.ps1", "{{ template_dir }}/scripts/Installers/Configure-DynamicPort.ps1", - "{{ template_dir }}/scripts/Installers/Disable-JITDebugger.ps1", "{{ template_dir }}/scripts/Installers/Configure-Shell.ps1" ], "elevated_user": "{{user `install_user`}}", From bf20204c08036df03afd6b34548de6af1c922ba8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 27 Oct 2020 09:48:48 +0000 Subject: [PATCH 074/103] Updating readme file for macOS-11.0 version 20201024.1 (#1902) Co-authored-by: Image generation service account Co-authored-by: Actions service account --- images/macos/macos-11.0-Readme.md | 44 ++++++++++++------------------- 1 file changed, 17 insertions(+), 27 deletions(-) diff --git a/images/macos/macos-11.0-Readme.md b/images/macos/macos-11.0-Readme.md index b4776beb..75189112 100644 --- a/images/macos/macos-11.0-Readme.md +++ b/images/macos/macos-11.0-Readme.md @@ -1,6 +1,6 @@ | Announcements | |-| -| [[macOS] Built-in Python 2.7 will be used on macOS instead of Homebrew formula on November, 3rd.](https://github.com/actions/virtual-environments/issues/1848) | +| [.NET 5.0 will become a default .NET version on November, 10](https://github.com/actions/virtual-environments/issues/1891) | | [macOS 11.0 (Big Sur) is available as a preview 🚀](https://github.com/actions/virtual-environments/issues/1814) | | [[macOS] Default Ruby version will be changed to 2.7 on October, 26](https://github.com/actions/virtual-environments/issues/1775) | | [Default Xcode will be changed to Xcode 12.0.1 on October, 20](https://github.com/actions/virtual-environments/issues/1712) | @@ -9,7 +9,7 @@ # macOS 11.0 info - System Version: macOS 11.0 (20A5395g) - Kernel Version: Darwin 20.1.0 -- Image Version: 20201020.1 +- Image Version: 20201024.1 ## Installed Software ### Language and Runtime @@ -34,14 +34,14 @@ - Pip 20.2.3 (python 3.8) - Bundler version 2.1.4 - Carthage 0.36.0 -- CocoaPods 1.9.3 +- CocoaPods 1.10.0 - Homebrew 2.5.6 - NPM 6.14.8 - Yarn 1.22.5 - NuGet 5.6.0.6489 - Miniconda 4.8.3 - RubyGems 3.1.4 -- Composer 1.10.15 +- Composer 2.0.1 ### Project Management - Apache Maven 3.6.3 @@ -50,7 +50,7 @@ ### Utilities - Curl 7.73.0 -- Git: 2.29.0 +- Git: 2.29.1 - Git LFS: 2.12.0 - GitHub CLI: 1.1.0 - Hub CLI: 2.14.2 @@ -63,10 +63,10 @@ - psql (PostgreSQL) 13.0 - PostgreSQL 13.0 - aria2 1.35.0 -- azcopy 10.6.0 +- azcopy 10.6.1 - zstd 1.4.5 - bazel 3.7.0 -- bazelisk 1.7.3 +- bazelisk 1.7.4 - helm v3.3.4+ga61ce56 - mongo v4.4.1 - mongod v4.4.1 @@ -74,13 +74,13 @@ - Newman 5.2.0 ### Tools -- Fastlane 2.164.0 +- Fastlane 2.165.0 - Cmake 3.18.4 - App Center CLI 2.7.2 - Azure CLI 2.13.0 -- AWS CLI 2.0.57 +- AWS CLI 2.0.59 - AWS SAM CLI 1.6.2 -- AWS Session Manager CLI 1.1.61.0 +- AWS Session Manager CLI 1.2.7.0 - Aliyun CLI 3.0.60 - GHCup v0.1.11 - GHC 8.10.2 @@ -94,24 +94,24 @@ ### Browsers - Safari 14.0.1 (16610.2.8.1.1) - SafariDriver 14.0.1 (16610.2.8.1.1) -- Google Chrome 86.0.4240.80 +- Google Chrome 86.0.4240.111 - ChromeDriver 86.0.4240.22 - Microsoft Edge 85.0.564.70 - MSEdgeDriver 85.0.564.70 -- Mozilla Firefox 81.0.2 +- Mozilla Firefox 82.0 - geckodriver 0.27.0 ### Java | Version | Vendor | Environment Variable | | --------- | ------------ | -------------------- | -| 1.8.0_265 | AdoptOpenJDK | JAVA_HOME_8_X64 | -| 11.0.8 | AdoptOpenJDK | JAVA_HOME_11_X64 | +| 1.8.0_272 | AdoptOpenJDK | JAVA_HOME_8_X64 | +| 11.0.9 | AdoptOpenJDK | JAVA_HOME_11_X64 | ### Cached Tools #### Ruby - 2.4.10 - 2.5.8 - 2.6.6 -- 2.7.1 +- 2.7.2 #### Python - 3.7.9 @@ -170,7 +170,6 @@ | Version | Build | Path | | -------------- | -------- | ---------------------------- | | 12.2 (beta) | 12B5035g | /Applications/Xcode_12.2.app | -| 12.1 | 12A7403 | /Applications/Xcode_12.1.app | | 11.7 (default) | 11E801a | /Applications/Xcode_11.7.app | #### Xcode Support Tools @@ -180,40 +179,31 @@ #### Installed SDKs | SDK | SDK Name | Xcode Version | | ----------------------- | -------------------- | ------------- | -| macOS 10.15 | macosx10.15 | 11.7, 12.1 | +| macOS 10.15 | macosx10.15 | 11.7 | | macOS 11.0 | macosx11.0 | 12.2 | | iOS 13.7 | iphoneos13.7 | 11.7 | -| iOS 14.1 | iphoneos14.1 | 12.1 | | iOS 14.2 | iphoneos14.2 | 12.2 | | Simulator - iOS 13.7 | iphonesimulator13.7 | 11.7 | -| Simulator - iOS 14.1 | iphonesimulator14.1 | 12.1 | | Simulator - iOS 14.2 | iphonesimulator14.2 | 12.2 | | tvOS 13.4 | appletvos13.4 | 11.7 | -| tvOS 14.0 | appletvos14.0 | 12.1 | | tvOS 14.2 | appletvos14.2 | 12.2 | | Simulator - tvOS 13.4 | appletvsimulator13.4 | 11.7 | -| Simulator - tvOS 14.0 | appletvsimulator14.0 | 12.1 | | Simulator - tvOS 14.2 | appletvsimulator14.2 | 12.2 | | watchOS 6.2 | watchos6.2 | 11.7 | -| watchOS 7.0 | watchos7.0 | 12.1 | | watchOS 7.1 | watchos7.1 | 12.2 | | Simulator - watchOS 6.2 | watchsimulator6.2 | 11.7 | -| Simulator - watchOS 7.0 | watchsimulator7.0 | 12.1 | | Simulator - watchOS 7.1 | watchsimulator7.1 | 12.2 | -| DriverKit 19.0 | driverkit.macosx19.0 | 11.7, 12.1 | +| DriverKit 19.0 | driverkit.macosx19.0 | 11.7 | | DriverKit 20.0 | driverkit.macosx20.0 | 12.2 | #### Installed Simulators | OS | Xcode Version | Simulators | | ----------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | iOS 13.7 | 11.7 | iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad Air (3rd generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) | -| iOS 14.1 | 12.1 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad (8th generation)
iPad Air (3rd generation)
iPad Air (4th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) | | iOS 14.2 | 12.2 | iPod touch (7th generation)
iPhone 11
iPhone 11 Pro
iPhone 11 Pro Max
iPhone 12
iPhone 12 mini
iPhone 12 Pro
iPhone 12 Pro Max
iPhone 8
iPhone 8 Plus
iPhone SE (2nd generation)
iPad (7th generation)
iPad (8th generation)
iPad Air (3rd generation)
iPad Air (4th generation)
iPad Pro (11-inch) (2nd generation)
iPad Pro (12.9-inch) (4th generation)
iPad Pro (9.7-inch) | | tvOS 13.4 | 11.7 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | -| tvOS 14.0 | 12.1 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | | tvOS 14.2 | 12.2 | Apple TV
Apple TV 4K
Apple TV 4K (at 1080p) | | watchOS 6.2 | 11.7 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm | -| watchOS 7.0 | 12.1 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm | | watchOS 7.1 | 12.2 | Apple Watch Series 4 - 40mm
Apple Watch Series 4 - 44mm
Apple Watch Series 5 - 40mm
Apple Watch Series 5 - 44mm
Apple Watch Series 6 - 40mm
Apple Watch Series 6 - 44mm | ### Android From b6e1216543414017858fd7aa91cf4272db8bdd75 Mon Sep 17 00:00:00 2001 From: Darii Nurgaleev <50947177+Darleev@users.noreply.github.com> Date: Tue, 27 Oct 2020 17:16:55 +0700 Subject: [PATCH 075/103] [ubuntu] Disable automatic updates to avoid apt lock issue. (#1761) * added shutdown-apt-service.sh script * added logging * added new status * shutdown service check * removed apy.daily from apt.sh * Another way to disable automatic updates; * fix deployment files. * enable retry logic for apt * add PowerShellGet installation before az modules * fixed a comment Co-authored-by: Leonid Lapshin --- images/linux/scripts/base/apt.sh | 12 +++++++++++- images/linux/scripts/installers/azpowershell.sh | 6 +++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/images/linux/scripts/base/apt.sh b/images/linux/scripts/base/apt.sh index 8afcbe8d..ff1a9271 100644 --- a/images/linux/scripts/base/apt.sh +++ b/images/linux/scripts/base/apt.sh @@ -3,11 +3,21 @@ export DEBIAN_FRONTEND=noninteractive apt-get -yq update apt-get -yq dist-upgrade -systemctl disable apt-daily.service + +# Stop and disable apt-daily upgrade services; +systemctl stop apt-daily.timer systemctl disable apt-daily.timer +systemctl disable apt-daily.service +systemctl stop apt-daily-upgrade.timer systemctl disable apt-daily-upgrade.timer systemctl disable apt-daily-upgrade.service +# This step should completely disable any automatic updates except manual +sudo sed -i 's/APT::Periodic::Update-Package-Lists "1"/APT::Periodic::Update-Package-Lists "0"/' /etc/apt/apt.conf.d/20auto-upgrades + +# Enable retry logic for apt up to 10 times +echo "APT::Acquire::Retries \"10\";" > /etc/apt/apt.conf.d/80-retries + # Configure apt to always assume Y echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/90assumeyes diff --git a/images/linux/scripts/installers/azpowershell.sh b/images/linux/scripts/installers/azpowershell.sh index a8488af7..47ac5ff3 100644 --- a/images/linux/scripts/installers/azpowershell.sh +++ b/images/linux/scripts/installers/azpowershell.sh @@ -15,9 +15,13 @@ else versions=$(jq -r '.azureModules[] | select(.name | contains("az")) | .versions[]' $toolset) fi +# Try to install and update PowerShellGet before the actual installation +pwsh -Command "Install-Module -Name PowerShellGet -Force" +pwsh -Command "Update-Module -Name PowerShellGet -Force" + # Install Azure CLI (instructions taken from https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) for version in ${versions[@]}; do - pwsh -Command "Save-Module -Name Az -LiteralPath /usr/share/az_$version -RequiredVersion $version -Force" + pwsh -Command "Save-Module -Name Az -LiteralPath /usr/share/az_$version -RequiredVersion $version -Force -Verbose" done # Run tests to determine that the software installed as expected From dd325a465c472ed319823fd4adbcca97d9039a11 Mon Sep 17 00:00:00 2001 From: Dibir Magomedsaygitov Date: Tue, 27 Oct 2020 17:14:56 +0300 Subject: [PATCH 076/103] clean yarn and npm cache --- images/win/scripts/Installers/Finalize-VM.ps1 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/images/win/scripts/Installers/Finalize-VM.ps1 b/images/win/scripts/Installers/Finalize-VM.ps1 index 4e7a260c..d0bb3d26 100644 --- a/images/win/scripts/Installers/Finalize-VM.ps1 +++ b/images/win/scripts/Installers/Finalize-VM.ps1 @@ -30,3 +30,7 @@ New-Item -Path $winInstallDir -ItemType Directory -Force # Remove AllUsersAllHosts profile Remove-Item $profile.AllUsersAllHosts -Force + +# Clean yarn and npm cache +yarn cache clean +npm cache clean --force \ No newline at end of file From 75112c44494939066cc3b793aa3bb99f2cde4335 Mon Sep 17 00:00:00 2001 From: Dibir Magomedsaygitov Date: Tue, 27 Oct 2020 17:24:59 +0300 Subject: [PATCH 077/103] clean yarn and npm cache --- images/linux/scripts/installers/post-deployment.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/images/linux/scripts/installers/post-deployment.sh b/images/linux/scripts/installers/post-deployment.sh index 95a2e2fa..d427a172 100644 --- a/images/linux/scripts/installers/post-deployment.sh +++ b/images/linux/scripts/installers/post-deployment.sh @@ -24,3 +24,7 @@ then echo "PATH = $PATH" exit 1 fi + +# Clean yarn and npm cache +yarn cache clean +npm cache clean --force \ No newline at end of file From 6a7cc6229f259b3eed5c6d7ba0572bec4d2ba71f Mon Sep 17 00:00:00 2001 From: Dibir Magomedsaygitov Date: Tue, 27 Oct 2020 17:54:16 +0300 Subject: [PATCH 078/103] clean yarn cache --- images/macos/provision/configuration/finalize-vm.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/images/macos/provision/configuration/finalize-vm.sh b/images/macos/provision/configuration/finalize-vm.sh index b6975139..c08da558 100644 --- a/images/macos/provision/configuration/finalize-vm.sh +++ b/images/macos/provision/configuration/finalize-vm.sh @@ -20,5 +20,8 @@ cp $HOME/image-generation/output/software-report/systeminfo.txt $HOME/image-gene # we have to do that here because `npm install` is run in a few different places during image-generation npm cache clean --force +# Clean yarn cache +yarn cache clean + # Clean up temporary directories -rm -rf ~/utils ~/image-generation \ No newline at end of file +rm -rf ~/utils ~/image-generation From 4e5143b7328a848bc29826d611666d6253741062 Mon Sep 17 00:00:00 2001 From: Dibir Magomedsaygitov Date: Tue, 27 Oct 2020 17:56:52 +0300 Subject: [PATCH 079/103] delete extra line --- images/macos/provision/configuration/finalize-vm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/macos/provision/configuration/finalize-vm.sh b/images/macos/provision/configuration/finalize-vm.sh index c08da558..b7cef4db 100644 --- a/images/macos/provision/configuration/finalize-vm.sh +++ b/images/macos/provision/configuration/finalize-vm.sh @@ -24,4 +24,4 @@ npm cache clean --force yarn cache clean # Clean up temporary directories -rm -rf ~/utils ~/image-generation +rm -rf ~/utils ~/image-generation \ No newline at end of file From d4973999576f7423cfdf80bdfe77a44c1ab3dc8e Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Tue, 27 Oct 2020 18:36:59 +0300 Subject: [PATCH 080/103] resolve comments --- images/macos/provision/configuration/finalize-vm.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/images/macos/provision/configuration/finalize-vm.sh b/images/macos/provision/configuration/finalize-vm.sh index 256a76c5..2b1967bc 100644 --- a/images/macos/provision/configuration/finalize-vm.sh +++ b/images/macos/provision/configuration/finalize-vm.sh @@ -17,9 +17,7 @@ fi cp $HOME/image-generation/output/software-report/systeminfo.txt $HOME/image-generation/output/software-report/systeminfo.md $HOME/ # Put build vm assets scripts to proper directory -sudo mkdir -p /usr/local/opt/$USER/scripts -sudo chmod ugo+rwx /usr/local/opt/$USER/scripts -sudo chown $USER:admin /usr/local/opt/$USER +mkdir -p /usr/local/opt/$USER/scripts mv $HOME/image-generation/assets/* /usr/local/opt/$USER/scripts find /usr/local/opt/$USER/scripts -type f -name "*\.sh" -exec chmod +x {} \; From 2ccffebdba2abdec17496035a26da07ad962bd9c Mon Sep 17 00:00:00 2001 From: Maxim Lobanov Date: Tue, 27 Oct 2020 18:52:40 +0300 Subject: [PATCH 081/103] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 99086a72..9456f0bc 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ For general questions about using the virtual environments or writing your Actio | Ubuntu 18.04 | `ubuntu-latest` or `ubuntu-18.04` | [ubuntu-18.04] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu18&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu18&redirect=1) | Ubuntu 16.04 | `ubuntu-16.04` | [ubuntu-16.04] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu16&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=ubuntu16&redirect=1) | | macOS 11.0 | `macos-11.0` | [macOS-11.0] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-11.0&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-11.0&redirect=1) -| macOS 10.15 | `macos-latest` or `macos-10.15` | [macOS-10.15] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macOS-10.15&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macOS-10.15&redirect=1) +| macOS 10.15 | `macos-latest` or `macos-10.15` | [macOS-10.15] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-10.15&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=macos-10.15&redirect=1) | Windows Server 2019 | `windows-latest` or `windows-2019` | [windows-2019] | [![](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2019&badge=1)](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&badge=1)](https://actionvirtualenvironmentsstatus.azurewebsites.net/api/status?imageName=windows-2016&redirect=1) ``` From 37d1fd3e1af0c8a9500f5fc31f7864e4657f34ab Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Wed, 28 Oct 2020 09:29:33 +0300 Subject: [PATCH 082/103] update base url --- images/win/scripts/Installers/Install-SQLPowerShellTools.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1 b/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1 index 60cbbefa..37f5ece9 100644 --- a/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1 +++ b/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1 @@ -3,7 +3,7 @@ ## Desc: Install SQL PowerShell tool ################################################################################ -$BaseUrl = "https://download.microsoft.com/download/8/7/2/872BCECA-C849-4B40-8EBE-21D48CDF1456/ENU/x64" +$BaseUrl = "https://download.microsoft.com/download/B/1/7/B1783FE9-717B-4F78-A39A-A2E27E3D679D/ENU/x64" # install required MSIs $SQLSysClrTypesName = "SQLSysClrTypes.msi" From 303f963f21b297f9fe8f0d07f0ceca7adf1cad55 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Wed, 28 Oct 2020 09:33:55 +0300 Subject: [PATCH 083/103] update base url --- images/win/scripts/Installers/Install-SQLPowerShellTools.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1 b/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1 index 60cbbefa..37f5ece9 100644 --- a/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1 +++ b/images/win/scripts/Installers/Install-SQLPowerShellTools.ps1 @@ -3,7 +3,7 @@ ## Desc: Install SQL PowerShell tool ################################################################################ -$BaseUrl = "https://download.microsoft.com/download/8/7/2/872BCECA-C849-4B40-8EBE-21D48CDF1456/ENU/x64" +$BaseUrl = "https://download.microsoft.com/download/B/1/7/B1783FE9-717B-4F78-A39A-A2E27E3D679D/ENU/x64" # install required MSIs $SQLSysClrTypesName = "SQLSysClrTypes.msi" From 3ef46361f35afc327cfad7d86bed53ef2eb4c00d Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Wed, 28 Oct 2020 09:41:57 +0300 Subject: [PATCH 084/103] update ssh-keyscan in msys2 script --- images/win/scripts/Installers/Install-Git.ps1 | 8 -------- images/win/scripts/Installers/Install-Msys2.ps1 | 9 ++++++++- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/images/win/scripts/Installers/Install-Git.ps1 b/images/win/scripts/Installers/Install-Git.ps1 index c7b2c457..6c89250e 100644 --- a/images/win/scripts/Installers/Install-Git.ps1 +++ b/images/win/scripts/Installers/Install-Git.ps1 @@ -36,13 +36,5 @@ Choco-Install -PackageName hub # Disable GCM machine-wide [Environment]::SetEnvironmentVariable("GCM_INTERACTIVE", "Never", [System.EnvironmentVariableTarget]::Machine) -if (Test-IsWin16) { - $env:Path += ";$env:ProgramFiles\Git\usr\bin\" -} - -# Add well-known SSH host keys to ssh_known_hosts -ssh-keyscan -t rsa github.com >> "C:\Program Files\Git\etc\ssh\ssh_known_hosts" -ssh-keyscan -t rsa ssh.dev.azure.com >> "C:\Program Files\Git\etc\ssh\ssh_known_hosts" - Invoke-PesterTests -TestFile "Git" -TestName "Git" Invoke-PesterTests -TestFile "CLI.Tools" -TestName "Hub CLI" diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 index 844c071b..dea3b95d 100644 --- a/images/win/scripts/Installers/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -84,8 +84,15 @@ $pathValue = Get-ItemPropertyValue -Path $regEnvKey -Name 'Path' $pathValue += ";C:\msys64\mingw64\bin;C:\msys64\usr\bin" Set-ItemProperty -Path $regEnvKey -Name 'Path' -Value $pathValue -# Add well-known SSH host keys to ssh_known_hosts +# Add well-known SSH host keys to ssh_known_hosts to Msys2 ssh-keyscan -t rsa github.com >> "C:\msys64\etc\ssh\ssh_known_hosts" ssh-keyscan -t rsa ssh.dev.azure.com >> "C:\msys64\etc\ssh\ssh_known_hosts" +# Add well-known SSH host keys to ssh_known_hosts to Git +if (Test-Path "C:\Program Files\Git\etc\ssh") +{ + ssh-keyscan -t rsa github.com >> "C:\Program Files\Git\etc\ssh\ssh_known_hosts" + ssh-keyscan -t rsa ssh.dev.azure.com >> "C:\Program Files\Git\etc\ssh\ssh_known_hosts" +} + Invoke-PesterTests -TestFile "MSYS2" From 3c77354cd5064d1ad8c3cb4b41648cf6bbb5648e Mon Sep 17 00:00:00 2001 From: Leonid Lapshin Date: Wed, 28 Oct 2020 17:58:15 +0300 Subject: [PATCH 085/103] [ubuntu] fix user on rust and brew scripts (#1907) * fix user on rust and brew scripts * set user on a factory stage * get last user from /etc/passwd Co-authored-by: Leonid Lapshin --- images/linux/post-generation/homebrew-permissions.sh | 7 +++++-- images/linux/post-generation/rust-permissions.sh | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/images/linux/post-generation/homebrew-permissions.sh b/images/linux/post-generation/homebrew-permissions.sh index 1dbd043e..edd15fb7 100644 --- a/images/linux/post-generation/homebrew-permissions.sh +++ b/images/linux/post-generation/homebrew-permissions.sh @@ -2,10 +2,13 @@ # Fix permissions for Homebrew # https://github.com/actions/virtual-environments/issues/1568 + brew_folder="/home/linuxbrew/" +homebrew_user=$(cut -d: -f1 /etc/passwd | tail -1) + if [ -d "$brew_folder" ]; then brew_folder_owner=$(ls -ld $brew_folder | awk '{print $3}') - if [ "$USER" != "$brew_folder_owner" ]; then - chown "$USER":docker -R $brew_folder + if [ "$homebrew_user" != "$brew_folder_owner" ]; then + chown "$homebrew_user":docker -R $brew_folder fi fi diff --git a/images/linux/post-generation/rust-permissions.sh b/images/linux/post-generation/rust-permissions.sh index 6673686b..aff56ca1 100644 --- a/images/linux/post-generation/rust-permissions.sh +++ b/images/linux/post-generation/rust-permissions.sh @@ -2,10 +2,13 @@ # Fix permissions for the Rust folder # https://github.com/actions/virtual-environments/issues/572 + rust_folder="/usr/share/rust" +rust_user=$(cut -d: -f1 /etc/passwd | tail -1) + if [ -d "$rust_folder" ]; then rust_folder_owner=$(ls -ld $rust_folder | awk '{print $3}') - if [ "$USER" != "$rust_folder_owner" ]; then - chown "$USER":docker -R $rust_folder + if [ "$rust_user" != "$rust_folder_owner" ]; then + chown "$rust_user":docker -R $rust_folder fi fi From 2ebe53b86dfe4ee7558bb9de969f0a4b8fb8a856 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 28 Oct 2020 19:01:39 +0000 Subject: [PATCH 086/103] Updating readme file for win16 version 20201020.1 (#1870) Co-authored-by: Image generation service account Co-authored-by: Actions service account --- images/win/Windows2016-Readme.md | 73 +++++++++++++++++--------------- 1 file changed, 38 insertions(+), 35 deletions(-) diff --git a/images/win/Windows2016-Readme.md b/images/win/Windows2016-Readme.md index f184b50a..05e7c2d6 100644 --- a/images/win/Windows2016-Readme.md +++ b/images/win/Windows2016-Readme.md @@ -1,10 +1,11 @@ | Announcements | |-| +| [[Ubuntu] [Windows] Boost 1.69.0 will be deprecated on November, 10](https://github.com/actions/virtual-environments/issues/1847) | | [[In Discussion] Git internal tools will be removed from PATH Windows images and replaced with MSYS2 tools](https://github.com/actions/virtual-environments/issues/1525) | *** # Microsoft Windows Server 2016 Datacenter -- OS Version: 10.0.14393 Build 3930 -- Image Version: 20201012.1 +- OS Version: 10.0.14393 Build 3986 +- Image Version: 20201020.1 ## Installed Software ### Language and Runtime @@ -14,7 +15,7 @@ - Java 13.0.2 - Python 3.7.9 - Ruby 2.5.8p224 -- Go 1.14.9 +- Go 1.14.10 - PHP 7.4.11 - Julia 1.5.2 - Perl 5.32.0 @@ -25,46 +26,46 @@ - Vcpkg 2020.06.15 - NPM 6.14.8 - Yarn 1.22.10 -- pip 20.2.3 (python 3.7) -- Miniconda 4.6.14 +- pip 20.2.4 (python 3.7) +- Miniconda 4.8.3 - RubyGems 3.1.4 - Helm 3.3.4 -- Composer 1.10.13 +- Composer 1.10.15 - NuGet 5.7.0.6726 ### Project Management - Ant 1.10.9 - Maven 3.6.3 -- Gradle 6.6 +- Gradle 6.7 - sbt 1.4.0 ### Tools - azcopy 10.6.0 -- Bazel 3.6.0 -- Bazelisk 1.7.1 +- Bazel 3.7.0 +- Bazelisk 1.7.3 - CMake 3.18.4 -- CodeQL Action Bundle 2.2.5 +- CodeQL Action Bundle 2.3.0 - R 4.0.3 - Docker 19.03.12 -- Docker-compose 1.27.2 -- Git 2.28.0 -- Git LFS 2.11.0 -- Google Cloud SDK 313.0.1 +- Docker-compose 1.27.4 +- Git 2.29.0 +- Git LFS 2.12.0 +- Google Cloud SDK 315.0.0 - InnoSetup 6.0.5 - jq 1.6 -- Kubectl 1.19.1 +- Kubectl 1.19.3 - Kind 0.9.0 - Mingw-w64 8.1.0 - Mercurial 5.0 - NSIS v3.06.1 - Newman 5.2.0 - OpenSSL 1.1.1 -- Packer 1.6.3 -- Pulumi v2.11.2 +- Packer 1.6.4 +- Pulumi v2.12.0 - Subversion (SVN) 1.14.0 - ghc 8.10.2 - Cabal 3.2.0.0 -- Stack 2.3.3 +- Stack 2.5.1 - WinAppDriver 1.1.1809.18001 - zstd 1.4.5 - VSWhere 2.8.4 @@ -72,12 +73,12 @@ - yamllint 1.25.0 ### CLI Tools -- Azure CLI 2.12.1 +- Azure CLI 2.13.0 - Azure DevOps CLI extension 0.18.0 - Azure Dev Spaces CLI 1.0.20200921.3 -- AWS CLI 2.0.56 +- AWS CLI 2.0.57 - AWS SAM CLI 1.6.2 -- AWS Session Manager CLI 1.1.61.0 +- AWS Session Manager CLI 1.2.7.0 - Alibaba Cloud CLI 3.0.60 - Cloud Foundry CLI 6.53.0 - Hub CLI 2.14.2 @@ -93,11 +94,11 @@ - cargo-outdated v0.9.11 ### Browsers and webdrivers -- Google Chrome 86.0.4240.75 +- Google Chrome 86.0.4240.111 - Chrome Driver 86.0.4240.22 -- Microsoft Edge 86.0.622.38 -- Microsoft Edge Driver 86.0.622.38 -- Mozilla Firefox 81.0.1 +- Microsoft Edge 86.0.622.48 +- Microsoft Edge Driver 86.0.622.48 +- Mozilla Firefox 82.0 - Gecko Driver 0.27.0 - IE Driver 3.150.1.0 @@ -137,8 +138,8 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | 1.11.13 | x64 | GOROOT_1_11_X64 | | 1.12.17 | x64 | GOROOT_1_12_X64 | | 1.13.15 | x64 | GOROOT_1_13_X64 | -| 1.14.9 (Default) | x64 | GOROOT_1_14_X64 | -| 1.15.2 | x64 | GOROOT_1_15_X64 | +| 1.14.10 (Default) | x64 | GOROOT_1_14_X64 | +| 1.15.3 | x64 | GOROOT_1_15_X64 | #### Node @@ -147,7 +148,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | 8.17.0 | x64 | | 10.22.1 | x64 | | 12.19.0 | x64 | -| 14.13.1 | x64 | +| 14.14.0 | x64 | #### Python @@ -158,6 +159,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | 3.6.8 | x64, x86 | | 3.7.9 (Default) | x64, x86 | | 3.8.6 | x64, x86 | +| 3.9.0 | x64, x86 | #### Ruby @@ -200,6 +202,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH. ### Database tools - Azure CosmosDb Emulator 2.11.6.0 +- DacFx 15.0.4897.1 - SQLPS 1.0 - MySQL 5.7.21.0 @@ -207,7 +210,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH. ### Visual Studio Enterprise 2017 | Name | Version | Path | | ----------------------------- | --------------- | -------------------------------------------------------------- | -| Visual Studio Enterprise 2017 | 15.9.28307.1259 | C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise | +| Visual Studio Enterprise 2017 | 15.9.28307.1274 | C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise | #### Workloads, components and extensions: @@ -476,20 +479,20 @@ Note: MSYS2 is pre-installed on image but not added to PATH. ### .NET Core SDK `Location C:\Program Files\dotnet\sdk` -- 1.1.14 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402 +- 1.1.14 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.519 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.616 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 2.1.811 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.109 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402 3.1.403 ### .NET Core Runtime `Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All` -- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 +- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 2.1.23 `Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App` -- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 +- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 2.1.23 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 `Location: C:\Program Files\dotnet\shared\Microsoft.NETCore.App` -- 1.0.16 1.1.13 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 +- 1.0.16 1.1.13 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 2.1.23 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 `Location: C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App` -- 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 +- 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 ### .NET Framework `Type: Developer Pack` @@ -518,7 +521,7 @@ All other versions are saved but not installed. | Pester | 3.4.0
5.0.4 | | PowerShellGet | 1.0.0.1
2.2.4.1
2.2.5 | | PSWindowsUpdate | 2.2.0.2 | -| SqlServer | 21.1.18228 | +| SqlServer | 21.1.18229 | | VSSetup | 2.2.16 | ### Android From aad7e0bb423b8a20029860ccbcd9df214218bab4 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Thu, 29 Oct 2020 11:07:26 +0300 Subject: [PATCH 087/103] macOS software update week45 --- images/macos/provision/core/openjdk.sh | 2 +- images/macos/provision/core/python.sh | 4 ---- images/macos/toolsets/toolset-10.15.json | 4 ++-- images/macos/toolsets/toolset-11.0.json | 2 +- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/images/macos/provision/core/openjdk.sh b/images/macos/provision/core/openjdk.sh index c2b22baf..afca628e 100644 --- a/images/macos/provision/core/openjdk.sh +++ b/images/macos/provision/core/openjdk.sh @@ -35,7 +35,7 @@ JAVA_DEFAULT=$(get_toolset_value '.java.default') for JAVA_VERSION in "${JAVA_VERSIONS_LIST[@]}" do if [[ $JAVA_VERSION == "7" ]]; then - installAzulJDK "https://cdn.azul.com/zulu/bin/zulu7.40.0.15-ca-jdk7.0.272-macosx_x64.dmg" + installAzulJDK "https://cdn.azul.com/zulu/bin/zulu7.42.0.13-ca-jdk7.0.282-macosx_x64.dmg" else brew cask install "adoptopenjdk${JAVA_VERSION}" fi diff --git a/images/macos/provision/core/python.sh b/images/macos/provision/core/python.sh index 62922053..7dafd273 100755 --- a/images/macos/provision/core/python.sh +++ b/images/macos/provision/core/python.sh @@ -6,11 +6,7 @@ echo "Installing Python Tooling" echo "Brew Installing Python 3" # Workaround to have both 3.8 & 3.9(which required by some brew formulas) in the system, but only 3.8 is linked -brew install python@3.8 brew install python@3.9 -brew unlink python@3.9 -brew unlink python@3.8 -brew link python@3.8 echo "Brew Installing Python 2" # Create local tap with formula due to python2 formula depreciation diff --git a/images/macos/toolsets/toolset-10.15.json b/images/macos/toolsets/toolset-10.15.json index e041c15e..41fc166a 100644 --- a/images/macos/toolsets/toolset-10.15.json +++ b/images/macos/toolsets/toolset-10.15.json @@ -2,7 +2,7 @@ "xcode": { "default": "12", "versions": [ - "12.2_beta", "12.1_GM_seed", "12", "11.7", "11.6", "11.5", "11.4.1", "11.4", "11.3.1", "11.2.1", "11.1", "11", "10.3" + "12.2_beta", "12.1", "12", "11.7", "11.6", "11.5", "11.4.1", "11.4", "11.3.1", "11.2.1", "11.1", "11", "10.3" ] }, "xamarin": { @@ -11,7 +11,7 @@ "6.12.0.93", "6.10.0.106", "6.8.0.123", "6.6.0.166", "6.4.0.208" ], "ios-versions": [ - "14.0.0.0", "13.20.2.2", "13.18.2.1", "13.16.0.13", "13.14.1.39", "13.10.0.21", "13.8.3.0", "13.6.0.12", "13.4.0.2", "13.2.0.47" + "14.2.0.12", "13.20.2.2", "13.18.2.1", "13.16.0.13", "13.14.1.39", "13.10.0.21", "13.8.3.0", "13.6.0.12", "13.4.0.2", "13.2.0.47" ], "mac-versions": [ "6.20.2.2", "6.18.3.2", "6.16.0.13", "6.14.1.39", "6.10.0.21", "6.8.3.0", "6.6.0.12", "6.4.0.2", "6.2.0.47" diff --git a/images/macos/toolsets/toolset-11.0.json b/images/macos/toolsets/toolset-11.0.json index cb14b3a0..0d85f142 100644 --- a/images/macos/toolsets/toolset-11.0.json +++ b/images/macos/toolsets/toolset-11.0.json @@ -11,7 +11,7 @@ "6.12.0.93" ], "ios-versions": [ - "14.0.0.0", "13.20.2.2" + "14.2.0.12", "13.20.2.2" ], "mac-versions": [ "6.20.2.2" From 3c6b9c2a86f4e859441098971b5f440352a25d03 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Thu, 29 Oct 2020 11:17:57 +0300 Subject: [PATCH 088/103] fix shebang pipx-packages.sh --- images/macos/provision/core/pipx-packages.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/images/macos/provision/core/pipx-packages.sh b/images/macos/provision/core/pipx-packages.sh index 658600fa..47de190f 100644 --- a/images/macos/provision/core/pipx-packages.sh +++ b/images/macos/provision/core/pipx-packages.sh @@ -1,3 +1,4 @@ +#!/bin/bash -e -o pipefail source ~/utils/utils.sh export PATH="$PATH:/opt/pipx_bin" From 45a3f22ba984e230a18ff46ee269d95a13cf43e0 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Thu, 29 Oct 2020 11:20:29 +0300 Subject: [PATCH 089/103] fix shebang select-xamarin-sdk.sh --- images/macos/provision/assets/select-xamarin-sdk.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/macos/provision/assets/select-xamarin-sdk.sh b/images/macos/provision/assets/select-xamarin-sdk.sh index 45adc969..0fb4a343 100644 --- a/images/macos/provision/assets/select-xamarin-sdk.sh +++ b/images/macos/provision/assets/select-xamarin-sdk.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e -o pipefail if [ -z "$1" ]; then echo "No Xamarin SDK specified." exit 0 From 15ddb9d5da2c7a34a79ef3fadf893bc5edab49fb Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Thu, 29 Oct 2020 11:28:42 +0300 Subject: [PATCH 090/103] revert ios 14.0.0.0 --- images/macos/toolsets/toolset-10.15.json | 2 +- images/macos/toolsets/toolset-11.0.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/images/macos/toolsets/toolset-10.15.json b/images/macos/toolsets/toolset-10.15.json index 41fc166a..52f5d135 100644 --- a/images/macos/toolsets/toolset-10.15.json +++ b/images/macos/toolsets/toolset-10.15.json @@ -11,7 +11,7 @@ "6.12.0.93", "6.10.0.106", "6.8.0.123", "6.6.0.166", "6.4.0.208" ], "ios-versions": [ - "14.2.0.12", "13.20.2.2", "13.18.2.1", "13.16.0.13", "13.14.1.39", "13.10.0.21", "13.8.3.0", "13.6.0.12", "13.4.0.2", "13.2.0.47" + "14.2.0.12", "14.0.0.0", "13.20.2.2", "13.18.2.1", "13.16.0.13", "13.14.1.39", "13.10.0.21", "13.8.3.0", "13.6.0.12", "13.4.0.2", "13.2.0.47" ], "mac-versions": [ "6.20.2.2", "6.18.3.2", "6.16.0.13", "6.14.1.39", "6.10.0.21", "6.8.3.0", "6.6.0.12", "6.4.0.2", "6.2.0.47" diff --git a/images/macos/toolsets/toolset-11.0.json b/images/macos/toolsets/toolset-11.0.json index 0d85f142..0fc950ec 100644 --- a/images/macos/toolsets/toolset-11.0.json +++ b/images/macos/toolsets/toolset-11.0.json @@ -11,7 +11,7 @@ "6.12.0.93" ], "ios-versions": [ - "14.2.0.12", "13.20.2.2" + "14.2.0.12", "14.0.0.0", "13.20.2.2" ], "mac-versions": [ "6.20.2.2" From 2d9bef6d16975ccce42e0bfdaeaf708d2cb11c3b Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Thu, 29 Oct 2020 11:35:16 +0300 Subject: [PATCH 091/103] add 6_12_2 bundle --- images/macos/toolsets/toolset-10.15.json | 7 +++++++ images/macos/toolsets/toolset-11.0.json | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/images/macos/toolsets/toolset-10.15.json b/images/macos/toolsets/toolset-10.15.json index 52f5d135..9428525b 100644 --- a/images/macos/toolsets/toolset-10.15.json +++ b/images/macos/toolsets/toolset-10.15.json @@ -21,6 +21,13 @@ ], "bundle-default": "latest", "bundles": [ + { + "symlink": "6_12_2", + "mono":"6.12", + "ios": "14.2", + "mac": "6.20", + "android": "11.0" + }, { "symlink": "6_12_1", "mono":"6.12", diff --git a/images/macos/toolsets/toolset-11.0.json b/images/macos/toolsets/toolset-11.0.json index 0fc950ec..c05de28c 100644 --- a/images/macos/toolsets/toolset-11.0.json +++ b/images/macos/toolsets/toolset-11.0.json @@ -21,6 +21,13 @@ ], "bundle-default": "6_12_0", "bundles": [ + { + "symlink": "6_12_2", + "mono":"6.12", + "ios": "14.2", + "mac": "6.20", + "android": "11.0" + }, { "symlink": "6_12_1", "mono":"6.12", From 8af39dcd65d4d9382bd9dfe5dfa724e0f099403f Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Thu, 29 Oct 2020 11:52:03 +0300 Subject: [PATCH 092/103] set default bundle as 6_12_1 --- images/macos/toolsets/toolset-10.15.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/macos/toolsets/toolset-10.15.json b/images/macos/toolsets/toolset-10.15.json index 9428525b..229ccc79 100644 --- a/images/macos/toolsets/toolset-10.15.json +++ b/images/macos/toolsets/toolset-10.15.json @@ -19,7 +19,7 @@ "android-versions": [ "11.0.2.0", "10.3.1.4", "10.2.0.100", "10.1.3.7", "10.0.6.2" ], - "bundle-default": "latest", + "bundle-default": "6_12_1", "bundles": [ { "symlink": "6_12_2", From 6c805cf762734571488d1986a14dded7a54c55ac Mon Sep 17 00:00:00 2001 From: Alena Sviridenko Date: Thu, 29 Oct 2020 13:57:04 +0300 Subject: [PATCH 093/103] added announcement template (#1931) --- .github/ISSUE_TEMPLATE/announcement.md | 34 ++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/announcement.md diff --git a/.github/ISSUE_TEMPLATE/announcement.md b/.github/ISSUE_TEMPLATE/announcement.md new file mode 100644 index 00000000..0d501f6f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/announcement.md @@ -0,0 +1,34 @@ +--- +name: Announcement +about: Submit an announcement +title: '' +labels: Announcement +assignees: '' + +--- + +**Breaking changes** + + +**Target date** + + +**The motivation for the changes** + + +**Possible impact** + + +**Virtual environments affected** +- [ ] Ubuntu 16.04 +- [ ] Ubuntu 18.04 +- [ ] Ubuntu 20.04 +- [ ] macOS 10.13 +- [ ] macOS 10.14 +- [ ] macOS 10.15 +- [ ] macOS 11.0 +- [ ] Windows Server 2016 R2 +- [ ] Windows Server 2019 + +**Mitigation ways** + From 293e084b48ae3eeaa1b04a522bc00bbcff3d3823 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 29 Oct 2020 11:05:22 +0000 Subject: [PATCH 094/103] Updating readme file for win19 version 20201021.0 (#1875) Co-authored-by: Image generation service account Co-authored-by: Actions service account --- images/win/Windows2019-Readme.md | 87 +++++++++++++++++--------------- 1 file changed, 45 insertions(+), 42 deletions(-) diff --git a/images/win/Windows2019-Readme.md b/images/win/Windows2019-Readme.md index a153b8d4..0f79ae55 100644 --- a/images/win/Windows2019-Readme.md +++ b/images/win/Windows2019-Readme.md @@ -1,10 +1,11 @@ | Announcements | |-| +| [[Ubuntu] [Windows] Boost 1.69.0 will be deprecated on November, 10](https://github.com/actions/virtual-environments/issues/1847) | | [[In Discussion] Git internal tools will be removed from PATH Windows images and replaced with MSYS2 tools](https://github.com/actions/virtual-environments/issues/1525) | *** # Microsoft Windows Server 2019 Datacenter -- OS Version: 10.0.17763 Build 1457 -- Image Version: 20201011.1 +- OS Version: 10.0.17763 Build 1518 +- Image Version: 20201021.0 ## Enabled windows optional features - Windows Subsystem for Linux @@ -17,7 +18,7 @@ - Java 13.0.2 - Python 3.7.9 - Ruby 2.5.8p224 -- Go 1.14.9 +- Go 1.14.10 - PHP 7.4.11 - Julia 1.5.2 - Perl 5.32.0 @@ -28,46 +29,46 @@ - Vcpkg 2020.06.15 - NPM 6.14.8 - Yarn 1.22.10 -- pip 20.2.3 (python 3.7) -- Miniconda 4.6.14 +- pip 20.2.4 (python 3.7) +- Miniconda 4.8.3 - RubyGems 3.1.4 - Helm 3.3.4 -- Composer 1.10.13 +- Composer 1.10.15 - NuGet 5.7.0.6726 ### Project Management - Ant 1.10.9 - Maven 3.6.3 -- Gradle 6.6 -- sbt 1.4.0 +- Gradle 6.7 +- sbt 1.4.1 ### Tools - azcopy 10.6.0 -- Bazel 3.6.0 -- Bazelisk 1.7.1 +- Bazel 3.7.0 +- Bazelisk 1.7.3 - CMake 3.18.4 -- CodeQL Action Bundle 2.2.5 +- CodeQL Action Bundle 2.3.0 - R 4.0.3 - Docker 19.03.12 -- Docker-compose 1.27.2 -- Git 2.28.0 -- Git LFS 2.11.0 -- Google Cloud SDK 313.0.1 +- Docker-compose 1.27.4 +- Git 2.29.0 +- Git LFS 2.12.0 +- Google Cloud SDK 315.0.0 - InnoSetup 6.0.5 - jq 1.6 -- Kubectl 1.19.1 +- Kubectl 1.19.3 - Kind 0.9.0 - Mingw-w64 8.1.0 - Mercurial 5.0 - NSIS v3.06.1 - Newman 5.2.0 - OpenSSL 1.1.1 -- Packer 1.6.3 -- Pulumi v2.11.2 +- Packer 1.6.4 +- Pulumi v2.12.0 - Subversion (SVN) 1.14.0 - ghc 8.10.2 - Cabal 3.2.0.0 -- Stack 2.3.3 +- Stack 2.5.1 - WinAppDriver 1.1.1809.18001 - zstd 1.4.5 - VSWhere 2.8.4 @@ -75,12 +76,12 @@ - yamllint 1.25.0 ### CLI Tools -- Azure CLI 2.12.1 +- Azure CLI 2.13.0 - Azure DevOps CLI extension 0.18.0 - Azure Dev Spaces CLI 1.0.20200921.3 -- AWS CLI 2.0.56 +- AWS CLI 2.0.58 - AWS SAM CLI 1.6.2 -- AWS Session Manager CLI 1.1.61.0 +- AWS Session Manager CLI 1.2.7.0 - Alibaba Cloud CLI 3.0.60 - Cloud Foundry CLI 6.53.0 - Hub CLI 2.14.2 @@ -96,11 +97,11 @@ - cargo-outdated v0.9.11 ### Browsers and webdrivers -- Google Chrome 86.0.4240.75 +- Google Chrome 86.0.4240.111 - Chrome Driver 86.0.4240.22 -- Microsoft Edge 86.0.622.38 -- Microsoft Edge Driver 86.0.622.38 -- Mozilla Firefox 81.0.1 +- Microsoft Edge 86.0.622.48 +- Microsoft Edge Driver 86.0.622.48 +- Mozilla Firefox 82.0 - Gecko Driver 0.27.0 - IE Driver 3.150.1.0 @@ -140,8 +141,8 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | 1.11.13 | x64 | GOROOT_1_11_X64 | | 1.12.17 | x64 | GOROOT_1_12_X64 | | 1.13.15 | x64 | GOROOT_1_13_X64 | -| 1.14.9 (Default) | x64 | GOROOT_1_14_X64 | -| 1.15.2 | x64 | GOROOT_1_15_X64 | +| 1.14.10 (Default) | x64 | GOROOT_1_14_X64 | +| 1.15.3 | x64 | GOROOT_1_15_X64 | #### Node @@ -150,7 +151,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | 8.17.0 | x64 | | 10.22.1 | x64 | | 12.19.0 | x64 | -| 14.13.1 | x64 | +| 14.14.0 | x64 | #### Python @@ -161,6 +162,7 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | 3.6.8 | x64, x86 | | 3.7.9 (Default) | x64, x86 | | 3.8.6 | x64, x86 | +| 3.9.0 | x64, x86 | #### Ruby @@ -203,20 +205,21 @@ Note: MSYS2 is pre-installed on image but not added to PATH. ### Database tools - Azure CosmosDb Emulator 2.11.6.0 +- DacFx 15.0.4897.1 - SQLPS 1.0 - MySQL 5.7.21.0 ### Visual Studio Enterprise 2019 -| Name | Version | Path | -| ----------------------------- | -------------- | -------------------------------------------------------------- | -| Visual Studio Enterprise 2019 | 16.7.30523.141 | C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise | +| Name | Version | Path | +| ----------------------------- | ------------- | -------------------------------------------------------------- | +| Visual Studio Enterprise 2019 | 16.7.30611.23 | C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise | #### Workloads, components and extensions: | Package | Version | | ------------------------------------------------------------------------- | -------------- | -| Component.Android.NDK.R16B | 16.7.30521.138 | +| Component.Android.NDK.R16B | 16.7.30611.6 | | Component.Android.SDK25.Private | 16.0.28625.61 | | Component.Android.SDK28 | 16.2.29003.222 | | Component.Ant | 1.9.3.8 | @@ -268,10 +271,10 @@ Note: MSYS2 is pre-installed on image but not added to PATH. | Microsoft.Net.ComponentGroup.4.7.DeveloperTools | 16.3.29207.166 | | Microsoft.Net.ComponentGroup.DevelopmentPrerequisites | 16.3.29207.166 | | Microsoft.Net.ComponentGroup.TargetingPacks.Common | 16.0.28516.191 | -| Microsoft.Net.Core.Component.SDK.2.1 | 16.7.30428.286 | +| Microsoft.Net.Core.Component.SDK.2.1 | 16.7.30611.6 | | Microsoft.NetCore.Component.DevelopmentTools | 16.5.29721.120 | -| Microsoft.NetCore.Component.Runtime.3.1 | 16.7.30428.286 | -| Microsoft.NetCore.Component.SDK | 16.7.30428.286 | +| Microsoft.NetCore.Component.Runtime.3.1 | 16.7.30611.6 | +| Microsoft.NetCore.Component.SDK | 16.7.30611.6 | | Microsoft.NetCore.Component.Web | 16.5.29721.120 | | Microsoft.VisualStudio.Component.AppInsights.Tools | 16.5.29515.121 | | Microsoft.VisualStudio.Component.AspNet45 | 16.0.28315.86 | @@ -459,20 +462,20 @@ Note: MSYS2 is pre-installed on image but not added to PATH. ### .NET Core SDK `Location C:\Program Files\dotnet\sdk` -- 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402 +- 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.508 2.1.509 2.1.510 2.1.511 2.1.512 2.1.513 2.1.514 2.1.515 2.1.516 2.1.517 2.1.518 2.1.519 2.1.602 2.1.603 2.1.604 2.1.605 2.1.606 2.1.607 2.1.608 2.1.609 2.1.610 2.1.611 2.1.612 2.1.613 2.1.614 2.1.615 2.1.616 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 2.1.811 3.1.100 3.1.101 3.1.102 3.1.103 3.1.104 3.1.105 3.1.106 3.1.107 3.1.108 3.1.109 3.1.200 3.1.201 3.1.202 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402 3.1.403 ### .NET Core Runtime `Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All` -- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 +- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 2.1.23 `Location: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App` -- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 +- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 2.1.23 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 `Location: C:\Program Files\dotnet\shared\Microsoft.NETCore.App` -- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 +- 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 2.1.20 2.1.21 2.1.22 2.1.23 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 `Location: C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App` -- 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 +- 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 ### .NET Framework `Type: Developer Pack` @@ -501,7 +504,7 @@ All other versions are saved but not installed. | Pester | 3.4.0
5.0.4 | | PowerShellGet | 1.0.0.1
2.2.4.1
2.2.5 | | PSWindowsUpdate | 2.2.0.2 | -| SqlServer | 21.1.18228 | +| SqlServer | 21.1.18229 | | VSSetup | 2.2.16 | ### Android From baebd6c1097a6c243d9d0ff1f68b298d092d4e1d Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Thu, 29 Oct 2020 16:42:28 +0300 Subject: [PATCH 095/103] python link flag --force --- images/macos/provision/core/python.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/images/macos/provision/core/python.sh b/images/macos/provision/core/python.sh index 7dafd273..da049319 100755 --- a/images/macos/provision/core/python.sh +++ b/images/macos/provision/core/python.sh @@ -6,7 +6,11 @@ echo "Installing Python Tooling" echo "Brew Installing Python 3" # Workaround to have both 3.8 & 3.9(which required by some brew formulas) in the system, but only 3.8 is linked +brew install python@3.8 brew install python@3.9 +brew unlink python@3.9 +brew unlink python@3.8 +brew link python@3.8 --force echo "Brew Installing Python 2" # Create local tap with formula due to python2 formula depreciation From 26134ef1b76add52d2d6829a5e6dd26b47b966d1 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Thu, 29 Oct 2020 16:43:44 +0300 Subject: [PATCH 096/103] remove python unlink --- images/macos/provision/core/python.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/images/macos/provision/core/python.sh b/images/macos/provision/core/python.sh index da049319..37065e90 100755 --- a/images/macos/provision/core/python.sh +++ b/images/macos/provision/core/python.sh @@ -8,8 +8,6 @@ echo "Brew Installing Python 3" # Workaround to have both 3.8 & 3.9(which required by some brew formulas) in the system, but only 3.8 is linked brew install python@3.8 brew install python@3.9 -brew unlink python@3.9 -brew unlink python@3.8 brew link python@3.8 --force echo "Brew Installing Python 2" From 2f92fe32b81c5d97c122eaff566335536b75c605 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 29 Oct 2020 15:02:43 +0000 Subject: [PATCH 097/103] Updating readme file for ubuntu16 version 20201026.1 (#1899) Co-authored-by: Image generation service account Co-authored-by: Actions service account --- images/linux/Ubuntu1604-README.md | 44 ++++++++++++++++--------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/images/linux/Ubuntu1604-README.md b/images/linux/Ubuntu1604-README.md index b4513e8b..c06b5d7b 100644 --- a/images/linux/Ubuntu1604-README.md +++ b/images/linux/Ubuntu1604-README.md @@ -1,10 +1,11 @@ | Announcements | |-| +| [.NET 5.0 will become a default .NET version on November, 10](https://github.com/actions/virtual-environments/issues/1891) | +| [[Ubuntu] [Windows] Boost 1.69.0 will be deprecated on November, 10](https://github.com/actions/virtual-environments/issues/1847) | | [Ubuntu-latest workflows will use Ubuntu-20.04](https://github.com/actions/virtual-environments/issues/1816) | -| [Obsolete Android build-tools packages will be removed from Ubuntu images on October, 20](https://github.com/actions/virtual-environments/issues/1743) | *** # Ubuntu 16.04.7 LTS -- Image Version: 20201015.1 +- Image Version: 20201026.1 ## Installed Software ### Language and Runtime @@ -36,27 +37,28 @@ - Ant 1.9.6 - Gradle 6.7 - Maven 3.6.3 -- Sbt 1.4.0 +- Sbt 1.4.1 ### Tools - 7-Zip 9.20 - Ansible 2.9.14 -- AzCopy10 10.6.0 (available by `azcopy10` alias) +- apt-fast 1.9.10 +- AzCopy10 10.6.1 (available by `azcopy10` alias) - AzCopy7 7.3.0 (available by `azcopy` alias) -- Bazel 3.6.0 -- Bazelisk 1.7.2 +- Bazel 3.7.0 +- Bazelisk 1.7.3 - CMake 3.17.0 - CodeQL Action Bundle 2.3.0 - curl 7.47.0 - Docker Compose 1.27.4 - Docker-Buildx 0.4.2 - Docker-Moby 19.03.13 -- Git 2.28.0 +- Git 2.29.0 - Git LFS 2.12.0 - Git-ftp 1.0.2 -- Google Cloud SDK 314.0.0 +- Google Cloud SDK 315.0.0 - Haveged 1.9.1 -- Heroku 7.46.0 +- Heroku 7.46.2 - HHVM (HipHop VM) 4.56.1 - jq 1.5 - Kind 0.9.0 @@ -65,17 +67,17 @@ - Leiningen 2.9.4 - m4 1.4.17 - Mercurial 4.4.1 -- Minikube 1.14.0 +- Minikube 1.14.1 - Newman 5.2.0 - nvm 0.36.0 - Packer 1.6.4 - PhantomJS 2.1.1 -- Pulumi 2.12.0 +- Pulumi 2.12.1 - R 4.0.3 - Sphinx Open Source Search Server 2.2.9 - SVN 1.9.3 - Swig 3.0.8 -- Terraform 0.13.4 +- Terraform 0.13.5 - unzip 6.00 - wget 1.17.1 - yamllint 1.2.1 @@ -84,14 +86,14 @@ ### CLI Tools - Alibaba Cloud CLI 3.0.60 -- AWS CLI 1.18.158 +- AWS CLI 1.18.164 - AWS CLI Session manager plugin 1.2.7.0 - AWS SAM CLI 1.6.2 - Azure CLI (azure-cli) 2.13.0 - Azure CLI (azure-devops) 0.18.0 - GitHub CLI 1.1.0 - Hub CLI 2.14.2 -- Netlify CLI 2.65.6 +- Netlify CLI 2.65.7 - oc CLI 4.5.0 - ORAS CLI 0.8.1 - Vercel CLI 20.1.2 @@ -99,16 +101,16 @@ ### Java | Version | Vendor | Environment Variable | | ------------------- | ------------ | -------------------- | -| 1.7.0_272 | Zulu | JAVA_HOME_7_X64 | -| 1.8.0_265 (default) | AdoptOpenJDK | JAVA_HOME_8_X64 | -| 11.0.8 | AdoptOpenJDK | JAVA_HOME_11_X64 | +| 1.7.0_282 | Zulu | JAVA_HOME_7_X64 | +| 1.8.0_272 (default) | AdoptOpenJDK | JAVA_HOME_8_X64 | +| 11.0.9 | AdoptOpenJDK | JAVA_HOME_11_X64 | | 12.0.2 | AdoptOpenJDK | JAVA_HOME_12_X64 | ### PHP | Tool | Version | | -------- | ----------------------------------------- | | PHP | 5.6.40 7.0.33 7.1.33 7.2.34 7.3.23 7.4.11 | -| Composer | 1.10.15 | +| Composer | 2.0.2 | | PHPUnit | 7.5.20 | ### Haskell @@ -131,7 +133,7 @@ - Rustfmt 1.4.20 ### Browsers and Drivers -- Google Chrome 86.0.4240.75 +- Google Chrome 86.0.4240.111 - ChromeDriver 86.0.4240.22 - Mozilla Firefox 81.0.2 - Geckodriver 0.27.0 @@ -160,7 +162,7 @@ - 2.4.10 - 2.5.8 - 2.6.6 -- 2.7.1 +- 2.7.2 #### Python - 2.7.18 @@ -178,7 +180,7 @@ - 8.17.0 - 10.22.1 - 12.19.0 -- 14.13.1 +- 14.14.0 #### Go - 1.11.13 From 5adf802f77253689b3030f7a12f06137c487c24d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 29 Oct 2020 15:04:25 +0000 Subject: [PATCH 098/103] Updating readme file for ubuntu20 version 20201026.1 (#1901) Co-authored-by: Image generation service account Co-authored-by: Actions service account --- images/linux/Ubuntu2004-README.md | 52 ++++++++++++++++--------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/images/linux/Ubuntu2004-README.md b/images/linux/Ubuntu2004-README.md index b192a23a..cd5aa841 100644 --- a/images/linux/Ubuntu2004-README.md +++ b/images/linux/Ubuntu2004-README.md @@ -1,10 +1,11 @@ | Announcements | |-| +| [.NET 5.0 will become a default .NET version on November, 10](https://github.com/actions/virtual-environments/issues/1891) | +| [[Ubuntu] [Windows] Boost 1.69.0 will be deprecated on November, 10](https://github.com/actions/virtual-environments/issues/1847) | | [Ubuntu-latest workflows will use Ubuntu-20.04](https://github.com/actions/virtual-environments/issues/1816) | -| [Obsolete Android build-tools packages will be removed from Ubuntu images on October, 20](https://github.com/actions/virtual-environments/issues/1743) | *** # Ubuntu 20.04.1 LTS -- Image Version: 20201015.1 +- Image Version: 20201026.1 ## Installed Software ### Language and Runtime @@ -29,7 +30,7 @@ - Npm 6.14.8 - Pip 20.0.2 - Pip3 20.0.2 -- Pipx 0.15.5.1 +- Pipx 0.15.6.0 - Vcpkg 2020.06.15 - Yarn 1.22.5 @@ -37,15 +38,16 @@ - Ant 1.10.7 - Gradle 6.7 - Maven 3.6.3 -- Sbt 1.4.0 +- Sbt 1.4.1 ### Tools - 7-Zip 16.02 - Ansible 2.9.6 -- AzCopy10 10.6.0 (available by `azcopy10` alias) +- apt-fast 1.9.10 +- AzCopy10 10.6.1 (available by `azcopy10` alias) - AzCopy7 7.3.0 (available by `azcopy` alias) -- Bazel 3.6.0 -- Bazelisk 1.7.2 +- Bazel 3.7.0 +- Bazelisk 1.7.3 - Buildah 1.16.4 - CMake 3.17.0 - CodeQL Action Bundle 2.3.0 @@ -53,13 +55,13 @@ - Docker Compose 1.27.4 - Docker-Buildx 0.4.2 - Docker-Moby 19.03.13 -- Git 2.28.0 +- Git 2.29.0 - Git LFS 2.12.0 - Git-ftp 1.6.0 -- Google Cloud SDK 314.0.0 +- Google Cloud SDK 315.0.0 - Haveged 1.9.1 -- Heroku 7.46.0 -- HHVM (HipHop VM) 4.79.0 +- Heroku 7.46.2 +- HHVM (HipHop VM) 4.80.0 - jq 1.6 - Kind 0.9.0 - Kubectl 1.19.3 @@ -67,19 +69,19 @@ - Leiningen 2.9.4 - m4 1.4.18 - Mercurial 5.3.1 -- Minikube 1.14.0 +- Minikube 1.14.1 - Newman 5.2.0 - nvm 0.36.0 - Packer 1.6.4 - PhantomJS 2.1.1 - Podman 2.1.1 -- Pulumi 2.12.0 +- Pulumi 2.12.1 - R 4.0.3 - Skopeo 1.2.0 - Sphinx Open Source Search Server 2.2.11 - SVN 1.13.0 - Swig 4.0.1 -- Terraform 0.13.4 +- Terraform 0.13.5 - unzip 6.00 - wget 1.20.3 - yamllint 1.25.0 @@ -88,14 +90,14 @@ ### CLI Tools - Alibaba Cloud CLI 3.0.60 -- AWS CLI 2.0.56 -- AWS CLI Session manager plugin 1.1.61.0 +- AWS CLI 2.0.59 +- AWS CLI Session manager plugin 1.2.7.0 - AWS SAM CLI 1.6.2 - Azure CLI (azure-cli) 2.13.0 - Azure CLI (azure-devops) 0.18.0 - GitHub CLI 1.1.0 - Hub CLI 2.14.2 -- Netlify CLI 2.65.5 +- Netlify CLI 2.65.7 - oc CLI 4.5.0 - ORAS CLI 0.8.1 - Vercel CLI 20.1.2 @@ -103,20 +105,20 @@ ### Java | Version | Vendor | Environment Variable | | ---------------- | ------------ | -------------------- | -| 1.8.0_265 | AdoptOpenJDK | JAVA_HOME_8_X64 | -| 11.0.8 (default) | AdoptOpenJDK | JAVA_HOME_11_X64 | +| 1.8.0_272 | AdoptOpenJDK | JAVA_HOME_8_X64 | +| 11.0.9 (default) | AdoptOpenJDK | JAVA_HOME_11_X64 | ### PHP | Tool | Version | | -------- | ------- | | PHP | 7.4.11 | -| Composer | 1.10.15 | +| Composer | 2.0.2 | | PHPUnit | 7.5.20 | ### Haskell - GHC 8.10.2 - Cabal 3.4.0.0 -- Stack 2.3.3 +- Stack 2.5.1 ### Rust Tools - Rust 1.47.0 @@ -133,9 +135,9 @@ - Rustfmt 1.4.20 ### Browsers and Drivers -- Google Chrome 86.0.4240.75 +- Google Chrome 86.0.4240.111 - ChromeDriver 86.0.4240.22 -- Mozilla Firefox 81.0 +- Mozilla Firefox 82.0 - Geckodriver 0.27.0 ### .NET Core SDK @@ -161,7 +163,7 @@ #### Ruby - 2.5.8 - 2.6.6 -- 2.7.1 +- 2.7.2 #### Python - 2.7.18 @@ -179,7 +181,7 @@ - 8.17.0 - 10.22.1 - 12.19.0 -- 14.13.1 +- 14.14.0 #### Go - 1.14.10 From ff71699425c7ea6a1ce01230c159c01cfaf716e8 Mon Sep 17 00:00:00 2001 From: Aleksandr Chebotov Date: Thu, 29 Oct 2020 18:47:15 +0300 Subject: [PATCH 099/103] python unlink --- images/macos/provision/core/python.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/images/macos/provision/core/python.sh b/images/macos/provision/core/python.sh index 37065e90..da049319 100755 --- a/images/macos/provision/core/python.sh +++ b/images/macos/provision/core/python.sh @@ -8,6 +8,8 @@ echo "Brew Installing Python 3" # Workaround to have both 3.8 & 3.9(which required by some brew formulas) in the system, but only 3.8 is linked brew install python@3.8 brew install python@3.9 +brew unlink python@3.9 +brew unlink python@3.8 brew link python@3.8 --force echo "Brew Installing Python 2" From 215647d28a6b1171943ea2c2e6f5a6376a110ea6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 29 Oct 2020 19:25:14 +0000 Subject: [PATCH 100/103] Updating readme file for ubuntu18 version 20201026.1 (#1900) Co-authored-by: Image generation service account Co-authored-by: Actions service account --- images/linux/Ubuntu1804-README.md | 54 ++++++++++++++++--------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/images/linux/Ubuntu1804-README.md b/images/linux/Ubuntu1804-README.md index 0029ea31..68dd9422 100644 --- a/images/linux/Ubuntu1804-README.md +++ b/images/linux/Ubuntu1804-README.md @@ -1,10 +1,11 @@ | Announcements | |-| +| [.NET 5.0 will become a default .NET version on November, 10](https://github.com/actions/virtual-environments/issues/1891) | +| [[Ubuntu] [Windows] Boost 1.69.0 will be deprecated on November, 10](https://github.com/actions/virtual-environments/issues/1847) | | [Ubuntu-latest workflows will use Ubuntu-20.04](https://github.com/actions/virtual-environments/issues/1816) | -| [Obsolete Android build-tools packages will be removed from Ubuntu images on October, 20](https://github.com/actions/virtual-environments/issues/1743) | *** # Ubuntu 18.04.5 LTS -- Image Version: 20201015.1 +- Image Version: 20201026.1 ## Installed Software ### Language and Runtime @@ -29,7 +30,7 @@ - Npm 6.14.8 - Pip 9.0.1 - Pip3 9.0.1 -- Pipx 0.15.5.1 +- Pipx 0.15.6.0 - Vcpkg 2020.06.15 - Yarn 1.22.5 @@ -37,15 +38,16 @@ - Ant 1.10.5 - Gradle 6.7 - Maven 3.6.3 -- Sbt 1.4.0 +- Sbt 1.4.1 ### Tools - 7-Zip 16.02 - Ansible 2.9.14 -- AzCopy10 10.6.0 (available by `azcopy10` alias) +- apt-fast 1.9.10 +- AzCopy10 10.6.1 (available by `azcopy10` alias) - AzCopy7 7.3.0 (available by `azcopy` alias) -- Bazel 3.6.0 -- Bazelisk 1.7.2 +- Bazel 3.7.0 +- Bazelisk 1.7.3 - Buildah 1.16.4 - CMake 3.17.0 - CodeQL Action Bundle 2.3.0 @@ -53,13 +55,13 @@ - Docker Compose 1.27.4 - Docker-Buildx 0.4.2 - Docker-Moby 19.03.13 -- Git 2.28.0 +- Git 2.29.0 - Git LFS 2.12.0 - Git-ftp 1.3.1 -- Google Cloud SDK 314.0.0 +- Google Cloud SDK 315.0.0 - Haveged 1.9.1 -- Heroku 7.46.0 -- HHVM (HipHop VM) 4.79.0 +- Heroku 7.46.2 +- HHVM (HipHop VM) 4.80.0 - jq 1.5 - Kind 0.9.0 - Kubectl 1.19.3 @@ -67,19 +69,19 @@ - Leiningen 2.9.4 - m4 1.4.18 - Mercurial 4.5.3 -- Minikube 1.14.0 +- Minikube 1.14.1 - Newman 5.2.0 - nvm 0.36.0 - Packer 1.6.4 - PhantomJS 2.1.1 - Podman 2.1.1 -- Pulumi 2.12.0 +- Pulumi 2.12.1 - R 4.0.3 - Skopeo 1.2.0 - Sphinx Open Source Search Server 2.2.11 - SVN 1.9.7 - Swig 3.0.12 -- Terraform 0.13.4 +- Terraform 0.13.5 - unzip 6.00 - wget 1.19.4 - yamllint 1.25.0 @@ -88,14 +90,14 @@ ### CLI Tools - Alibaba Cloud CLI 3.0.60 -- AWS CLI 1.18.157 -- AWS CLI Session manager plugin 1.1.61.0 +- AWS CLI 1.18.164 +- AWS CLI Session manager plugin 1.2.7.0 - AWS SAM CLI 1.6.2 - Azure CLI (azure-cli) 2.13.0 - Azure CLI (azure-devops) 0.18.0 - GitHub CLI 1.1.0 - Hub CLI 2.14.2 -- Netlify CLI 2.65.5 +- Netlify CLI 2.65.7 - oc CLI 4.5.0 - ORAS CLI 0.8.1 - Vercel CLI 20.1.2 @@ -103,22 +105,22 @@ ### Java | Version | Vendor | Environment Variable | | ------------------- | ------------ | -------------------- | -| 1.7.0_272 | Zulu | JAVA_HOME_7_X64 | -| 1.8.0_265 (default) | AdoptOpenJDK | JAVA_HOME_8_X64 | -| 11.0.8 | AdoptOpenJDK | JAVA_HOME_11_X64 | +| 1.7.0_282 | Zulu | JAVA_HOME_7_X64 | +| 1.8.0_272 (default) | AdoptOpenJDK | JAVA_HOME_8_X64 | +| 11.0.9 | AdoptOpenJDK | JAVA_HOME_11_X64 | | 12.0.2 | AdoptOpenJDK | JAVA_HOME_12_X64 | ### PHP | Tool | Version | | -------- | --------------------------- | | PHP | 7.1.33 7.2.34 7.3.23 7.4.11 | -| Composer | 1.10.15 | +| Composer | 2.0.2 | | PHPUnit | 7.5.20 | ### Haskell - GHC 8.10.2 - Cabal 3.4.0.0 -- Stack 2.3.3 +- Stack 2.5.1 ### Rust Tools - Rust 1.47.0 @@ -135,9 +137,9 @@ - Rustfmt 1.4.20 ### Browsers and Drivers -- Google Chrome 86.0.4240.75 +- Google Chrome 86.0.4240.111 - ChromeDriver 86.0.4240.22 -- Mozilla Firefox 81.0 +- Mozilla Firefox 82.0 - Geckodriver 0.27.0 ### .NET Core SDK @@ -164,7 +166,7 @@ - 2.4.10 - 2.5.8 - 2.6.6 -- 2.7.1 +- 2.7.2 #### Python - 2.7.18 @@ -182,7 +184,7 @@ - 8.17.0 - 10.22.1 - 12.19.0 -- 14.13.1 +- 14.14.0 #### Go - 1.11.13 From bb2ff8bf55fb6d0331d2f1a23f54d0bda975edbf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 29 Oct 2020 21:17:32 +0000 Subject: [PATCH 101/103] Updating readme file for macOS-10.15 version 20201026.2 (#1922) Co-authored-by: Image generation service account Co-authored-by: Actions service account --- images/macos/macos-10.15-Readme.md | 79 +++++++++++++++--------------- 1 file changed, 40 insertions(+), 39 deletions(-) diff --git a/images/macos/macos-10.15-Readme.md b/images/macos/macos-10.15-Readme.md index 415b41ba..cfb4e810 100644 --- a/images/macos/macos-10.15-Readme.md +++ b/images/macos/macos-10.15-Readme.md @@ -1,18 +1,19 @@ | Announcements | |-| +| [.NET 5.0 will become a default .NET version on November, 10](https://github.com/actions/virtual-environments/issues/1891) | | [macOS 11.0 (Big Sur) is available as a preview 🚀](https://github.com/actions/virtual-environments/issues/1814) | | [[macOS] Default Ruby version will be changed to 2.7 on October, 26](https://github.com/actions/virtual-environments/issues/1775) | -| [Default Xcode will be changed to Xcode 12.0 on October, 20](https://github.com/actions/virtual-environments/issues/1712) | +| [Default Xcode will be changed to Xcode 12.0.1 on October, 20](https://github.com/actions/virtual-environments/issues/1712) | | [Xcode 11.0, 11.1, 11.4.0 will be deprecated on November, 5](https://github.com/actions/virtual-environments/issues/1688) | *** # macOS 10.15 info - System Version: macOS 10.15.7 (19H2) - Kernel Version: Darwin 19.6.0 -- Image Version: 20201017.1 +- Image Version: 20201026.2 ## Installed Software ### Language and Runtime -- Clang/LLVM 10.0.1 +- Clang/LLVM 11.0.0 - gcc-8 (Homebrew GCC 8.4.0_1) 8.4.0 - available by `gcc-8` alias - gcc-9 (Homebrew GCC 9.3.0) 9.3.0 - available by `gcc-9` alias - GNU Fortran (Homebrew GCC 8.4.0_1) 8.4.0 - available by `gfortran-8` alias @@ -23,9 +24,9 @@ - NVM - Cached node versions: v6.17.1 v8.17.0 v10.22.1 v12.19.0 v13.14.0 v14.14.0 - Python 2.7.17 - Python 3.8.6 -- Ruby 2.6.6p146 +- Ruby 2.7.2p137 - .NET SDK 2.1.300 2.1.301 2.1.302 2.1.401 2.1.402 2.1.403 2.1.500 2.1.502 2.1.503 2.1.504 2.1.505 2.1.506 2.1.507 2.1.602 2.1.603 2.1.604 2.1.607 2.1.700 2.1.701 2.1.801 2.1.802 2.1.803 2.1.804 2.1.805 2.1.806 2.1.807 2.1.808 2.1.809 2.1.810 2.1.811 3.0.100 3.0.101 3.0.102 3.0.103 3.1.100 3.1.101 3.1.200 3.1.201 3.1.300 3.1.301 3.1.302 3.1.401 3.1.402 3.1.403 -- Go 1.15.2 +- Go 1.15.3 - PHP 7.4.11 - julia 1.5.2 @@ -35,14 +36,14 @@ - Pip 20.2.3 (python 3.8) - Bundler version 2.1.4 - Carthage 0.36.0 -- CocoaPods 1.9.3 -- Homebrew 2.5.6 +- CocoaPods 1.10.0 +- Homebrew 2.5.7 - NPM 6.14.8 - Yarn 1.22.5 - NuGet 5.6.0.6489 - Miniconda 4.8.3 - RubyGems 3.1.4 -- Composer 1.10.15 +- Composer 2.0.2 ### Project Management - Apache Maven 3.6.3 @@ -51,7 +52,7 @@ ### Utilities - Curl 7.73.0 -- Git: 2.28.0 +- Git: 2.29.1 - Git LFS: 2.12.0 - GitHub CLI: 1.1.0 - Hub CLI: 2.14.2 @@ -64,28 +65,28 @@ - psql (PostgreSQL) 13.0 - PostgreSQL 13.0 - aria2 1.35.0 -- azcopy 10.6.0 +- azcopy 10.6.1 - zstd 1.4.5 -- bazel 3.6.0 -- bazelisk 1.7.2 +- bazel 3.7.0 +- bazelisk 1.7.4 - helm v3.3.4+ga61ce56 - mongo v4.4.1 - mongod v4.4.1 - 7-Zip 16.02 - Newman 5.2.0 -- virtualbox 6.1.14r140239 +- virtualbox 6.1.16r140961 - Vagrant 2.2.10 -- GNU parallel 20200722 +- GNU parallel 20201022 ### Tools -- Fastlane 2.163.0 +- Fastlane 2.165.0 - Cmake 3.18.4 - App Center CLI 2.7.2 - Azure CLI 2.13.0 -- AWS CLI 2.0.57 +- AWS CLI 2.0.59 - AWS SAM CLI 1.6.2 -- AWS Session Manager CLI 1.1.61.0 +- AWS Session Manager CLI 1.2.7.0 - Aliyun CLI 3.0.60 - GHCup v0.1.11 - GHC 8.10.2 @@ -99,19 +100,19 @@ ### Browsers - Safari 14.0 (15610.1.28.1.9) - SafariDriver 14.0 (15610.1.28.1.9) -- Google Chrome 86.0.4240.80 +- Google Chrome 86.0.4240.111 - ChromeDriver 86.0.4240.22 -- Microsoft Edge 85.0.564.70 -- MSEdgeDriver 85.0.564.70 -- Mozilla Firefox 81.0.2 +- Microsoft Edge 86.0.622.51 +- MSEdgeDriver 86.0.622.51 +- Mozilla Firefox 82.0 - geckodriver 0.27.0 ### Java | Version | Vendor | Environment Variable | | --------- | ------------ | -------------------- | | 1.7.0_272 | Zulu | JAVA_HOME_7_X64 | -| 1.8.0_265 | AdoptOpenJDK | JAVA_HOME_8_X64 | -| 11.0.8 | AdoptOpenJDK | JAVA_HOME_11_X64 | +| 1.8.0_272 | AdoptOpenJDK | JAVA_HOME_8_X64 | +| 11.0.9 | AdoptOpenJDK | JAVA_HOME_11_X64 | | 12.0.2 | AdoptOpenJDK | JAVA_HOME_12_X64 | | 13.0.2 | AdoptOpenJDK | JAVA_HOME_13_X64 | | 14.0.2 | AdoptOpenJDK | JAVA_HOME_14_X64 | @@ -120,7 +121,7 @@ - 2.4.10 - 2.5.8 - 2.6.6 -- 2.7.1 +- 2.7.2 #### Python - 2.7.18 @@ -212,21 +213,21 @@ - NUnit 3.6.1 ### Xcode -| Version | Build | Path | -| -------------- | -------- | ------------------------------ | -| 12.2 (beta) | 12B5035g | /Applications/Xcode_12.2.app | -| 12.1 | 12A7403 | /Applications/Xcode_12.1.app | -| 12.0.1 | 12A7300 | /Applications/Xcode_12.app | -| 11.7 (default) | 11E801a | /Applications/Xcode_11.7.app | -| 11.6 | 11E708 | /Applications/Xcode_11.6.app | -| 11.5 | 11E608c | /Applications/Xcode_11.5.app | -| 11.4.1 | 11E503a | /Applications/Xcode_11.4.1.app | -| 11.4 | 11E146 | /Applications/Xcode_11.4.app | -| 11.3.1 | 11C505 | /Applications/Xcode_11.3.1.app | -| 11.2.1 | 11B500 | /Applications/Xcode_11.2.1.app | -| 11.1 | 11A1027 | /Applications/Xcode_11.1.app | -| 11.0 | 11A420a | /Applications/Xcode_11.app | -| 10.3 | 10G8 | /Applications/Xcode_10.3.app | +| Version | Build | Path | +| ---------------- | -------- | ------------------------------ | +| 12.2 (beta) | 12B5035g | /Applications/Xcode_12.2.app | +| 12.1 | 12A7403 | /Applications/Xcode_12.1.app | +| 12.0.1 (default) | 12A7300 | /Applications/Xcode_12.app | +| 11.7 | 11E801a | /Applications/Xcode_11.7.app | +| 11.6 | 11E708 | /Applications/Xcode_11.6.app | +| 11.5 | 11E608c | /Applications/Xcode_11.5.app | +| 11.4.1 | 11E503a | /Applications/Xcode_11.4.1.app | +| 11.4 | 11E146 | /Applications/Xcode_11.4.app | +| 11.3.1 | 11C505 | /Applications/Xcode_11.3.1.app | +| 11.2.1 | 11B500 | /Applications/Xcode_11.2.1.app | +| 11.1 | 11A1027 | /Applications/Xcode_11.1.app | +| 11.0 | 11A420a | /Applications/Xcode_11.app | +| 10.3 | 10G8 | /Applications/Xcode_10.3.app | #### Xcode Support Tools - xcpretty 0.3.0 From 2896d56d642766bbbe9e728afdc3d9d6c404c87f Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev Date: Sat, 31 Oct 2020 09:35:31 +0300 Subject: [PATCH 102/103] change 12.1 to 12.1.1 --- images/macos/provision/utils/xcode-utils.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/images/macos/provision/utils/xcode-utils.sh b/images/macos/provision/utils/xcode-utils.sh index cfe93439..a80fc782 100644 --- a/images/macos/provision/utils/xcode-utils.sh +++ b/images/macos/provision/utils/xcode-utils.sh @@ -9,6 +9,11 @@ createXamarinProvisionatorSymlink() { FULL_VERSION="12.0.1" fi + # temporary trick for 12.1.1 + if [[ $XCODE_VERSION == "12.1" ]]; then + FULL_VERSION="12.1.1" + fi + if [ $FULL_VERSION != $XCODE_VERSION ]; then ln -sf "/Applications/Xcode_${XCODE_VERSION}.app" "/Applications/Xcode_${FULL_VERSION}.app" fi @@ -19,6 +24,8 @@ getXcodeVersionToInstall() { if [[ $XCODE_VERSION == "12" ]]; then echo "12.0.1" + elif [[ ! $XCODE_VERSION == "12.1" ]]; then + echo "12.1.1 Release Candidate" elif [[ ! $XCODE_VERSION =~ "_beta" ]]; then echo "${XCODE_VERSION//_/ }" else From d0c0d59fde2a4cd908515292cec0eb1b69407ef9 Mon Sep 17 00:00:00 2001 From: Mikhail Timofeev Date: Sat, 31 Oct 2020 17:52:14 +0300 Subject: [PATCH 103/103] fix condition --- images/macos/provision/utils/xcode-utils.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/macos/provision/utils/xcode-utils.sh b/images/macos/provision/utils/xcode-utils.sh index a80fc782..4955ffcd 100644 --- a/images/macos/provision/utils/xcode-utils.sh +++ b/images/macos/provision/utils/xcode-utils.sh @@ -24,7 +24,7 @@ getXcodeVersionToInstall() { if [[ $XCODE_VERSION == "12" ]]; then echo "12.0.1" - elif [[ ! $XCODE_VERSION == "12.1" ]]; then + elif [[ $XCODE_VERSION == "12.1" ]]; then echo "12.1.1 Release Candidate" elif [[ ! $XCODE_VERSION =~ "_beta" ]]; then echo "${XCODE_VERSION//_/ }"