From c1b5c4029cfc56ebb77ce3369a5b612ec56d35c5 Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Thu, 9 Jun 2022 17:28:00 -0400 Subject: [PATCH 1/3] [Tests] Ensure we do check the catalyst version on catalyst. (#15240) --- tests/monotouch-test/HomeKit/HMCharacteristicTest.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/monotouch-test/HomeKit/HMCharacteristicTest.cs b/tests/monotouch-test/HomeKit/HMCharacteristicTest.cs index cde1d2ecc078..e4d5010428bd 100644 --- a/tests/monotouch-test/HomeKit/HMCharacteristicTest.cs +++ b/tests/monotouch-test/HomeKit/HMCharacteristicTest.cs @@ -27,7 +27,9 @@ public class HMCharacteristicTest [Test] public void WriteValueNullTest () { +#if __MACCATALYST__ TestRuntime.AssertSystemVersion (ApplePlatform.MacCatalyst, 14,0); +#endif var characteristic = new HMCharacteristic (); Assert.Throws (delegate { characteristic.WriteValue (null, null); }, $"WriteValue should accept a null argument for 'value'."); } From b504dcb14041500f01c8bdece95e3149e35a800b Mon Sep 17 00:00:00 2001 From: Manuel de la Pena Date: Thu, 9 Jun 2022 17:28:22 -0400 Subject: [PATCH 2/3] [CI] Add another pipeline just for cronjobs so that we can easily identify those builds. (#15239) --- tools/devops/automation/build-cronjob.yml | 234 +++++++++++++++++++++ tools/devops/automation/build-pipeline.yml | 11 - 2 files changed, 234 insertions(+), 11 deletions(-) create mode 100644 tools/devops/automation/build-cronjob.yml diff --git a/tools/devops/automation/build-cronjob.yml b/tools/devops/automation/build-cronjob.yml new file mode 100644 index 000000000000..5e46ddacb6bb --- /dev/null +++ b/tools/devops/automation/build-cronjob.yml @@ -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 + diff --git a/tools/devops/automation/build-pipeline.yml b/tools/devops/automation/build-pipeline.yml index ebd80bfc118b..181384fa6ab2 100644 --- a/tools/devops/automation/build-pipeline.yml +++ b/tools/devops/automation/build-pipeline.yml @@ -218,17 +218,6 @@ trigger: - tools/mtouch/README.md - msbuild/Xamarin.Localization.MSBuild/README.md -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: From e974999d94b75d1434f91606e805e0cd93eb6ec4 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Fri, 10 Jun 2022 10:39:15 +0200 Subject: [PATCH 3/3] [apidiff] Bump the .NET reference files to the final stable version we released. (#15235) --- Make.config | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Make.config b/Make.config index fe08229d9de3..1f78bc237b65 100644 --- a/Make.config +++ b/Make.config @@ -38,10 +38,10 @@ include $(TOP)/Make.versions APIDIFF_REFERENCES_iOS=https://bosstoragemirror.blob.core.windows.net/wrench/d17-2/568bdb24e9d53ac9b8c96512b1591165031a7f98/6003154/package/bundle.zip APIDIFF_REFERENCES_Mac=https://bosstoragemirror.blob.core.windows.net/wrench/d17-2/568bdb24e9d53ac9b8c96512b1591165031a7f98/6003154/package/bundle.zip -APIDIFF_REFERENCES_DOTNET_iOS=https://bosstoragemirror.blob.core.windows.net/wrench/6.0.3xx/3f73ae00b1c49501673f56bcf6359f4eafc14bd2/6103038/package/bundle.zip -APIDIFF_REFERENCES_DOTNET_tvOS=https://bosstoragemirror.blob.core.windows.net/wrench/6.0.3xx/3f73ae00b1c49501673f56bcf6359f4eafc14bd2/6103038/package/bundle.zip -APIDIFF_REFERENCES_DOTNET_macOS=https://bosstoragemirror.blob.core.windows.net/wrench/6.0.3xx/3f73ae00b1c49501673f56bcf6359f4eafc14bd2/6103038/package/bundle.zip -APIDIFF_REFERENCES_DOTNET_MacCatalyst=https://bosstoragemirror.blob.core.windows.net/wrench/6.0.3xx/3f73ae00b1c49501673f56bcf6359f4eafc14bd2/6103038/package/bundle.zip +APIDIFF_REFERENCES_DOTNET_iOS=https://bosstoragemirror.blob.core.windows.net/wrench/6.0.3xx/ce10c913a2921673b0caedcd268778b46d52c392/6131168/package/bundle.zip +APIDIFF_REFERENCES_DOTNET_tvOS=https://bosstoragemirror.blob.core.windows.net/wrench/6.0.3xx/ce10c913a2921673b0caedcd268778b46d52c392/6131168/package/bundle.zip +APIDIFF_REFERENCES_DOTNET_macOS=https://bosstoragemirror.blob.core.windows.net/wrench/6.0.3xx/ce10c913a2921673b0caedcd268778b46d52c392/6131168/package/bundle.zip +APIDIFF_REFERENCES_DOTNET_MacCatalyst=https://bosstoragemirror.blob.core.windows.net/wrench/6.0.3xx/ce10c913a2921673b0caedcd268778b46d52c392/6131168/package/bundle.zip PACKAGE_HEAD_REV=$(shell git rev-parse HEAD)