forked from dotnet/corefx
-
Notifications
You must be signed in to change notification settings - Fork 1
/
.azure-ci.yml
142 lines (125 loc) · 5.18 KB
/
.azure-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# Setting batch to true, triggers one build at a time.
# if there is a push while a build in progress, it will wait,
# until the running build finishes, and produce a build with all the changes
# that happened during the last build.
trigger:
batch: true
branches:
include:
- master
- release/3.* # TODO: (Consolidation) Remove when consolidated
paths:
exclude:
- Documentation/* # TODO: (Consolidation) Remove when consolidated
- docs/*
- CODE-OF-CONDUCT.md
- CONTRIBUTING.md
- LICENSE.TXT
- PATENTS.TXT
- README.md
- SECURITY.md
- THIRD-PARTY-NOTICES.TXT
- src/installer/*
- src/coreclr/*
- eng/pipelines/coreclr/*
- eng/pipelines/installer/*
pr:
branches:
include:
- master
- release/3.* # TODO: (Consolidation) Remove when consolidated
paths:
exclude:
- Documentation/* # TODO: (Consolidation) Remove when consolidated
- docs/*
- CODE-OF-CONDUCT.md
- CONTRIBUTING.md
- LICENSE.TXT
- PATENTS.TXT
- README.md
- SECURITY.md
- THIRD-PARTY-NOTICES.TXT
- src/installer/*
- src/coreclr/*
- eng/pipelines/coreclr/*
- eng/pipelines/installer/*
resources:
containers:
- container: centos7_container
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-f39df28-20191023143754
- container: centos6_container
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-6-f39df28-20191023143802
- container: alpine_39_container
image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-WithNode-0fc54a3-20190918214015
- container: alpine_37_arm64_container
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-406629a-20191023143847
- container: ubuntu_1604_arm64_cross_container
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-cfdd435-20191023143847
- container: ubuntu_1604_arm_cross_container
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-14.04-23cacb0-20191023143847
- container: ubuntu_1604
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-a50a721-20191023143845
variables:
- ${{ if contains(variables['Build.DefinitionName'], 'runtime') }}: # TODO: (Consolidation) remove this condition
- template: variables.yml
# TODO: (Consolidation) remove this conditional block
- ${{ if not(contains(variables['Build.DefinitionName'], 'runtime')) }}:
- template: /eng/pipelines/variables.yml
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}:
- group: DotNet-Blob-Feed
- group: corefx-sdl-validation
- name: _dotnetFeedUrl
value: https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
- name: _PublishUsingPipelines
value: true
- name: _DotNetArtifactsCategory
value: .NETCore
- name: _DotNetValidationArtifactsCategory
value: .NETCore
stages:
# Windows legs
- template: ${{ variables['pipelinesPath'] }}/windows.yml
parameters:
isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
# Linux legs
- template: ${{ variables['pipelinesPath'] }}/linux.yml
parameters:
isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
# MacOS legs
- template: ${{ variables['pipelinesPath'] }}/macos.yml
parameters:
isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
# FreeBSD leg is only for official builds
# - template: ${{ variables['pipelinesPath'] }}/freebsd.yml
# parameters:
# isOfficialBuild: ${{ and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}
# fullMatrix: ${{ notIn(variables['Build.Reason'], 'PullRequest') }}
# Publish and validation steps. Only run in official builds
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notIn(variables['Build.Reason'], 'PullRequest')) }}:
- template: ${{ variables['pipelinesPath'] }}/pre-publish.yml
parameters:
dependsOn:
- WindowsStage
- LinuxStage
- MacOSStage
# - FreeBSD
- template: eng\common\templates\post-build\post-build.yml
parameters:
validateDependsOn:
- PrePublish
enableSymbolValidation: false # https://github.com/dotnet/arcade/issues/2871
SDLValidationParameters:
enable: true
params: ' -SourceToolsList @("policheck","credscan")
-TsaInstanceURL "$(TsaInstanceURL)"
-TsaProjectName "$(TsaProjectName)"
-TsaNotificationEmail "$(TsaNotificationEmail)"
-TsaCodebaseAdmin "$(TsaCodebaseAdmin)"
-TsaBugAreaPath "$(TsaBugAreaPath)"
-TsaIterationPath "$(TsaIterationPath)"
-TsaRepositoryName "CoreFX"
-TsaCodebaseName "CoreFX"
-TsaPublish $True'