diff --git a/dotnet/Makefile b/dotnet/Makefile
index 0d09a8b497..9e1a931046 100644
--- a/dotnet/Makefile
+++ b/dotnet/Makefile
@@ -129,18 +129,6 @@ LOCAL_WORKLOAD_TARGETS += Workloads/Microsoft.NET.Sdk.$(1)/LICENSE
endef
$(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call WorkloadTargets,$(platform),$(shell echo $(platform) | tr A-Z a-z),$($(platform)_NUGET_VERSION_NO_METADATA))))
-$(DOTNET_NUPKG_DIR)/vs-workload.props: Workloads/vs-workload.template.props
- $(Q) rm -f $@.tmp
- $(Q_GEN) sed \
- $(foreach platform,$(DOTNET_PLATFORMS_UPPERCASE),-e "s/@$(platform)_WORKLOAD_VERSION@/$($(platform)_NUGET_VERSION).$($(platform)_NUGET_COMMIT_DISTANCE)/g") \
- -e "s/@PACK_VERSION_LONG@/$(IOS_NUGET_VERSION_NO_METADATA)/g" \
- -e "s/@PACK_VERSION_SHORT@/$(IOS_NUGET_VERSION).$(IOS_NUGET_COMMIT_DISTANCE)/g" \
- $< > $@.tmp
- $(Q) mv $@.tmp $@
-
-$(DOTNET_NUPKG_DIR)/SignList.xml: Workloads/SignList.xml
- $(Q) $(CP) $< $@
-
TEMPLATED_FILES = \
$(foreach platform,$(DOTNET_PLATFORMS),Microsoft.$(platform).Sdk/targets/Microsoft.$(platform).Sdk.Versions.props) \
$(foreach platform,$(DOTNET_PLATFORMS),Microsoft.$(platform).Sdk/targets/Microsoft.$(platform).Sdk.SupportedTargetPlatforms.props) \
@@ -156,10 +144,12 @@ $(foreach platform,$(DOTNET_PLATFORMS),$(eval $(call NupkgDefinition,$(platform)
# Create the nuget in a temporary directory (nupkgs/)
define CreateNuGetTemplate
-nupkgs/$(1)$(4).$(2).nupkg: $(TEMPLATED_FILES) $(WORKLOAD_TARGETS) $(3) package/$(1)/package.csproj $(wildcard package/*.csproj) $(wildcard $(DOTNET_DESTDIR)/$(1)/* $(DOTNET_DESTDIR)/$(1)/*/* $(DOTNET_DESTDIR)/$(1)/*/*/* $(DOTNET_DESTDIR)/$(1)/*/*/*/*) global.json .stamp-workaround-for-maccore-issue-2427
+nupkgs/$(1)$(4).$(2)+$(NUGET_BUILD_METADATA).nupkg: $(TEMPLATED_FILES) $(WORKLOAD_TARGETS) $(3) package/$(1)/package.csproj $(wildcard package/*.csproj) $(wildcard $(DOTNET_DESTDIR)/$(1)/* $(DOTNET_DESTDIR)/$(1)/*/* $(DOTNET_DESTDIR)/$(1)/*/*/* $(DOTNET_DESTDIR)/$(1)/*/*/*/*) global.json .stamp-workaround-for-maccore-issue-2427
@# Delete any versions of the nuget we're building
$$(Q) rm -f nupkgs/$(1).*.nupkg
$$(Q_PACK) $(DOTNET6) pack package/$(1)/package.csproj -p:VersionBand=$(DOTNET6_VERSION_BAND) --output "$$(dir $$@)" $(DOTNET_PACK_VERBOSITY) "/bl:$$@.binlog"
+ @# Nuget pack doesn't add the metadata to the filename, but we want that, so rename nuget to contain the full name
+ $$(Q) mv "nupkgs/$(1)$(4).$(2).nupkg" "$$@"
@# Clean the local feed
$$(Q_NUGET_DEL) if test -d $(DOTNET_FEED_DIR)/$(shell echo $(1) | tr A-Z a-z)/$(2); then nuget delete $(1) $(2) -source $(abspath $(DOTNET_FEED_DIR)) -NonInteractive $(NUGET_VERBOSITY); fi
@# Add the nupkg to our local feed
@@ -167,10 +157,12 @@ nupkgs/$(1)$(4).$(2).nupkg: $(TEMPLATED_FILES) $(WORKLOAD_TARGETS) $(3) package/
endef
define CreateWindowsNuGetTemplate
-nupkgs/$(1).$(2).nupkg: $(3) $(WORKLOAD_TARGETS) package/$(1)/package.csproj $(wildcard package/*.csproj) $(wildcard $(DOTNET_DESTDIR)/$(1)/* $(DOTNET_DESTDIR)/$(1)/*/* $(DOTNET_DESTDIR)/$(1)/*/*/* $(DOTNET_DESTDIR)/$(1)/*/*/*/*) global.json .stamp-workaround-for-maccore-issue-2427
+nupkgs/$(1).$(2)+$(NUGET_BUILD_METADATA).nupkg: $(3) $(WORKLOAD_TARGETS) package/$(1)/package.csproj $(wildcard package/*.csproj) $(wildcard $(DOTNET_DESTDIR)/$(1)/* $(DOTNET_DESTDIR)/$(1)/*/* $(DOTNET_DESTDIR)/$(1)/*/*/* $(DOTNET_DESTDIR)/$(1)/*/*/*/*) global.json .stamp-workaround-for-maccore-issue-2427
@# Delete any versions of the nuget we're building
$$(Q) rm -f nupkgs/$(1).*.nupkg
$$(Q_PACK) $(DOTNET6) pack package/$(1)/package.csproj --output "$$(dir $$@)" $(DOTNET_PACK_VERBOSITY) "/bl:$$@.binlog"
+ @# Nuget pack doesn't add the metadata to the filename, but we want that, so rename nuget to contain the full name
+ $$(Q) mv "nupkgs/$(1).$(2).nupkg" "$$@"
@# Clean the local feed
$$(Q_NUGET_DEL) if test -d $(DOTNET_FEED_DIR)/$(shell echo $(1) | tr A-Z a-z)/$(2); then nuget delete $(1) $(2) -source $(abspath $(DOTNET_FEED_DIR)) -NonInteractive $(NUGET_VERBOSITY); fi
@# Add the nupkg to our local feed
@@ -190,28 +182,28 @@ $(DOTNET_NUPKG_DIR)/%.nupkg: nupkgs/%.nupkg | $(DOTNET_NUPKG_DIR)
$(Q) $(CP) $< $@
ifdef INCLUDE_IOS
-SDK_PACK_IOS_WINDOWS = $(DOTNET_NUPKG_DIR)/$(IOS_WINDOWS_NUGET).Sdk.$(IOS_WINDOWS_NUGET_VERSION_NO_METADATA).nupkg
+SDK_PACK_IOS_WINDOWS = $(DOTNET_NUPKG_DIR)/$(IOS_WINDOWS_NUGET).Sdk.$(IOS_WINDOWS_NUGET_VERSION_FULL).nupkg
SDK_PACKS += $(SDK_PACK_IOS_WINDOWS)
endif
pack-ios-windows: $(SDK_PACK_IOS_WINDOWS)
define PacksDefinitions
-RUNTIME_PACKS_$(1) = $$(foreach rid,$$(DOTNET_$(1)_RUNTIME_IDENTIFIERS),$(DOTNET_NUPKG_DIR)/$($(1)_NUGET).Runtime.$$(rid).$($(1)_NUGET_VERSION_NO_METADATA).nupkg)
+RUNTIME_PACKS_$(1) = $$(foreach rid,$$(DOTNET_$(1)_RUNTIME_IDENTIFIERS),$(DOTNET_NUPKG_DIR)/$($(1)_NUGET).Runtime.$$(rid).$($(1)_NUGET_VERSION_FULL).nupkg)
RUNTIME_PACKS += $$(RUNTIME_PACKS_$(1))
-REF_PACKS_$(1) = $(DOTNET_NUPKG_DIR)/$($(1)_NUGET).Ref.$($(1)_NUGET_VERSION_NO_METADATA).nupkg
+REF_PACKS_$(1) = $(DOTNET_NUPKG_DIR)/$($(1)_NUGET).Ref.$($(1)_NUGET_VERSION_FULL).nupkg
REF_PACKS += $$(REF_PACKS_$(1))
-SDK_PACKS_$(1) = $(DOTNET_NUPKG_DIR)/$($(1)_NUGET).Sdk.$($(1)_NUGET_VERSION_NO_METADATA).nupkg
+SDK_PACKS_$(1) = $(DOTNET_NUPKG_DIR)/$($(1)_NUGET).Sdk.$($(1)_NUGET_VERSION_FULL).nupkg
SDK_PACKS += $$(SDK_PACKS_$(1))
-TEMPLATE_PACKS_$(1) = $(DOTNET_NUPKG_DIR)/$($(1)_NUGET).Templates.$($(1)_NUGET_VERSION_NO_METADATA).nupkg
+TEMPLATE_PACKS_$(1) = $(DOTNET_NUPKG_DIR)/$($(1)_NUGET).Templates.$($(1)_NUGET_VERSION_FULL).nupkg
TEMPLATE_PACKS += $$(TEMPLATE_PACKS_$(1))
-WORKLOAD_PACKS_$(1) = $(DOTNET_NUPKG_DIR)/$(subst Microsoft.,Microsoft.NET.Sdk.,$($(1)_NUGET)).Manifest-$(DOTNET6_VERSION_BAND).$($(1)_NUGET_VERSION_NO_METADATA).nupkg
+WORKLOAD_PACKS_$(1) = $(DOTNET_NUPKG_DIR)/$(subst Microsoft.,Microsoft.NET.Sdk.,$($(1)_NUGET)).Manifest-$(DOTNET6_VERSION_BAND).$($(1)_NUGET_VERSION_FULL).nupkg
WORKLOAD_PACKS += $$(WORKLOAD_PACKS_$(1))
pack-$(shell echo $(1) | tr A-Z a-z): $$(RUNTIME_PACKS_$(1)) $$(REF_PACKS_$(1)) $$(SDK_PACKS_$(1)) $$(TEMPLATE_PACKS_$(1)) $$(WORKLOAD_PACKS_$(1))
endef
$(foreach platform,$(DOTNET_PLATFORMS_UPPERCASE),$(eval $(call PacksDefinitions,$(platform))))
-TARGETS += $(RUNTIME_PACKS) $(REF_PACKS) $(SDK_PACKS) $(TEMPLATE_PACKS) $(WORKLOAD_PACKS) $(DOTNET_NUPKG_DIR)/vs-workload.props $(DOTNET_NUPKG_DIR)/SignList.xml
+TARGETS += $(RUNTIME_PACKS) $(REF_PACKS) $(SDK_PACKS) $(TEMPLATE_PACKS) $(WORKLOAD_PACKS)
define InstallWorkload
# .NET comes with a workload for us, but we don't want that, we want our own. So delete the workload that comes with .NET.
diff --git a/dotnet/Workloads/SignList.xml b/dotnet/Workloads/SignList.xml
deleted file mode 100644
index cecbdf3811..0000000000
--- a/dotnet/Workloads/SignList.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dotnet/Workloads/vs-workload.template.props b/dotnet/Workloads/vs-workload.template.props
deleted file mode 100644
index cdb3ef238d..0000000000
--- a/dotnet/Workloads/vs-workload.template.props
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
- Microsoft.NET.Sdk.MaciOS.Workload
-
-
-
-
- @PACK_VERSION_SHORT@
-
-
-
-
-
-
-
diff --git a/dotnet/targets/WorkloadManifest.MacCatalyst.template.json b/dotnet/targets/WorkloadManifest.MacCatalyst.template.json
index 1eba2462ed..fd9310ace4 100644
--- a/dotnet/targets/WorkloadManifest.MacCatalyst.template.json
+++ b/dotnet/targets/WorkloadManifest.MacCatalyst.template.json
@@ -2,7 +2,7 @@
"version": "@VERSION@",
"workloads": {
"@PLATFORM_LOWERCASE@": {
- "description": ".NET SDK Workload for building macOS applications with @PLATFORM@.",
+ "description": "Microsoft @PLATFORM@ SDK for .NET",
"packs": [
"Microsoft.@PLATFORM@.Sdk",
"Microsoft.@PLATFORM@.Ref",
diff --git a/dotnet/targets/WorkloadManifest.iOS.template.json b/dotnet/targets/WorkloadManifest.iOS.template.json
index e476d66898..92c4541080 100644
--- a/dotnet/targets/WorkloadManifest.iOS.template.json
+++ b/dotnet/targets/WorkloadManifest.iOS.template.json
@@ -2,7 +2,7 @@
"version": "@VERSION@",
"workloads": {
"@PLATFORM_LOWERCASE@": {
- "description": ".NET SDK Workload for building @PLATFORM@ applications.",
+ "description": "Microsoft @PLATFORM@ SDK for .NET",
"packs": [
"Microsoft.@PLATFORM@.Sdk",
"Microsoft.@PLATFORM@.Windows.Sdk",
diff --git a/dotnet/targets/WorkloadManifest.macOS.template.json b/dotnet/targets/WorkloadManifest.macOS.template.json
index 3a3cebc5bd..74158a7544 100644
--- a/dotnet/targets/WorkloadManifest.macOS.template.json
+++ b/dotnet/targets/WorkloadManifest.macOS.template.json
@@ -2,7 +2,7 @@
"version": "@VERSION@",
"workloads": {
"@PLATFORM_LOWERCASE@": {
- "description": ".NET SDK Workload for building @PLATFORM@ applications.",
+ "description": "Microsoft @PLATFORM@ SDK for .NET",
"packs": [
"Microsoft.@PLATFORM@.Sdk",
"Microsoft.@PLATFORM@.Ref",
diff --git a/dotnet/targets/WorkloadManifest.tvOS.template.json b/dotnet/targets/WorkloadManifest.tvOS.template.json
index 4d4dfd16d0..53066388a2 100644
--- a/dotnet/targets/WorkloadManifest.tvOS.template.json
+++ b/dotnet/targets/WorkloadManifest.tvOS.template.json
@@ -2,7 +2,7 @@
"version": "@VERSION@",
"workloads": {
"@PLATFORM_LOWERCASE@": {
- "description": ".NET SDK Workload for building @PLATFORM@ applications.",
+ "description": "Microsoft @PLATFORM@ SDK for .NET",
"packs": [
"Microsoft.@PLATFORM@.Sdk",
"Microsoft.@PLATFORM@.Ref",
diff --git a/tools/devops/automation/build-pipeline.yml b/tools/devops/automation/build-pipeline.yml
index 5f5cdd648c..eb281cbd99 100644
--- a/tools/devops/automation/build-pipeline.yml
+++ b/tools/devops/automation/build-pipeline.yml
@@ -160,8 +160,6 @@ variables:
value: 'VSEng-Xamarin-RedmondMacBuildPool-iOS-Trusted'
- name: CIBuildPoolUrl
value: 'https://devdiv.visualstudio.com/_settings/agentpools?poolId=367&view=agents'
-- name: IsPRBuild
- value: ${{ or(eq(variables['Build.Reason'], 'PullRequest'), and(eq(variables['Build.SourceBranchName'], 'merge'), or(eq(variables['Build.Reason'], 'Manual'), eq(variables['Build.Reason'], 'IndividualCI')))) }}
trigger:
branches:
@@ -243,10 +241,6 @@ stages:
xqaCertPass: $(xqa--certificates--password)
enableDotnet: ${{ parameters.enableDotnet }}
-# .NET 6 Release Prep and VS Insertion Stages
-- template: templates/release/vs-insertion-prep.yml
-
-# Test stages
- ${{ if eq(parameters.runDeviceTests, true) }}:
- ${{ if and(ne(variables['Build.Reason'], 'Schedule'), or(eq(variables['Build.Reason'], 'IndividualCI'), eq(variables['Build.Reason'], 'Manual'))) }}:
- ${{ each config in parameters.deviceTestsConfigurations }}:
diff --git a/tools/devops/automation/scripts/bash/build-nugets.sh b/tools/devops/automation/scripts/bash/build-nugets.sh
index 831afb0985..7b9db98802 100755
--- a/tools/devops/automation/scripts/bash/build-nugets.sh
+++ b/tools/devops/automation/scripts/bash/build-nugets.sh
@@ -13,8 +13,6 @@ DOTNET_NUPKG_DIR=$(make -C tools/devops print-abspath-variable VARIABLE=DOTNET_N
mkdir -p ../package/
rm -f ../package/*.nupkg
cp -c "$DOTNET_NUPKG_DIR"/*.nupkg ../package/
-cp -c "$DOTNET_NUPKG_DIR"/vs-workload.props ../package/
-cp -c "$DOTNET_NUPKG_DIR"/SignList.xml ../package/
DOTNET_PKG_DIR=$(make -C tools/devops print-abspath-variable VARIABLE=DOTNET_PKG_DIR | grep "^DOTNET_PKG_DIR=" | sed -e 's/^DOTNET_PKG_DIR=//')
make -C dotnet package -j
diff --git a/tools/devops/automation/templates/build/build.yml b/tools/devops/automation/templates/build/build.yml
index 7f9459e2be..703e71cbc6 100644
--- a/tools/devops/automation/templates/build/build.yml
+++ b/tools/devops/automation/templates/build/build.yml
@@ -7,6 +7,10 @@ parameters:
type: boolean
default: true
+- name: isPR
+ type: boolean
+ default: false
+
- name: vsdropsPrefix
type: string
@@ -324,10 +328,11 @@ steps:
- template: build-nugets.yml
# only sign an notarize in no PR executions
-- template: sign-and-notarized.yml
- parameters:
- enableDotnet: ${{ parameters.enableDotnet }}
- keyringPass: ${{ parameters.keyringPass }}
+- ${{ if ne(parameters.isPR, 'True') }}:
+ - template: sign-and-notarized.yml
+ parameters:
+ enableDotnet: ${{ parameters.enableDotnet }}
+ keyringPass: ${{ parameters.keyringPass }}
# publish nugets (must be done after signing)
- ${{ if eq(parameters.enableDotnet, true) }}:
diff --git a/tools/devops/automation/templates/build/publish-nugets.yml b/tools/devops/automation/templates/build/publish-nugets.yml
index c164530b11..033b65fb57 100644
--- a/tools/devops/automation/templates/build/publish-nugets.yml
+++ b/tools/devops/automation/templates/build/publish-nugets.yml
@@ -4,6 +4,16 @@ steps:
# do not publish on pull requets
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
+ - task: NuGetCommand@2
+ displayName: 'Publish Nugets to xamarin-impl'
+ inputs:
+ command: push
+ packagesToPush: $(Build.SourcesDirectory)/package/*.nupkg
+ nuGetFeedType: external
+ publishFeedCredentials: xamarin-impl public feed
+ condition: and(succeeded(), eq(variables['configuration.BuildNugets'], 'True'))
+ continueOnError: true # should not stop the build since is not official just yet.
+
- task: NuGetCommand@2
displayName: 'Publish Nugets to dotnet-eng'
inputs:
diff --git a/tools/devops/automation/templates/build/sign-and-notarized.yml b/tools/devops/automation/templates/build/sign-and-notarized.yml
index 415c7fad53..53a607eaa4 100644
--- a/tools/devops/automation/templates/build/sign-and-notarized.yml
+++ b/tools/devops/automation/templates/build/sign-and-notarized.yml
@@ -12,9 +12,6 @@ parameters:
- name: keyringPass
type: string
-- name: condition
- default: and(succeeded(), eq(variables['IsPRBuild'], 'False'))
-
steps:
- bash: |
@@ -85,7 +82,7 @@ steps:
echo "Microsoft.MacCatalyst package found at $MACCATALYST_DOTNET_PKG"
fi
displayName: 'Retrieve packages to sign'
- condition: and(${{ parameters.condition }}, contains(variables['configuration.BuildPkgs'], 'True'))
+ condition: and(succeeded(), contains(variables['configuration.BuildPkgs'], 'True'))
timeoutInMinutes: 180
- task: MicroBuildSigningPlugin@3
@@ -96,8 +93,7 @@ steps:
zipSources: false # we do not use the feature and makes the installation to last 10/12 mins instead of < 1 min
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
- condition: ${{ parameters.condition }}
-
+
- ${{ if eq(parameters.enableDotnet, true) }}:
- pwsh : |
# Get the list of files to sign
@@ -128,7 +124,37 @@ steps:
ConvertTo-Json -InputObject $SignFileList -Depth 5 | Out-File -FilePath $(Build.ArtifactStagingDirectory)/MsiFiles2Notarize.json -Force
dotnet $Env:MBSIGN_APPFOLDER/ddsignfiles.dll /filelist:$(Build.ArtifactStagingDirectory)/MsiFiles2Notarize.json
displayName: 'Sign .msi'
- condition: ${{ parameters.condition }}
+
+- ${{ if eq(parameters.enableDotnet, true) }}:
+ - pwsh : |
+ # Get the list of files to sign
+ $nupkgFiles = Get-ChildItem -Path $(Build.SourcesDirectory)/package/ -Filter "*.nupkg"
+
+ # Add those files to an array
+ $SignFiles = @()
+ foreach($nupkg in $nupkgFiles) {
+ Write-Host "$($nupkg.FullName)"
+ $SignFiles += @{ "SrcPath"="$($nupkg.FullName)"}
+ }
+
+ Write-Host "$nupkgFiles"
+
+ # array of dicts
+ $SignFileRecord = @(
+ @{
+ "Certs" = "401405";
+ "SignFileList" = $SignFiles;
+ }
+ )
+
+ $SignFileList = @{
+ "SignFileRecordList" = $SignFileRecord
+ }
+
+ # Write the json to a file
+ ConvertTo-Json -InputObject $SignFileList -Depth 5 | Out-File -FilePath $(Build.ArtifactStagingDirectory)/NupkgFiles2Notarize.json -Force
+ dotnet $Env:MBSIGN_APPFOLDER/ddsignfiles.dll /filelist:$(Build.ArtifactStagingDirectory)/NupkgFiles2Notarize.json
+ displayName: 'Sign .nupkg'
- bash: |
security unlock-keychain -p $PRODUCTSIGN_KEYCHAIN_PASSWORD builder.keychain
@@ -149,7 +175,6 @@ steps:
name: notarize
displayName: 'Signing Release Build'
timeoutInMinutes: 90
- condition: ${{ parameters.condition }}
- task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@3
displayName: 'Install Notarizing Plugin'
@@ -162,7 +187,6 @@ steps:
- pwsh: $(Build.SourcesDirectory)/release-scripts/notarize.ps1 -FolderForApps $(Build.SourcesDirectory)/package/notarized
displayName: 'ESRP notarizing packages'
- condition: ${{ parameters.condition }}
- pwsh: |
$notarizedRoot = Join-Path $(Build.SourcesDirectory) package notarized
@@ -171,4 +195,3 @@ steps:
pkgutil --check-signature "$($_.FullName)"
}
displayName: 'Verify ESRP notarization'
- condition: ${{ parameters.condition }}
diff --git a/tools/devops/automation/templates/build/stage.yml b/tools/devops/automation/templates/build/stage.yml
index 59726c1559..770d4fddcf 100644
--- a/tools/devops/automation/templates/build/stage.yml
+++ b/tools/devops/automation/templates/build/stage.yml
@@ -98,6 +98,7 @@ jobs:
steps:
- template: build.yml
parameters:
+ isPR: ${{ or(eq(variables['Build.Reason'], 'PullRequest'), and(eq(variables['Build.SourceBranchName'], 'merge'), or(eq(variables['Build.Reason'], 'Manual'), eq(variables['Build.Reason'], 'IndividualCI')))) }}
runTests: ${{ parameters.runTests }}
runDeviceTests: ${{ parameters.runDeviceTests }}
vsdropsPrefix: ${{ parameters.vsdropsPrefix }}
diff --git a/tools/devops/automation/templates/release/vs-insertion-prep.yml b/tools/devops/automation/templates/release/vs-insertion-prep.yml
deleted file mode 100644
index 279bcb76d6..0000000000
--- a/tools/devops/automation/templates/release/vs-insertion-prep.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-parameters:
-- name: enableDotnet
- type: boolean
- default: true
-
-- name: dependsOn
- type: string
- default: build_packages
-
-stages:
-- stage: prepare_release
- displayName: Prepare Release
- dependsOn: ${{ parameters.dependsOn }}
- condition: and(or(eq(dependencies.${{ parameters.dependsOn }}.result, 'Succeeded'), eq(dependencies.${{ parameters.dependsOn }}.result, 'SucceededWithIssues')), eq(variables.IsPRBuild, 'False'), eq(${{ parameters.enableDotnet }}, true))
- jobs:
- # Check - "xamarin-macios (Prepare Release Sign NuGets)"
- - template: sign-artifacts/jobs/v2.yml@templates
- parameters:
- artifactName: package
- signType: Real
- usePipelineArtifactTasks: true
-
- # Check - "xamarin-macios (Prepare Release Convert NuGet to MSI)"
- - template: nuget-msi-convert/job/v1.yml@templates
- parameters:
- yamlResourceName: templates
- dependsOn: signing
- artifactName: nuget-signed
- artifactPatterns: |
- Microsoft.NET.Sdk.iOS.Manifest*.nupkg
- Microsoft.NET.Sdk.MacCatalyst.Manifest*.nupkg
- Microsoft.iOS*.nupkg
- Microsoft.MacCatalyst*.nupkg
- propsArtifactName: package
- signType: Real
-
- # Check - "xamarin-macios (Prepare Release Push NuGets)"
- - job: push_signed_nugets
- displayName: Push NuGets
- dependsOn: signing
- variables:
- skipNugetSecurityAnalysis: true
- pool:
- vmImage: macOS-10.15
- steps:
- - task: DownloadPipelineArtifact@2
- inputs:
- artifactName: nuget-signed
- downloadPath: $(Build.SourcesDirectory)/package
- patterns: |
- *.nupkg
-
- - task: NuGetCommand@2
- displayName: Publish Nugets to xamarin-impl
- inputs:
- command: push
- packagesToPush: $(Build.SourcesDirectory)/package/*.nupkg
- nuGetFeedType: external
- publishFeedCredentials: xamarin-impl public feed
-
-# Check - "xamarin-macios (VS Insertion Wait For Approval)"
-# Check - "xamarin-macios (VS Insertion Create VS Drop and Open PR)"
-- template: vs-insertion/stage/v1.yml@templates
- parameters:
- dependsOn: prepare_release
- condition: eq(variables.IsPRBuild, 'False')