@@ -65,37 +65,47 @@ jobs:
6565 - ${{ if eq(parameters.osGroup, 'windows') }} :
6666 - HelixPreCommandWindows : ' set ORIGPYPATH=%PYTHONPATH%;py -3 -m venv %HELIX_WORKITEM_PAYLOAD%\.venv;call %HELIX_WORKITEM_PAYLOAD%\.venv\Scripts\activate.bat;set PYTHONPATH=;py -3 -m pip install -U pip;py -3 -m pip install --user azure.storage.blob==12.0.0 --force-reinstall;py -3 -m pip install --user azure.storage.queue==12.0.0 --force-reinstall;set "PERFLAB_UPLOAD_TOKEN=$(PerfCommandUploadToken)"'
6767 - HelixPostCommandsWindows : ' set PYTHONPATH=%ORIGPYPATH%'
68- - ${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.osSubGroup, '_musl')) }} :
68+ - ${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.osGroup, 'OSX'), ne(parameters. osSubGroup, '_musl')) }} :
6969 - HelixPreCommandLinux : ' export ORIGPYPATH=$PYTHONPATH;export CRYPTOGRAPHY_ALLOW_OPENSSL_102=true;sudo apt-get -y install python3-venv;python3 -m venv $HELIX_WORKITEM_PAYLOAD/.venv;source $HELIX_WORKITEM_PAYLOAD/.venv/bin/activate;export PYTHONPATH=;python3 -m pip install -U pip;pip3 install --user azure.storage.blob==12.0.0 --force-reinstall;pip3 install --user azure.storage.queue==12.0.0 --force-reinstall;export PERFLAB_UPLOAD_TOKEN="$(PerfCommandUploadTokenLinux)"'
7070 - HelixPostCommandsLinux : ' export PYTHONPATH=$ORIGPYPATH'
71- - ${{ if and(ne(parameters.osGroup, 'windows'), eq(parameters.osSubGroup, '_musl')) }} :
71+ - ${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.osGroup, 'OSX'), eq(parameters.osSubGroup, '_musl')) }} :
7272 - HelixPreCommandMusl : ' export ORIGPYPATH=$PYTHONPATH;sudo apk add py3-virtualenv;python3 -m venv $HELIX_WORKITEM_PAYLOAD/.venv;source $HELIX_WORKITEM_PAYLOAD/.venv/bin/activate;export PYTHONPATH=;python3 -m pip install -U pip;pip3 install --user azure.storage.blob==12.0.0 --force-reinstall;pip3 install --user azure.storage.queue==12.0.0 --force-reinstall;export PERFLAB_UPLOAD_TOKEN="$(PerfCommandUploadTokenLinux)"'
7373 - HelixPostCommandsMusl : ' export PYTHONPATH=$ORIGPYPATH'
74+ - ${{ if eq(parameters.osGroup, 'OSX') }} :
75+ - HelixPreCommandOSX : ' export ORIGPYPATH=$PYTHONPATH;export CRYPTOGRAPHY_ALLOW_OPENSSL_102=true;python3 -m venv $HELIX_WORKITEM_PAYLOAD/.venv;source $HELIX_WORKITEM_PAYLOAD/.venv/bin/activate;export PYTHONPATH=;python3 -m pip install -U pip;pip3 install azure.storage.blob==12.0.0 --force-reinstall;pip3 install azure.storage.queue==12.0.0 --force-reinstall;export PERFLAB_UPLOAD_TOKEN="$(PerfCommandUploadTokenLinux)"'
76+ - HelixPostCommandOSX : ' export PYTHONPATH=$ORIGPYPATH'
7477
7578 # extra private job settings
7679 - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }} :
7780 - ${{ if eq(parameters.osGroup, 'windows') }} :
7881 - AdditionalHelixPreCommands : $(HelixPreCommandWindows)
7982 - AdditionalHelixPostCommands : $(HelixPostCommandsWindows)
8083 - IsInternal : -Internal
81- - ${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.osSubGroup, '_musl')) }} :
84+ - ${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.osGroup, 'OSX'), ne(parameters. osSubGroup, '_musl')) }} :
8285 - AdditionalHelixPreCommands : $(HelixPreCommandLinux)
8386 - AdditionalHelixPostCommands : $(HelixPostCommandsLinux)
8487 - IsInternal : --internal
85- - ${{ if and(ne(parameters.osGroup, 'windows'), eq(parameters.osSubGroup, '_musl')) }} :
88+ - ${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.osGroup, 'OSX'), eq(parameters.osSubGroup, '_musl')) }} :
8689 - AdditionalHelixPreCommands : $(HelixPreCommandMusl)
8790 - AdditionalHelixPostCommands : $(HelixPostCommandsMusl)
8891 - IsInternal : --internal
92+ - ${{ if eq(parameters.osGroup, 'OSX') }} :
93+ - AdditionalHelixPreCommands : $(HelixPreCommandOSX)
94+ - AdditionalHelixPostCommands : $(HelixPostCommandOSX)
95+ - IsInternal : --internal
8996 - group : DotNet-HelixApi-Access
9097 - group : dotnet-benchview
9198
9299 - ${{ if not(and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'))) }} :
93100 - ${{ if eq(parameters.osGroup, 'windows') }} :
94101 - AdditionalHelixPreCommands : $(HelixPreCommandWindows)
95102 - AdditionalHelixPostCommands : $(HelixPostCommandsWindows)
96- - ${{ if ne(parameters.osGroup, 'windows') }} :
103+ - ${{ if and( ne(parameters.osGroup, 'windows'), ne(parameters.osGroup, 'OSX') ) }} :
97104 - AdditionalHelixPreCommands : $(HelixPreCommandLinux)
98105 - AdditionalHelixPostCommands : $(HelixPostCommandsLinux)
106+ - ${{ if eq(parameters.osGroup, 'OSX') }} :
107+ - AdditionalHelixPreCommands : $(HelixPreCommandOSX)
108+ - AdditionalHelixPostCommands : $(HelixPostCommandOSX)
99109
100110 - ${{ if ne(parameters.runtimeType, 'wasm') }} :
101111 - ExtraSetupArguments : --install-dir $(PayloadDirectory)/dotnet
@@ -121,15 +131,15 @@ jobs:
121131 condition : and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT'))
122132 continueOnError : ${{ parameters.continueOnError }}
123133 - script : $(Build.SourcesDirectory)/eng/testing/performance/performance-setup.sh $(IsInternal) --framework $(_Framework) --kind ${{ parameters.runKind }} --logicalmachine ${{ parameters.logicalMachine }} ${{ parameters.extraSetupParameters }} ${{ parameters.additionalSetupParameters }}
124- displayName : Performance Setup (Linux)
134+ displayName : Performance Setup (Linux/MAC )
125135 condition : and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'))
126136 continueOnError : ${{ parameters.continueOnError }}
127137 # run ci-setup
128138 - script : $(Python) $(PerformanceDirectory)\scripts\ci_setup.py $(SetupArguments) $(ExtraSetupArguments) --output-file $(WorkItemDirectory)\machine-setup.cmd
129139 displayName : Run ci setup script (Windows)
130140 condition : and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT'))
131141 - script : $(Python) $(PerformanceDirectory)/scripts/ci_setup.py $(SetupArguments) $(ExtraSetupArguments) --output-file $(WorkItemDirectory)/machine-setup.sh
132- displayName : Run ci setup script (Linux)
142+ displayName : Run ci setup script (Linux/MAC )
133143 condition : and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'))
134144 # copy wasm packs if running on wasm
135145 - script : >-
@@ -144,7 +154,7 @@ jobs:
144154 displayName : Copy scenario support files (Windows)
145155 condition : and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT'))
146156 - script : cp -r $(PerformanceDirectory)/scripts $(WorkItemDirectory)/scripts/ && cp -r $(PerformanceDirectory)/src/scenarios/shared $(WorkItemDirectory)/shared/ && cp -r $(PerformanceDirectory)/src/scenarios/staticdeps/ $(WorkItemDirectory)/staticdeps/
147- displayName : Copy scenario support files (Linux)
157+ displayName : Copy scenario support files (Linux/MAC )
148158 condition : and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'))
149159 # build Startup
150160 - script : $(PayloadDirectory)\dotnet\dotnet.exe publish -c Release -o $(WorkItemDirectory)\Startup -f net6.0 -r win-$(Architecture) $(PerformanceDirectory)\src\tools\ScenarioMeasurement\Startup\Startup.csproj
@@ -156,7 +166,12 @@ jobs:
156166 displayName : Build Startup tool (Linux)
157167 env :
158168 PERFLAB_TARGET_FRAMEWORKS : net6.0
159- condition : and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'))
169+ condition : and(succeeded(), eq(variables['Agent.Os'], 'Linux'))
170+ - script : $(PayloadDirectory)/dotnet/dotnet publish -c Release -o $(WorkItemDirectory)/startup -f net6.0 -r osx-$(Architecture) $(PerformanceDirectory)/src/tools/ScenarioMeasurement/Startup/Startup.csproj
171+ displayName : Build Startup tool (MAC)
172+ env :
173+ PERFLAB_TARGET_FRAMEWORKS : net6.0
174+ condition : and(succeeded(), eq(variables['Agent.Os'], 'Darwin'))
160175 # build SizeOnDisk
161176 - script : $(PayloadDirectory)\dotnet\dotnet.exe publish -c Release -o $(WorkItemDirectory)\SOD -f net6.0 -r win-$(Architecture) $(PerformanceDirectory)\src\tools\ScenarioMeasurement\SizeOnDisk\SizeOnDisk.csproj
162177 displayName : Build SizeOnDisk tool (Windows)
@@ -167,7 +182,20 @@ jobs:
167182 displayName : Build SizeOnDisk tool (Linux)
168183 env :
169184 PERFLAB_TARGET_FRAMEWORKS : net6.0
170- condition : and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'))
185+ condition : and(succeeded(), eq(variables['Agent.Os'], 'Linux'))
186+ - script : $(PayloadDirectory)/dotnet/dotnet publish -c Release -o $(WorkItemDirectory)/SOD -f net6.0 -r osx-$(Architecture) $(PerformanceDirectory)/src/tools/ScenarioMeasurement/SizeOnDisk/SizeOnDisk.csproj
187+ displayName : Build SizeOnDisk tool (MAC)
188+ env :
189+ PERFLAB_TARGET_FRAMEWORKS : net6.0
190+ condition : and(succeeded(), eq(variables['Agent.Os'], 'Darwin'))
191+
192+ # Zip the workitem directory (for xharness based workitems)
193+ - task : ArchiveFiles@2
194+ inputs :
195+ rootFolderOrFile : ' $(WorkItemDirectory)'
196+ includeRootFolder : false
197+ archiveFile : ' $(WorkItemDirectory).zip'
198+ verbose : True
171199
172200 # run perf testing in helix
173201 - template : /eng/pipelines/coreclr/templates/perf-send-to-helix.yml
0 commit comments