diff --git a/images/win/Windows2016-Azure.json b/images/win/Windows2016-Azure.json index d6528649..f2389d42 100644 --- a/images/win/Windows2016-Azure.json +++ b/images/win/Windows2016-Azure.json @@ -235,7 +235,6 @@ "{{ template_dir }}/scripts/Installers/Install-PyPy.ps1", "{{ template_dir }}/scripts/Installers/Install-Toolset.ps1", "{{ template_dir }}/scripts/Installers/Configure-Toolset.ps1", - "{{ template_dir }}/scripts/Installers/Install-YAMLLint.ps1", "{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1" ] }, @@ -328,6 +327,13 @@ "{{ template_dir }}/scripts/Installers/Install-CodeQLBundle.ps1" ] }, + { + "type": "powershell", + "scripts": [ + "{{ template_dir }}/scripts/Installers/Install-Pipx.ps1", + "{{ template_dir }}/scripts/Installers/Install-Pipx-Packages.ps1" + ] + }, { "type": "powershell", "scripts": [ diff --git a/images/win/Windows2019-Azure.json b/images/win/Windows2019-Azure.json index 6e0ba866..7e082f20 100644 --- a/images/win/Windows2019-Azure.json +++ b/images/win/Windows2019-Azure.json @@ -249,7 +249,6 @@ "{{ template_dir }}/scripts/Installers/Install-PyPy.ps1", "{{ template_dir }}/scripts/Installers/Install-Toolset.ps1", "{{ template_dir }}/scripts/Installers/Configure-Toolset.ps1", - "{{ template_dir }}/scripts/Installers/Install-YAMLLint.ps1", "{{ template_dir }}/scripts/Installers/Update-AndroidSDK.ps1", "{{ template_dir }}/scripts/Installers/Install-AzureModules.ps1" ] @@ -326,6 +325,13 @@ "{{ template_dir }}/scripts/Installers/Install-CodeQLBundle.ps1" ] }, + { + "type": "powershell", + "scripts": [ + "{{ template_dir }}/scripts/Installers/Install-Pipx.ps1", + "{{ template_dir }}/scripts/Installers/Install-Pipx-Packages.ps1" + ] + }, { "type": "powershell", "scripts": [ diff --git a/images/win/scripts/Installers/Install-Pipx-Packages.ps1 b/images/win/scripts/Installers/Install-Pipx-Packages.ps1 new file mode 100644 index 00000000..a5be7b6f --- /dev/null +++ b/images/win/scripts/Installers/Install-Pipx-Packages.ps1 @@ -0,0 +1,12 @@ +$pipxToolset = (Get-ToolsetContent).pipx +foreach($tool in $pipxToolset) { + if ($tool.python) { + $pythonPath = "${env:AGENT_TOOLSDIRECTORY}\Python\${tool.python}*\${env:AGENT_OSARCHITECTURE}\python-${tool.python}*" + Write-Host "Install ${tool.package} into python ${tool.python}" + pipx install $tool.package --python $python_path + } else { + Write-Host "Install ${tool.package} into default python" + pipx install $tool.package + } + Invoke-PesterTests -TestFile "PipxPackages" -TestName $tool.package +} \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-Pipx.ps1 b/images/win/scripts/Installers/Install-Pipx.ps1 new file mode 100644 index 00000000..a78cf456 --- /dev/null +++ b/images/win/scripts/Installers/Install-Pipx.ps1 @@ -0,0 +1,14 @@ +# Set custom directorys for pipx +$env:PIPX_BIN_DIR = "${env:ProgramFiles(x86)}\pipx_bin" +$env:PIPX_HOME = "${env:ProgramFiles(x86)}\pipx" + +# Install pipx +pip install pipx + +# Set environment variables +Add-MachinePathItem "${env:PIPX_BIN_DIR}" +Set-SystemVariable -SystemVariable PIPX_BIN_DIR -Value $env:PIPX_BIN_DIR +Set-SystemVariable -SystemVariable PIPX_HOME -Value $env:PIPX_HOME + +# Test pipx +Invoke-PesterTests -TestFile "Tools" -TestName "Pipx" \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-YAMLLint.ps1 b/images/win/scripts/Installers/Install-YAMLLint.ps1 deleted file mode 100644 index 1ebc09a3..00000000 --- a/images/win/scripts/Installers/Install-YAMLLint.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -pip install yamllint - -Invoke-PesterTests -TestFile "Tools" -TestName "yamllint" \ No newline at end of file diff --git a/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 b/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 index 05b101aa..12f41061 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.Common.psm1 @@ -273,4 +273,8 @@ function Get-PacmanVersion { function Get-YAMLLintVersion { yamllint --version +} + +function Get-PipxVersion { + pipx --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 f8315774..ef7749e3 100644 --- a/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 +++ b/images/win/scripts/SoftwareReport/SoftwareReport.Generator.ps1 @@ -59,7 +59,8 @@ $markdown += New-MDList -Style Unordered -Lines @( (Get-RubyGemsVersion), (Get-HelmVersion), (Get-ComposerVersion), - (Get-NugetVersion) + (Get-NugetVersion), + (Get-PipxVersion) ) $markdown += New-MDHeader "Project Management" -Level 3 diff --git a/images/win/scripts/Tests/PipxPackages.Test.ps1 b/images/win/scripts/Tests/PipxPackages.Test.ps1 new file mode 100644 index 00000000..3a9ad564 --- /dev/null +++ b/images/win/scripts/Tests/PipxPackages.Test.ps1 @@ -0,0 +1,5 @@ +Describe "yamllint" { + It "yamllint" { + "yamllint --version" | Should -ReturnZeroExitCode + } +} \ No newline at end of file diff --git a/images/win/scripts/Tests/Tools.Tests.ps1 b/images/win/scripts/Tests/Tools.Tests.ps1 index cbb0609a..a0024532 100644 --- a/images/win/scripts/Tests/Tools.Tests.ps1 +++ b/images/win/scripts/Tests/Tools.Tests.ps1 @@ -214,12 +214,6 @@ Describe "ServiceFabricSDK" { } } -Describe "yamllint" { - It "yamllint" { - "yamllint --version" | Should -ReturnZeroExitCode - } -} - Describe "Svn" { It "svn" { "svn --version --quiet" | Should -ReturnZeroExitCode @@ -269,3 +263,9 @@ Describe "Zstd" { "zstd -V" | Should -ReturnZeroExitCode } } + +Describe "Pipx" { + It "Pipx" { + "pipx --version" | Should -ReturnZeroExitCode + } +} diff --git a/images/win/toolsets/toolset-2016.json b/images/win/toolsets/toolset-2016.json index 5e0b23c6..441b34c1 100644 --- a/images/win/toolsets/toolset-2016.json +++ b/images/win/toolsets/toolset-2016.json @@ -236,5 +236,11 @@ "mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2016", "microsoft/aspnetcore-build:1.0-2.0" ] - } + }, + "pipx": [ + { + "package": "yamllint", + "cmd": "yamllint" + } + ] } diff --git a/images/win/toolsets/toolset-2019.json b/images/win/toolsets/toolset-2019.json index bf1d0dff..275e63e5 100644 --- a/images/win/toolsets/toolset-2019.json +++ b/images/win/toolsets/toolset-2019.json @@ -288,5 +288,11 @@ "mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019", "microsoft/aspnetcore-build:1.0-2.0" ] - } + }, + "pipx": [ + { + "package": "yamllint", + "cmd": "yamllint" + } + ] }