Welcome to mirror list, hosted at ThFree Co, Russian Federation.

azure-pipelines.yml « eng - github.com/mono/linker.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 48b71a1491ffb7764b94d7c16af2ab1c2b51cf2a (plain)
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
trigger:
  batch: true
  branches:
    include:
    - master
    - release/*

variables:
- name: officialBuild
  value: ${{ and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}
- name: _BuildConfig
  value: Release
- name: _BuildArgs
  value: /p:ArcadeBuild=true
- name: _DotNetArtifactsCategory
  value: .NETCore
- ${{ if eq(variables.officialBuild, 'true') }}:
  - name: _BuildArgs
    value: ${{ format('{0} /p:OfficialBuildId=$(Build.BuildNumber) /p:Test=false', variables['_BuildArgs']) }}
  # Provide HelixApiAccessToken for telemetry
  - group: DotNet-HelixApi-Access

stages:
- stage: build
  displayName: Build
  jobs:
  - template: /eng/common/templates/jobs/jobs.yml
    parameters:

      enableTelemetry: true # send helix telemetry
      helixRepo: mono/linker
      enablePublishUsingPipelines: true
      enablePublishBuildArtifacts: true # publish build logs to pipeline storage
      # enablePublishTestResults
      enablePublishBuildAssets: true # generate build manifests and publish to BAR in internal builds
      enableMicrobuild: true # only affects internal builds

      jobs:

      - job: Windows_NT
        pool:
          ${{ if eq(variables.officialBuild, 'false') }}:
            name: Hosted VS2017
          ${{ if eq(variables.officialBuild, 'true') }}:
            name: NetCoreInternal-Pool
            queue: BuildPool.Windows.10.Amd64.VS2017
        variables:
          - ${{ if eq(variables.officialBuild, 'false') }}:
            - _SignType: test
            - _PublishArgs: ''
          - ${{ if eq(variables.officialBuild, 'true') }}:
            - group: DotNet-Blob-Feed
            - _TeamName: .NET # required by microbuild install step
            - _SignType: real # used in the arcade templates that install microbuild.
            - _DotNetPublishToBlobFeed: true # used by arcade templates that gather build asset manifests
            - _PublishArgs: /p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed)
                            /p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
                            /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
                            /p:DotNetArtifactsCategory=$(_DotNetArtifactsCategory)
                            /p:DotNetPublishUsingPipelines=true
          - DotNetSignType: ${{ format('{0}', variables._SignType) }} # DotNetSignType defaults to real if not specified
        steps:
        - checkout: self
          submodules: true
        - script: eng\common\cibuild.cmd -projects $(Build.SourcesDirectory)\illink.sln
                  -configuration $(_BuildConfig) $(_BuildArgs) $(_PublishArgs)
                  -warnAsError "$false"
                  -nodeReuse "$false" # https://github.com/Microsoft/vstest/issues/1503
          env:
            # https://github.com/Microsoft/vstest/issues/1503#issuecomment-410732193
            MSBUILDENSURESTDOUTFORTASKPROCESSES: 1
          ${{ if eq(variables.officialBuild, 'false') }}:
            displayName: Build illink.sln $(_BuildConfig)
          ${{ if eq(variables.officialBuild, 'true') }}:
            displayName: Build and publish illink.sln $(_BuildConfig)

      - ${{ if eq(variables.officialBuild, 'false') }}:
        - job: Linux
          condition: eq(variables.officialBuild, 'false')
          pool:
            name: Hosted Ubuntu 1604
          steps:
          - checkout: self
            submodules: true
          - script: eng/common/cibuild.sh --projects $(Build.SourcesDirectory)/illink.sln
                    --configuration $(_BuildConfig) $(_BuildArgs)
                    --warnAsError false
                    --nodeReuse false # https://github.com/Microsoft/vstest/issues/1503
            env:
              # https://github.com/Microsoft/vstest/issues/1503#issuecomment-410732193
              MSBUILDENSURESTDOUTFORTASKPROCESSES: 1
            displayName: Build illink.sln $(_BuildConfig)

      - ${{ if eq(variables.officialBuild, 'false') }}:
        - job: Linux_Mono
          pool:
            name: Hosted Ubuntu 1604
          steps:
          - checkout: self
            submodules: true
          - script: |
              mkdir -p artifacts/log/$(_BuildConfig)
              mono --version | tee artifacts/log/$(_BuildConfig)/mono-version.txt
              make -C monobuild CONFIGURATION=$(_BuildConfig)
            displayName: Build and test
          - task: PublishTestResults@2
            inputs:
              testResultsFormat: 'NUnit'
              testResultsFiles: 'test/Mono.Linker.Tests/TestResults.xml'

      - ${{ if eq(variables.officialBuild, 'false') }}:
        - job: macOS
          pool:
              name: Hosted MacOS
          steps:
          - checkout: self
            submodules: true
          - script: eng/common/cibuild.sh --projects $(Build.SourcesDirectory)/illink.sln
                    --configuration $(_BuildConfig) $(_BuildArgs)
                    --warnAsError false
                    --nodeReuse false # https://github.com/Microsoft/vstest/issues/1503
            env:
              # https://github.com/Microsoft/vstest/issues/1503#issuecomment-410732193
              MSBUILDENSURESTDOUTFORTASKPROCESSES: 1
            displayName: Build illink.sln $(_BuildConfig)

# Post-Build Arcade logic
- ${{ if eq(variables.officialBuild, 'true') }}:
  - template: /eng/common/templates/post-build/post-build.yml