-
Notifications
You must be signed in to change notification settings - Fork 517
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into net6-templates
- Loading branch information
Showing
4 changed files
with
240 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,234 @@ | ||
# YAML pipeline build definition | ||
# https://devdiv.visualstudio.com/DevDiv/_apps/hub/ms.vss-ciworkflow.build-ci-hub?_a=edit-build-definition&id=13947&view=Tab_Tasks | ||
# | ||
# YAML build pipeline based on the Jenkins multi-stage (main branch) build workflow | ||
# https://jenkins.internalx.com/view/Xamarin.MaciOS/job/macios/job/main/ | ||
# https://jenkins.internalx.com/view/Xamarin.MaciOS/job/macios/configure | ||
# | ||
parameters: | ||
|
||
- name: provisionatorChannel | ||
displayName: Provisionator channel to use | ||
type: string | ||
default: 'latest' | ||
|
||
- name: pool | ||
type: string | ||
displayName: Bot pool to use | ||
default: automatic | ||
values: | ||
- pr | ||
- ci | ||
- automatic | ||
|
||
- name: runTests | ||
displayName: Run Simulator Tests | ||
type: boolean | ||
default: true | ||
|
||
- name: runDeviceTests | ||
displayName: Run Device Tests | ||
type: boolean | ||
default: false | ||
|
||
- name: runOldMacOSTests | ||
displayName: Run Tests on older macOS versions | ||
type: boolean | ||
default: true | ||
|
||
- name: runWindowsIntegration | ||
displayName: Run Windows integration tests | ||
type: boolean | ||
default: true | ||
|
||
- name: runGovernanceTests | ||
displayName: Run Governance Checks | ||
type: boolean | ||
default: true | ||
|
||
- name: runSamples | ||
displayName: Run Samples | ||
type: boolean | ||
default: false | ||
|
||
- name: enableDotnet | ||
displayName: Build Dotnet | ||
type: boolean | ||
default: true | ||
|
||
- name: enableAPIDiff | ||
displayName: Enable API diff generation | ||
type: boolean | ||
default: true | ||
|
||
- name: forceInsertion | ||
displayName: Force Insertion | ||
type: boolean | ||
default: false | ||
|
||
- name: skipESRP | ||
displayName: Skip ESRP | ||
type: boolean | ||
default: false # only to be used when testing the CI and we do not need a signed pkg | ||
|
||
# We are doing some black magic. We have several templates that | ||
# are executed with different parameters. | ||
# | ||
# The problem with that is that templates cannot be used with the | ||
# matrix strategy, so we are doing a little trick based on the following: | ||
# | ||
# 1. We can create a template that expands. | ||
# 2. We can use the each keyword, which allow a loop | ||
# 3. yaml is a super set of json, therefore, it was json dictionaries | ||
# | ||
# the following parameters, define an array of dictionaries with the | ||
# data required by the templates. Do you want a new stage with | ||
# device tests, no more copy paste, just add the new config. | ||
# | ||
- name: simTestsConfigurations | ||
displayName: Simulator test configurations to run | ||
type: object | ||
default: [ | ||
{ | ||
testPrefix: 'simulator', | ||
stageName: 'simulator', | ||
displayName: 'Simulator Tests', | ||
useXamarinStorage: False, | ||
testsLabels: '--label=run-all-tests,skip-device-tests', # TODO same as calling jenkins, we need to use diff one in ci an | ||
statusContext: 'VSTS: simulator tests iOS', | ||
makeTarget: 'jenkins', | ||
} | ||
] | ||
|
||
- name: deviceTestsConfigurations | ||
displayName: Device test configurations to run | ||
type: object | ||
default: [ | ||
{ | ||
testPrefix: 'iOS64', | ||
stageName: 'ios64b_device', | ||
displayName: 'iOS64 Device Tests', | ||
testPool: 'VSEng-Xamarin-Mac-Devices', | ||
useXamarinStorage: False, | ||
testsLabels: '--label=run-ios-64-tests,run-non-monotouch-tests,run-monotouch-tests,run-mscorlib-tests', | ||
statusContext: 'VSTS: device tests iOS', | ||
makeTarget: 'vsts-device-tests', | ||
extraBotDemands: [ | ||
'ios', | ||
] | ||
}, | ||
{ | ||
testPrefix: 'tvos', | ||
stageName: 'tvos_device', | ||
displayName: 'tvOS Device Tests', | ||
testPool: 'VSEng-Xamarin-Mac-Devices', | ||
useXamarinStorage: False, | ||
testsLabels: '--label=run-tvos-tests,run-non-monotouch-tests,run-monotouch-tests,run-mscorlib-tests', | ||
statusContext: 'VSTS: device tests tvOS', | ||
makeTarget: 'vsts-device-tests', | ||
extraBotDemands: [ | ||
'tvos', | ||
] | ||
}] | ||
|
||
- name: macTestsConfigurations | ||
displayName: macOS test configurations to run | ||
type: object | ||
default: [ | ||
{ | ||
stageName: 'mac_10_15', | ||
displayName: 'Mac Catalina (10.15)', | ||
macPool: 'macOS-10.15', | ||
useImage: true, | ||
statusContext: 'Mac Catalina (10.15)', | ||
demands: [ | ||
"Agent.OS -equals Darwin", | ||
"Agent.OSVersion -equals '10.15'" | ||
] | ||
}, | ||
{ | ||
stageName: 'mac_11_5_m1', | ||
displayName: 'M1 - Mac Big Sur (11.5)', | ||
macPool: 'VSEng-VSMac-Xamarin-Shared', | ||
useImage: false, | ||
statusContext: 'M1 - Mac Big Sur (11.5)', | ||
demands: [ | ||
"Agent.OS -equals Darwin", | ||
"macOS.Name -equals BigSur", | ||
"macOS.Architecture -equals arm64", | ||
"Agent.HasDevices -equals False", | ||
"Agent.IsPaired -equals False" | ||
] | ||
}] | ||
|
||
resources: | ||
repositories: | ||
- repository: self | ||
checkoutOptions: | ||
submodules: true | ||
|
||
- repository: templates | ||
type: github | ||
name: xamarin/yaml-templates | ||
ref: refs/heads/main | ||
endpoint: xamarin | ||
|
||
- repository: sdk-insertions | ||
type: github | ||
name: xamarin/sdk-insertions | ||
ref: refs/heads/main | ||
endpoint: xamarin | ||
|
||
- repository: maccore | ||
type: github | ||
name: xamarin/maccore | ||
ref: refs/heads/main | ||
endpoint: xamarin | ||
|
||
- repository: release-scripts | ||
type: github | ||
name: xamarin/release-scripts | ||
ref: refs/heads/only_codesign | ||
endpoint: xamarin | ||
|
||
variables: | ||
- ${{ if contains(variables['Build.DefinitionName'], 'private') }}: | ||
- template: templates/vsts-variables.yml | ||
- template: templates/variables.yml | ||
- name: MicrobuildConnector | ||
value: 'MicroBuild Signing Task (DevDiv)' | ||
|
||
trigger: none | ||
|
||
schedules: | ||
|
||
# the translations team wants a green build, we can do that on sundays even if | ||
# the code did not change and without the device tests. | ||
- cron: "0 12 * * 0" | ||
displayName: Weekly Translations build (Sunday @ noon) | ||
branches: | ||
include: | ||
- main | ||
always: true | ||
|
||
stages: | ||
- template: templates/main-stage.yml | ||
parameters: | ||
provisionatorChannel: ${{ parameters.provisionatorChannel }} | ||
pool: ${{ parameters.pool }} | ||
runTests: ${{ parameters.runTests }} | ||
runDeviceTests: ${{ parameters.runDeviceTests }} | ||
runOldMacOSTests: ${{ parameters.runOldMacOSTests }} | ||
runWindowsIntegration: ${{ parameters.runWindowsIntegration }} | ||
runGovernanceTests: ${{ parameters.runGovernanceTests }} | ||
runSamples: ${{ parameters.runSamples }} | ||
enableDotnet: ${{ parameters.enableDotnet }} | ||
enableAPIDiff: ${{ parameters.enableAPIDiff }} | ||
forceInsertion: ${{ parameters.forceInsertion }} | ||
skipESRP: ${{ parameters.skipESRP }} | ||
simTestsConfigurations: ${{ parameters.simTestsConfigurations }} | ||
deviceTestsConfigurations: ${{ parameters.deviceTestsConfigurations }} | ||
macTestsConfigurations: ${{ parameters.macTestsConfigurations }} | ||
signingSetupSteps: | ||
- template: ./templates/sign-and-notarized/setup.yml | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4977994
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💻 [CI Build] Tests on macOS Mac Catalina (10.15) passed 💻
✅ All tests on macOS Mac Catalina (10.15) passed.
Pipeline on Agent
Hash: 4977994d5dfe9fb3b60a59163318bd3daeae3a38 [CI build]
4977994
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💻 [CI Build] Tests on macOS M1 - Mac Big Sur (11.5) passed 💻
✅ All tests on macOS M1 - Mac Big Sur (11.5) passed.
Pipeline on Agent
Hash: 4977994d5dfe9fb3b60a59163318bd3daeae3a38 [CI build]
4977994
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📚 [CI Build] Artifacts 📚
Packages generated
View packages
Pipeline on Agent XAMMINI-053.Monterey
Hash: 4977994d5dfe9fb3b60a59163318bd3daeae3a38 [CI build]
4977994
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❌ [CI Build] Tests failed on VSTS: simulator tests iOS ❌
Tests failed on VSTS: simulator tests iOS.
Test results
21 tests failed, 213 tests passed.
Failed tests
Tests run: 37 Passed: 35 Inconclusive: 0 Failed: 2 Ignored: 0)
Pipeline on Agent XAMBOT-1106.Monterey'
Merge branch 'main' into net6-templates