Skip to content

Commit 79e9156

Browse files
committed
Work CI-CD
- Add template and steps to use specific MDP for mscorlib build.
1 parent 795d4a5 commit 79e9156

File tree

2 files changed

+85
-0
lines changed

2 files changed

+85
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Copyright (c) .NET Foundation and Contributors
2+
# See LICENSE file in the project root for full license information.
3+
4+
steps:
5+
- task: PowerShell@2
6+
displayName: Check MDP for build
7+
condition: ne(variables['System.PullRequest.PullRequestId'], '')
8+
inputs:
9+
failOnStderr: false
10+
targetType: "inline"
11+
script: |
12+
13+
# compute authorization header in format "AUTHORIZATION: basic 'encoded token'"
14+
# 'encoded token' is the Base64 of the string "nfbot:personal-token"
15+
$auth = "basic $([System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("nfbot:$(GitHubToken)")))"
16+
17+
# find PR
18+
"Getting PR#$env:System_PullRequest_PullRequestNumber details..." | Write-Host -ForegroundColor White -NoNewline
19+
$pr = Invoke-WebRequest "https://api.github.com/repos/$env:Build_Repository_Name/pulls/$env:System_PullRequest_PullRequestNumber" | ConvertFrom-Json
20+
21+
if($($pr.number) -eq "$env:System_PullRequest_PullRequestNumber")
22+
{
23+
'##[command] OK' | Write-Host -ForegroundColor Green
24+
}
25+
26+
# grab PR commit message
27+
$prCommitMessage = $($pr.body)
28+
29+
# look for test prompt in PR commit message
30+
# pattern is "[build with MDP buildId NNN]"
31+
32+
if($prCommitMessage -match "\[build with MDP buildId (\d+)\]")
33+
{
34+
$buildId = $matches[1]
35+
"AZDO build ID found: $buildId" | Write-Host -ForegroundColor White
36+
37+
echo "##vso[task.setvariable variable=MDP_BUILDID]$buildId"
38+
}
39+
else
40+
{
41+
"No build ID found" | Write-Host -ForegroundColor Red
42+
}
43+
env:
44+
GITHUB_TOKEN: $(GitHubToken)
45+
46+
- task: DownloadPipelineArtifact@2
47+
condition: >-
48+
and(
49+
eq(variables['DownloadMDP'], true),
50+
ne(variables['MDP_BUILDID'], '')
51+
)
52+
displayName: Download MDP
53+
inputs:
54+
buildType: specific
55+
project: 'metadmetadata-processorataprocessor'
56+
definition: '43'
57+
buildVersionToDownload: specific
58+
allowFailedBuilds: true
59+
pipelineId: $(MDP_BUILDID)
60+
artifactName: 'deployables'
61+
targetPath: '$(Pipeline.Workspace)/mdp'
62+
itemPattern: '*.MsBuildTask.dll'
63+
64+
- task: PowerShell@2
65+
condition: >-
66+
and(
67+
succeeded(),
68+
eq(variables['DownloadNanoClrPreview'], true),
69+
ne(variables['MDP_BUILDID'], '')
70+
)
71+
displayName: Set MDP path
72+
inputs:
73+
targetType: 'inline'
74+
script: |
75+
Write-Host "##vso[task.setvariable variable=NF_MDP_MSBUILDTASK_PATH]$(Pipeline.Workspace)/mdp/nanoFramework.Tools.MetadataProcessor.MsBuildTask.dll"

azure-pipelines.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,13 @@ jobs:
110110
Write-Host "##[command] **mscorlib tests are to be runned**"
111111
echo "##vso[task.setvariable variable=RUN_MSCORLIB_TESTS;isOutput=true]true"
112112
}
113+
114+
# check if should use specific MDP for mscorbuild
115+
if($commit.commit.message -match "\[build with MDP buildId (\d+)\]")
116+
{
117+
Write-Host "##[command] **Using specific MDP for mscorlib build**"
118+
echo "##vso[task.setvariable variable=USE_SPECIFIC_MDP;isOutput=true]true"
119+
}
113120
}
114121
else
115122
{
@@ -1241,6 +1248,7 @@ jobs:
12411248
12421249
dependsOn:
12431250
- Build_nanoCLR_CLI
1251+
- Check_Build_Options
12441252

12451253
pool:
12461254
vmImage: "windows-latest"
@@ -1250,6 +1258,7 @@ jobs:
12501258
solution: "nanoFramework.CoreLibrary.sln"
12511259
buildPlatform: "Any CPU"
12521260
buildConfiguration: "Release"
1261+
DownloadMDP: $[ dependencies.Check_Build_Options.outputs['BuildOptions.USE_SPECIFIC_MDP'] ]
12531262

12541263
steps:
12551264
- checkout: self
@@ -1260,6 +1269,7 @@ jobs:
12601269
persistCredentials: true
12611270

12621271
- template: azure-pipelines-templates/check-mscorlib-to-test.yml
1272+
- template: azure-pipelines-templates/check-mdp-for-build.yml
12631273

12641274
# Download nanoclr from build artifacts
12651275
- task: DownloadBuildArtifacts@1

0 commit comments

Comments
 (0)