summaryrefslogtreecommitdiff
path: root/eng/pipelines/internal.yml
blob: cacacffe2984e45e9054da48554f7cc21cdd9fa1 (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
trigger:
  batch: true
  branches:
    include:
    - release/3.0
    - release/3.1

pr: none

schedules:
- cron: "0 13 * * *"
  displayName: Mon through Sun at 5:00 AM (UTC-8:00)
  branches:
    include:
    - master
  always: true
- cron: "0 1 * * *"
  displayName: Mon through Sun at 5:00 PM (UTC-8:00)
  branches:
    include:
    - master
  always: true

# See mappings in https://github.com/dotnet/arcade/blob/055bb2951c3107189551ab912b4e5550928b5afb/src/Microsoft.DotNet.Arcade.Sdk/tools/SdkTasks/PublishToPackageFeed.proj#L33-L48
variables:
- name: _DotNetArtifactsCategory
  value: CORECLR

stages:
  - stage: build
    jobs:
    #
    # Release builds
    #
    - template: /eng/platform-matrix.yml
      parameters:
        jobTemplate: build-job.yml
        buildConfig: release
        platformGroup: all
        jobParameters:
          # Publishing packages to blob feeds sometimes takes a long time
          # due to waiting for an exclusive lock on the feed.
          # See https://github.com/dotnet/arcade/blob/master/Documentation/CorePackages/AsyncPublishing.md
          timeoutInMinutes: 120

    #
    # Publish build information to Build Assets Registry
    #
    # This job gathers build assets from the pipeline (from each official
    # product build job), and publishes them to the build assets
    # registry. Its dependencies should be updated to include all of the
    # official builds if we add more platform/arch combinations.
    - template: /eng/finalize-publish.yml
      parameters:
        dependsOn:
        - build_Linux_arm_release
        - build_Linux_arm64_release
        - build_Linux_musl_x64_release
        - build_Linux_musl_arm64_release
        - build_Linux_rhel6_x64_release
        - build_Linux_x64_release
        - build_OSX_x64_release
        - build_Windows_NT_x64_release
        - build_Windows_NT_x86_release
        - build_Windows_NT_arm_release
        - build_Windows_NT_arm64_release

  - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
    - template: /eng/common/templates/post-build/post-build.yml
      parameters:
        # Symbol validation is not entirely reliable as of yet, so should be turned off until https://github.com/dotnet/arcade/issues/2871 is resolved.
        enableSymbolValidation: false

  - stage: test
    displayName: Test
    jobs:
    #
    # Release test builds
    #
    - template: /eng/platform-matrix.yml
      parameters:
        jobTemplate: test-job.yml
        buildConfig: release
        platformGroup: all
        helixQueueGroup: all
        ignoreDependencyOnBuildJobs: true
        jobParameters:
          testGroup: outerloop

    #
    # ReadyToRun test builds
    #
    - template: /eng/platform-matrix.yml
      parameters:
        jobTemplate: test-job.yml
        buildConfig: release
        platformGroup: all
        helixQueueGroup: all
        ignoreDependencyOnBuildJobs: true
        jobParameters:
          testGroup: outerloop
          readyToRun: true
          displayNameArgs: R2R