-
Notifications
You must be signed in to change notification settings - Fork 821
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Sync eng/common directory with azure-sdk-tools for PR 1371 (#14288)
* Rework verify agent OS step. * Address feedback * Justing string matching instead. * ! instead of -not Co-authored-by: Mitch Denny <midenn@microsoft.com>
- Loading branch information
1 parent
3ddb9e2
commit 7db9dc1
Showing
2 changed files
with
25 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 } |