Sync eng/common directory with azure-sdk-tools for PR 1371 (#1634)

* Rework verify agent OS step.

* Address feedback

* Justing string matching instead.

* ! instead of -not

Co-authored-by: Mitch Denny <midenn@microsoft.com>
This commit is contained in:
Azure SDK Bot 2021-02-14 15:56:25 -08:00 committed by GitHub
parent ab0a92ce62
commit 74bfafcb52
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 33 deletions

View File

@ -1,37 +1,16 @@
parameters:
OSVmImage: $(OSVmImage)
- name: ScriptDirectory
type: string
default: 'eng/common/scripts'
- name: AgentImage
type: string
steps:
- task: PythonScript@0
displayName: Verify Agent OS
- task: PowerShell@2
displayName: Verify agent OS
inputs:
scriptSource: inline
script: |
# Script verifies the operating system for the platform on which it is being run
# Used in build pipelines to verify the build agent os
# Variable: The friendly name or image name of the os to verify against
from __future__ import print_function
import sys
import platform
os_parameter = "${{ parameters.OSVmImage }}".lower()
if os_parameter.startswith('mac') or os_parameter.startswith('darwin'):
os_parameter = 'macOS'
elif os_parameter.startswith('ubuntu') or os_parameter.startswith('linux'):
os_parameter = 'Linux'
elif os_parameter.startswith('vs') or os_parameter.startswith('win'):
os_parameter = 'Windows'
else:
raise Exception('Variable OSVmImage is empty or has an unexpected value [${{ parameters.OSVmImage }}]')
print("Job requested to run on OS: %s" % (os_parameter))
agent_os = platform.system()
agent_os = 'macOS' if agent_os == 'Darwin' else agent_os
if (agent_os.lower() == os_parameter.lower()):
print('Job ran on OS: %s' % (agent_os))
print('##vso[task.setvariable variable=OSName]%s' % (agent_os))
else:
raise Exception('Job ran on the wrong OS: %s' % (agent_os))
pwsh: true
workingDirectory: $(System.DefaultWorkingDirectory)
filePath: ${{ parameters.ScriptDirectory }}/Verify-AgentOS.ps1
arguments: >
-AgentImage ${{ parameters.AgentImage }}

View File

@ -0,0 +1,13 @@
param (
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[string] $AgentImage
)
function Throw-InvalidOperatingSystem {
throw "Invalid operating system detected. Operating system was: $([System.Runtime.InteropServices.RuntimeInformation]::OSDescription), expected image was: $AgentImage"
}
if ($AgentImage -match "windows|win|MMS2019" -and !$IsWindows) { Throw-InvalidOperatingSystem }
if ($AgentImage -match "ubuntu" -and !$IsLinux) { Throw-InvalidOperatingSystem }
if ($AgentImage -match "macos" -and !$IsMacOs) { Throw-InvalidOperatingSystem }