-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathbuild-android.yml
More file actions
117 lines (99 loc) · 3.86 KB
/
build-android.yml
File metadata and controls
117 lines (99 loc) · 3.86 KB
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
jobs:
- job: Android_UITest_Build
timeoutInMinutes: 90
pool:
vmImage: macOS-15
steps:
- checkout: self
clean: true
fetchDepth: 0
persistCredentials: true
- template: templates/dotnet-install-mac.yml
parameters:
UnoCheckParameters: '--tfm net10.0-android'
- template: templates/canary-updater.yml
- bash: |
chmod +x $(build.sourcesdirectory)/build/scripts/android-uitest-build.sh
$(build.sourcesdirectory)/build/scripts/android-uitest-build.sh
displayName: Build Android App for UI Tests
env:
VARIANT_NAME: "$(VariantName)"
USE_SKIA_RENDERING: "$(UseSkiaRendering)"
- bash: |
echo "Publish output:"
ls -la $(build.sourcesdirectory)/Chefs/bin/Release/net10.0-android/android-x64/publish || true
APK="$(ls $(build.sourcesdirectory)/Chefs/bin/Release/net10.0-android/android-x64/publish/*.apk | head -n 1 || true)"
if [ ! -f "$APK" ]; then
echo "ERROR: No APK produced (verify AndroidPackageFormat=apk)"; exit 1; fi
echo "Check APK contains .dll and no assemblies.blob (we inject assemblies.blob at run):"
unzip -l "$APK" | grep -E '\.dll|assemblies\.blob' || true
if ! unzip -l "$APK" | grep -q '\.dll'; then
echo "ERROR: No .dll in APK. Disable AOT/trim and set AndroidUseAssemblyStore=false"; exit 1; fi
displayName: Sanity check UITest APK contents
- task: CopyFiles@2
displayName: 'Publish Binaries'
retryCountOnTaskFailure: 3
inputs:
SourceFolder: $(build.sourcesdirectory)/Chefs/bin/Release/net10.0-android/android-x64/publish
Contents: '*.apk'
TargetFolder: $(build.artifactstagingdirectory)/android-uitest
CleanTargetFolder: false
OverWrite: false
flattenFolders: false
- task: PublishBuildArtifacts@1
retryCountOnTaskFailure: 3
condition: always()
inputs:
ArtifactName: Android_UITest_$(VariantName)
- job: Android
pool:
vmImage: windows-2022
variables:
- group: 'UnoPlatform KeyStore'
- name: VersionCodeOffset
value: 1
steps:
- checkout: self
clean: true
fetchDepth: 0
persistCredentials: true
- template: templates/dotnet-install-windows.yml
parameters:
UnoCheckParameters: '--tfm net10.0-android'
- template: templates/canary-updater.yml
- template: templates/gitversion.yml
- task: DownloadSecureFile@1
name: keyStore
displayName: "Download keystore from secure files"
inputs:
secureFile: unoplatform.jks
- script: |
cd $(build.sourcesdirectory)/Chefs
dotnet publish -f:net10.0-android /p:TargetFrameworkOverride=net10.0-android -c:Release -p:UseSkiaRendering=$(UseSkiaRendering) "/p:InformationalVersion=%NBGV_InformationalVersion%" /p:AndroidSigningKeyStore=$(keyStore.secureFilePath) /p:AndroidSigningStorePass=$(AndroidSigningStorePass) /p:AndroidSigningKeyPass=$(AndroidSigningKeyPass) /p:AndroidSigningKeyAlias=$(AndroidSigningKeyAlias) /p:AndroidKeyStore=true /bl:$(build.artifactstagingdirectory)/logs/build-android.binlog
displayName: 'Build Android'
retryCountOnTaskFailure: 3
- task: CopyFiles@2
displayName: 'Publish Binaries'
retryCountOnTaskFailure: 3
inputs:
SourceFolder: $(build.sourcesdirectory)/Chefs/bin/Release/
Contents: |
**/*.apk
**/*.aab
TargetFolder: $(build.artifactstagingdirectory)/bin
CleanTargetFolder: false
OverWrite: false
flattenFolders: false
- task: PublishBuildArtifacts@1
condition: always()
retryCountOnTaskFailure: 3
inputs:
PathtoPublish: $(build.artifactstagingdirectory)/logs
ArtifactName: android-is_skia_$(UseSkiaRendering)-logs
ArtifactType: Container
- task: PublishPipelineArtifact@1
retryCountOnTaskFailure: 3
displayName: Publish artifacts
inputs:
targetPath: $(build.artifactstagingdirectory)/bin
artifactName: android-is_skia_$(UseSkiaRendering)