Skip to content

Commit b9fa158

Browse files
committed
Merge branch 'main' into native-profiling-and-debugging
* main: [marshal methods] Properly support arrays of arrays (dotnet#7707) Bump to dotnet/installer@9962c6a 8.0.100-alpha.1.23063.11 (dotnet#7677) [Actions] Add action to bump the hash used for the unified pipeline (dotnet#7712) Bump to xamarin/xamarin-android-tools/main@099fd95 (dotnet#7709) [ci] Move build stages into yaml templates (dotnet#7553) [Xamarin.Android.Build.Tasks] fix NRE in `<GenerateResourceCaseMap/>` (dotnet#7716) [ci] Pass token when building Designer tests (dotnet#7715)
2 parents 61ce724 + baa5a73 commit b9fa158

34 files changed

+535
-384
lines changed

.external

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
xamarin/monodroid:main@c0c933b7a5286c0babecb165c0676c32f5e44092
1+
xamarin/monodroid:main@2b9c9d01820c8df4541157f6b6116852eba73350
22
mono/mono:2020-02@6dd9def57ce969ca04a0ecd9ef72c0a8f069112d
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Notify release branch change
2+
3+
on:
4+
# trigger for main and release branches.
5+
push:
6+
branches:
7+
- main
8+
- 'release/**'
9+
10+
jobs:
11+
pingRemote:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- uses: actions/checkout@v3
16+
17+
- name: Parse commit
18+
shell: pwsh
19+
id: commit_title
20+
run: |
21+
Write-Host "Commit message is $Env:COMMIT_MESSAGE"
22+
$title = ($Env:COMMIT_MESSAGE -split '\n')[0]
23+
"COMMIT_TITLE=$title" >> $env:GITHUB_OUTPUT
24+
env:
25+
COMMIT_MESSAGE: "${{ github.event.head_commit.message }}"
26+
27+
- name: 'Update remote repository'
28+
uses: peter-evans/repository-dispatch@v2
29+
with:
30+
token: ${{ secrets.SERVICEACCOUNT_PAT }}
31+
event-type: 'sdk_insertion'
32+
repository: 'xamarin/sdk-insertions'
33+
client-payload: '{"repository": "xamarin/xamarin-android", "branch": "${{ github.ref_name }}", "commit": "${{ github.sha }}", "commit_message": "${{ steps.commit_title.outputs.COMMIT_TITLE }}"}'
34+
35+

build-tools/automation/azure-pipelines.yaml

Lines changed: 7 additions & 250 deletions
Original file line numberDiff line numberDiff line change
@@ -85,258 +85,15 @@ variables:
8585

8686
# Stage and Job "display names" are shortened because they are combined to form the name of the corresponding GitHub check.
8787
stages:
88-
- stage: mac_build
89-
displayName: Mac
90-
dependsOn: []
91-
jobs:
92-
# Check - "Xamarin.Android (macOS > Build)"
93-
- job: mac_build_create_installers
94-
displayName: macOS > Build
95-
pool:
96-
name: $(MacBuildPoolName)
97-
vmImage: $(MacBuildPoolImage)
98-
${{ if eq(variables['MacBuildPoolName'], 'VSEng-Xamarin-RedmondMac-Android-Untrusted') }}:
99-
demands: macOS.Name -equals Monterey
100-
timeoutInMinutes: 240
101-
cancelTimeoutInMinutes: 5
102-
workspace:
103-
clean: all
104-
steps:
105-
- checkout: self
106-
submodules: recursive
107-
path: s/xamarin-android
108-
109-
- template: yaml-templates/install-microbuild-tooling.yaml
110-
parameters:
111-
condition: and(succeeded(), eq(variables['MicroBuildSignType'], 'Real'))
112-
113-
- template: yaml-templates/commercial-build.yaml
114-
parameters:
115-
provisionatorChannel: ${{ parameters.provisionatorChannel }}
116-
signClassicPkgContent: ${{ parameters.signClassicPkgContent }}
117-
118-
- template: yaml-templates/remove-microbuild-tooling.yaml
119-
parameters:
120-
condition: and(succeededOrFailed(), eq(variables['MicroBuildSignType'], 'Real'))
121-
122-
- script: >
123-
mkdir -p $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/windows-toolchain-pdb &&
124-
cd $(System.DefaultWorkingDirectory)/xamarin-android/bin/$(XA.Build.Configuration)/lib/packs/Microsoft.Android.Sdk.Darwin/*/tools/binutils/windows-toolchain-pdb &&
125-
zip -r $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/windows-toolchain-pdb/windows-toolchain-pdb.zip .
126-
workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
127-
displayName: zip Windows toolchain pdb files
128-
129-
- task: PublishPipelineArtifact@1
130-
displayName: upload Windows toolchain pdb files
131-
inputs:
132-
artifactName: $(WindowsToolchainPdbArtifactName)
133-
targetPath: $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/windows-toolchain-pdb
134-
135-
- template: yaml-templates/upload-results.yaml
136-
parameters:
137-
xaSourcePath: $(System.DefaultWorkingDirectory)/xamarin-android
138-
artifactName: Build Results - macOS
139-
includeBuildResults: true
140-
141-
- template: yaml-templates/run-xaprepare.yaml
142-
parameters:
143-
arguments: --s=DetermineApplicableTests
144-
xaSourcePath: $(System.DefaultWorkingDirectory)/xamarin-android
145-
displayName: determine which test stages to run
146-
name: TestConditions
147-
condition: and(succeeded(), eq(variables['Build.DefinitionName'], 'Xamarin.Android-PR'))
148-
149-
# This stage ensures Windows specific build steps continue to work, and runs unit tests.
150-
- stage: win_build_test
151-
displayName: Windows
152-
dependsOn: []
153-
jobs:
154-
# Check - "Xamarin.Android (Windows > Build & Smoke Test)"
155-
- job: win_build_test
156-
displayName: Windows > Build & Smoke Test
157-
pool: $(1ESWindowsPool)
158-
timeoutInMinutes: 360
159-
cancelTimeoutInMinutes: 5
160-
steps:
161-
- checkout: self
162-
submodules: recursive
163-
164-
- template: yaml-templates\kill-processes.yaml
165-
166-
- template: yaml-templates\clean.yaml
167-
168-
- script: |
169-
echo ##vso[task.setvariable variable=JI_JAVA_HOME]%JAVA_HOME_11_X64%
170-
displayName: set JI_JAVA_HOME
171-
172-
- template: yaml-templates\use-dot-net.yaml
173-
parameters:
174-
remove_dotnet: true
175-
176-
# xabuild still depends on .NET Core 3 or earlier
177-
- template: yaml-templates\use-dot-net.yaml
178-
parameters:
179-
version: 3.1
180-
quality: GA
181-
182-
# Downgrade the XA .vsix installed into the instance of VS that we are building with so that we don't restore/build against a test version.
183-
# The VS installer will attempt to resume any failed or partial installation before trying to downgrade Xamarin.Android.
184-
# VSIXInstaller.exe will exit non-zero when the downgrade attempt is a no-op, so we will allow this step to fail silently.
185-
- powershell: |
186-
$vsWhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
187-
& "$vsWhere" -all -prerelease -latest | Out-Default
188-
$isLatestVSLaunchable = & "$vsWhere" -all -prerelease -latest -property isLaunchable
189-
if ($isLatestVSLaunchable -eq 0) {
190-
$vsPath = & "$vsWhere" -all -prerelease -latest -property installationPath
191-
Write-Host "Attempting to repair VS instance:" $vsPath
192-
$vsInstaller = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vs_installer.exe"
193-
& "$vsInstaller" resume --installPath $vsPath --quiet --norestart | Out-Default
194-
Write-Host "vs_installer.exe resume attempt complete"
195-
}
196-
$vsixInstaller = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\resources\app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service\VSIXInstaller.exe"
197-
$ts = Get-Date -Format FileDateTimeUniversal
198-
$log = "xavsixdowngrade-$ts.log"
199-
$process = Start-Process -NoNewWindow -FilePath $vsixInstaller -ArgumentList "/downgrade:Xamarin.Android.Sdk /admin /quiet /logFile:$log" -Wait -PassThru -RedirectStandardError "err.txt"
200-
Get-Content "err.txt" | Write-Host
201-
Get-Content "${env:TEMP}\$log" | Write-Host
202-
Write-Host "VSInstaller.exe exited with code:" $process.ExitCode
203-
Remove-Item "${env:TEMP}\$log"
204-
displayName: downgrade XA to stable
205-
ignoreLASTEXITCODE: true
206-
207-
- task: DotNetCoreCLI@2
208-
displayName: Prepare Solution
209-
inputs:
210-
projects: Xamarin.Android.sln
211-
arguments: '-c $(XA.Build.Configuration) -t:Prepare --no-restore -p:AutoProvision=true -bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\dotnet-build-prepare.binlog'
212-
213-
# Build, pack .nupkgs, and extract workload packs to dotnet preview test directory
214-
- template: yaml-templates\run-dotnet-preview.yaml
215-
parameters:
216-
project: Xamarin.Android.sln
217-
arguments: >-
218-
-t:BuildDotNet,PackDotNet -c $(XA.Build.Configuration) -v:n
219-
-bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\dotnet-build.binlog
220-
displayName: Build Solution
221-
continueOnError: false
222-
223-
- task: MSBuild@1
224-
displayName: msbuild create-vsix
225-
inputs:
226-
solution: build-tools\create-vsix\create-vsix.csproj
227-
configuration: $(XA.Build.Configuration)
228-
msbuildArguments: /p:CreateVsixContainer=True /p:ZipPackageCompressionLevel=Normal /bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\dotnet-create-vsix.binlog
229-
230-
- task: MSBuild@1
231-
displayName: msbuild xabuild
232-
inputs:
233-
solution: tools\xabuild\xabuild.csproj
234-
configuration: $(XA.Build.Configuration)
235-
msbuildArguments: /restore /bl:$(System.DefaultWorkingDirectory)\bin\Build$(XA.Build.Configuration)\dotnet-xabuild.binlog
236-
237-
- task: CmdLine@1
238-
displayName: xabuild Xamarin.Android-Tests
239-
inputs:
240-
filename: bin\$(XA.Build.Configuration)\bin\xabuild.exe
241-
arguments: Xamarin.Android-Tests.sln /restore /p:Configuration=$(XA.Build.Configuration) /bl:$(System.DefaultWorkingDirectory)\bin\Test$(XA.Build.Configuration)\dotnet-build-tests.binlog
242-
243-
- template: yaml-templates\install-apkdiff.yaml
244-
245-
- template: yaml-templates\run-nunit-tests.yaml
246-
parameters:
247-
testRunTitle: Smoke MSBuild Tests - Windows Build Tree
248-
testAssembly: $(System.DefaultWorkingDirectory)\bin\Test$(XA.Build.Configuration)\net472\Xamarin.Android.Build.Tests.dll
249-
testResultsFile: TestResult-SmokeMSBuildTests-WinBuildTree-$(XA.Build.Configuration).xml
250-
nunitConsoleExtraArgs: --where "cat == SmokeTests"
251-
252-
- template: yaml-templates\run-nunit-tests.yaml
253-
parameters:
254-
useDotNet: true
255-
testRunTitle: Smoke MSBuild Tests - Windows Dotnet Build
256-
testAssembly: $(System.DefaultWorkingDirectory)\bin\Test$(XA.Build.Configuration)\$(DotNetStableTargetFramework)\Xamarin.Android.Build.Tests.dll
257-
testResultsFile: TestResult-SmokeMSBuildTests-WinDotnetBuild-$(XA.Build.Configuration).xml
258-
dotNetTestExtraArgs: --filter "TestCategory = SmokeTests $(DotNetNUnitCategories)"
259-
260-
- template: yaml-templates\upload-results.yaml
261-
parameters:
262-
artifactName: Build Results - Windows
263-
includeBuildResults: true
88+
- template: yaml-templates/build-macos.yaml
89+
parameters:
90+
provisionatorChannel: ${{ parameters.provisionatorChannel }}
91+
signClassicPkgContent: ${{ parameters.signClassicPkgContent }}
26492

265-
- template: yaml-templates\fail-on-issue.yaml
93+
- template: yaml-templates/build-windows.yaml
26694

26795
# Check - "Xamarin.Android (Linux > Build)"
268-
- stage: linux_build
269-
displayName: Linux
270-
dependsOn: []
271-
jobs:
272-
- job: linux_build_create_sdk_pack
273-
displayName: Linux > Build
274-
pool: android-devdiv-ubuntu-vmss
275-
timeoutInMinutes: 180
276-
cancelTimeoutInMinutes: 2
277-
workspace:
278-
clean: all
279-
variables:
280-
CXX: g++-10
281-
CC: gcc-10
282-
steps:
283-
- checkout: self
284-
clean: true
285-
submodules: recursive
286-
path: s/xamarin-android
287-
288-
- checkout: monodroid
289-
clean: true
290-
submodules: recursive
291-
path: s/xamarin-android/external/monodroid
292-
persistCredentials: true
293-
294-
- script: rm -rf external/monodroid/external/xamarin-android
295-
workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
296-
displayName: delete external xamarin-android submodule
297-
298-
- template: yaml-templates/setup-ubuntu.yaml
299-
300-
- task: NuGetAuthenticate@0
301-
displayName: authenticate with azure artifacts
302-
inputs:
303-
forceReinstallCredentialProvider: true
304-
305-
- script: make prepare-external-git-dependencies PREPARE_CI=1 CONFIGURATION=$(XA.Build.Configuration)
306-
workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
307-
displayName: make prepare-external-git-dependencies
308-
309-
- script: make jenkins PREPARE_CI=1 PREPARE_AUTOPROVISION=1 CONFIGURATION=$(XA.Build.Configuration)
310-
workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
311-
displayName: make jenkins
312-
313-
- script: make create-nupkgs CONFIGURATION=$(XA.Build.Configuration)
314-
workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
315-
displayName: make create-nupkgs
316-
317-
- script: >
318-
df -h &&
319-
mkdir -p $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nuget-linux &&
320-
ln $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/$(NuGetArtifactName)/Microsoft.Android.Sdk.Linux*.nupkg
321-
$(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nuget-linux &&
322-
ln $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/$(NuGetArtifactName)/SignList.xml
323-
$(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nuget-linux
324-
workingDirectory: $(System.DefaultWorkingDirectory)/xamarin-android
325-
displayName: copy linux sdk
326-
327-
- task: PublishPipelineArtifact@1
328-
displayName: upload linux sdk
329-
inputs:
330-
artifactName: $(LinuxNuGetArtifactName)
331-
targetPath: $(System.DefaultWorkingDirectory)/xamarin-android/bin/Build$(XA.Build.Configuration)/nuget-linux
332-
333-
- template: yaml-templates/upload-results.yaml
334-
parameters:
335-
xaSourcePath: $(System.DefaultWorkingDirectory)/xamarin-android
336-
artifactName: Build Results - Linux
337-
includeBuildResults: true
338-
339-
- template: yaml-templates/fail-on-issue.yaml
96+
- template: yaml-templates/build-linux.yaml
34097

34198
- stage: smoke_tests
34299
displayName: Smoke Tests
@@ -1343,7 +1100,7 @@ stages:
13431100
inputs:
13441101
solution: $(System.DefaultWorkingDirectory)\UITools\src\Xamarin.Designer.Android\Xamarin.AndroidDesigner.sln
13451102
vsVersion: 17.0
1346-
msbuildArgs: /t:Build
1103+
msbuildArgs: /t:Build /p:GitHubToken=$(GitHub.Token)
13471104
platform: Any CPU
13481105
configuration: DebugWin32
13491106

0 commit comments

Comments
 (0)