如何在 Azure Pipeline 中安装 .msi 程序 (Windows)
How to install an .msi program in Azure Pipeline (Windows)
我的 objective 是在 Azure Pipelines 的 Microsoft 托管映像中安装 CppCheck。
我已经为 Ubuntu 图像做了这个,但是 Ubuntu 的 CppCheck 已经过时了。我的管道:
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
jobs:
- job: MisraCheck
displayName: Check for Misra Compliance
steps:
- script: |
sudo apt-get install cppcheck
displayName: 'Install cppcheck'
- script: |
cppcheck --error-exitcode=1 --addon=misra.json .
displayName: 'Run cppcheck'
由于我熟悉 Linux(和 apt-get),因此设置此管道非常容易。但是现在我必须“翻译”这个管道以在 Windows 图像上使用。
Windows 的 CppCheck 是一个可在 this 页面下载的 .msi 文件。下载link轻松搞定
我知道我需要在管道中使用 Windows 图像,例如“windows-2019”或“vs2017-win2016”。主要问题是如何替换 apt-get 命令以从 link 获取 .msi 文件并安装它?
谢谢!
How to install an .msi program in Azure Pipeline (Windows)
您可以使用 Powershell 任务来安装 .msi 文件:
Start-Process $(System.DefaultWorkingDirectory)\cppcheck-2.6-x64-Setup.msi -ArgumentList "/quiet"
Start-Sleep 180 #waiting for installing complete
并且您需要将 .msi
上传到您的存储库。或者您可以使用 PowerShell 脚本从 URL 下载 .msi
:
更新:
Invoke-WebRequest https://github.com/danmar/cppcheck/releases/download/2.6/cppcheck-2.6-x64-Setup.msi -OutFile $(System.DefaultWorkingDirectory)\cppcheck-2.6-x64-Setup.msi
Start-Sleep 90 #waiting for downloadig complete
发布最终解决方案。此管道是我在打开问题时发布的管道的“翻译”。
# This pipeline uses a Windows image as host to install cppcheck to verify MISRA guidelines.
trigger:
- master
pool:
vmImage: 'windows-2019'
jobs:
- job: MisraCheck
displayName: Check for Misra Compliance
steps:
# Download and Install CppCheck(full install since we need the MISRA plugin)
- powershell: |
Invoke-WebRequest https://github.com/danmar/cppcheck/releases/download/2.6/cppcheck-2.6-x64-Setup.msi -OutFile $(System.DefaultWorkingDirectory)\cppcheck-2.6-x64-Setup.msi
Start-Process $(System.DefaultWorkingDirectory)\cppcheck-2.6-x64-Setup.msi -ArgumentList "/quiet ADDLOCAL=CppcheckCore,CLI,Translations,ConfigFiles,PlatformFiles,PythonAddons,CRT" -Wait
displayName: 'Download and Install Cppcheck'
# Adds Cppcheck to PATH and runs it
- script: |
PATH=C:\Program Files\Cppcheck\;%PATH%
cppcheck --error-exitcode=1 --addon=misra.json --inline-suppr .
displayName: 'MISRA Check'
PS:这不是一个好的解决方案,因为它需要几分钟才能完成管道。 Ubuntu 管道大约需要 30 秒才能完成,而 Windows 管道最多可能需要 4 分钟。也许正确的做法是为此建立一个代理。
感谢 Leo Liu-MSFT 的帮助!
我的 objective 是在 Azure Pipelines 的 Microsoft 托管映像中安装 CppCheck。 我已经为 Ubuntu 图像做了这个,但是 Ubuntu 的 CppCheck 已经过时了。我的管道:
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
jobs:
- job: MisraCheck
displayName: Check for Misra Compliance
steps:
- script: |
sudo apt-get install cppcheck
displayName: 'Install cppcheck'
- script: |
cppcheck --error-exitcode=1 --addon=misra.json .
displayName: 'Run cppcheck'
由于我熟悉 Linux(和 apt-get),因此设置此管道非常容易。但是现在我必须“翻译”这个管道以在 Windows 图像上使用。
Windows 的 CppCheck 是一个可在 this 页面下载的 .msi 文件。下载link轻松搞定
我知道我需要在管道中使用 Windows 图像,例如“windows-2019”或“vs2017-win2016”。主要问题是如何替换 apt-get 命令以从 link 获取 .msi 文件并安装它?
谢谢!
How to install an .msi program in Azure Pipeline (Windows)
您可以使用 Powershell 任务来安装 .msi 文件:
Start-Process $(System.DefaultWorkingDirectory)\cppcheck-2.6-x64-Setup.msi -ArgumentList "/quiet"
Start-Sleep 180 #waiting for installing complete
并且您需要将 .msi
上传到您的存储库。或者您可以使用 PowerShell 脚本从 URL 下载 .msi
:
更新:
Invoke-WebRequest https://github.com/danmar/cppcheck/releases/download/2.6/cppcheck-2.6-x64-Setup.msi -OutFile $(System.DefaultWorkingDirectory)\cppcheck-2.6-x64-Setup.msi
Start-Sleep 90 #waiting for downloadig complete
发布最终解决方案。此管道是我在打开问题时发布的管道的“翻译”。
# This pipeline uses a Windows image as host to install cppcheck to verify MISRA guidelines.
trigger:
- master
pool:
vmImage: 'windows-2019'
jobs:
- job: MisraCheck
displayName: Check for Misra Compliance
steps:
# Download and Install CppCheck(full install since we need the MISRA plugin)
- powershell: |
Invoke-WebRequest https://github.com/danmar/cppcheck/releases/download/2.6/cppcheck-2.6-x64-Setup.msi -OutFile $(System.DefaultWorkingDirectory)\cppcheck-2.6-x64-Setup.msi
Start-Process $(System.DefaultWorkingDirectory)\cppcheck-2.6-x64-Setup.msi -ArgumentList "/quiet ADDLOCAL=CppcheckCore,CLI,Translations,ConfigFiles,PlatformFiles,PythonAddons,CRT" -Wait
displayName: 'Download and Install Cppcheck'
# Adds Cppcheck to PATH and runs it
- script: |
PATH=C:\Program Files\Cppcheck\;%PATH%
cppcheck --error-exitcode=1 --addon=misra.json --inline-suppr .
displayName: 'MISRA Check'
PS:这不是一个好的解决方案,因为它需要几分钟才能完成管道。 Ubuntu 管道大约需要 30 秒才能完成,而 Windows 管道最多可能需要 4 分钟。也许正确的做法是为此建立一个代理。
感谢 Leo Liu-MSFT 的帮助!