-
-
Notifications
You must be signed in to change notification settings - Fork 2
127 lines (122 loc) · 6.61 KB
/
dotnet_build.yml
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
118
119
120
121
122
123
124
125
126
127
# Based on: https://github.com/oxyplot/oxyplot-maui/tree/develop/.github/workflows
name: ci/github-actions
on:
push:
branches: [ '**' ]
pull_request:
branches: [ '**' ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
winBuild:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: nuget/setup-nuget@v2
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
- name: Install .NET MAUI
shell: pwsh
run: |
& dotnet nuget locals all --clear
& dotnet workload install maui --source https://api.nuget.org/v3/index.json
& dotnet workload install android ios maccatalyst tvos macos maui wasm-tools maui-maccatalyst --source https://api.nuget.org/v3/index.json
- name: Build
# For nugets
# run: dotnet build ./src/MauiAppBasement/MauiAppBasement.csproj /p:Configuration=Release /t:restore,build,pack /p:PackageOutputPath=./nuget /p:ContinuousIntegrationBuild=true /p:DeterministicSourcePaths=false
run: |
dotnet build ./src/SharedMauiXamlStylesLibrary/SharedMauiXamlStylesLibrary.csproj /p:Configuration=Release /t:restore,build,pack /p:PackageOutputPath=./nuget /p:ContinuousIntegrationBuild=true /p:DeterministicSourcePaths=false
dotnet build ./src/SharedMauiXamlStylesLibrary.Syncfusion/SharedMauiXamlStylesLibrary.Syncfusion.csproj /p:Configuration=Release /t:restore,build,pack /p:PackageOutputPath=./nuget /p:ContinuousIntegrationBuild=true /p:DeterministicSourcePaths=false
dotnet build ./src/SharedMauiXamlStylesLibrary.SampleApp/SharedMauiXamlStylesLibrary.SampleApp.csproj /t:restore,build -c Release -f net8.0-windows10.0.19041.0 /p:RuntimeIdentifierOverride=win10-x64
# - name: Build (Sample)
# run: dotnet build ./src/MauiAppBasement.Syncfusion/MauiAppBasement.Syncfusion.csproj /t:restore,build -c Release -f net8.0-windows10.0.19041.0 /p:RuntimeIdentifierOverride=win10-x64
- name: Upload packages
uses: actions/upload-artifact@v4
with:
name: nupkg
path: ./src/*/nuget/*.nupkg
macBuild:
runs-on: macos-15
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Setup XCode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable
- name: Install .NET MAUI
run: |
dotnet nuget locals all --clear
dotnet workload install maui --source https://api.nuget.org/v3/index.json
dotnet workload install android ios maccatalyst tvos macos maui wasm-tools maui-maccatalyst --source https://api.nuget.org/v3/index.json
- name: Install Android tools
run: ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT "platforms;android-34" "build-tools;34.0.0" "platform-tools"
# - name: Install the Apple certificate and provisioning profile
# # Ref: https://docs.github.com/en/actions/use-cases-and-examples/deploying/installing-an-apple-certificate-on-macos-runners-for-xcode-development
# env:
# BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
# P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
# BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }}
# KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
# run: |
# # create variables
# CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
# PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision
# KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
#
# # import certificate and provisioning profile from secrets
# echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
# echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode -o $PP_PATH
#
# # create temporary keychain
# security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
# security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
# security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
#
# # import certificate to keychain
# security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
# security set-key-partition-list -S apple-tool:,apple: -k "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
# security list-keychain -d user -s $KEYCHAIN_PATH
#
# # apply provisioning profile
# mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
# cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
- name: Build
run: |
dotnet build ./src/SharedMauiXamlStylesLibrary/SharedMauiXamlStylesLibrary.csproj /p:Configuration=Release /t:restore,build,pack /p:PackageOutputPath=./nuget /p:ContinuousIntegrationBuild=true /p:DeterministicSourcePaths=false
dotnet build ./src/SharedMauiXamlStylesLibrary.Syncfusion/SharedMauiXamlStylesLibrary.Syncfusion.csproj /p:Configuration=Release /t:restore,build,pack /p:PackageOutputPath=./nuget /p:ContinuousIntegrationBuild=true /p:DeterministicSourcePaths=false
# dotnet build ./src/SharedMauiXamlStylesLibrary.SampleApp/SharedMauiXamlStylesLibrary.SampleApp.csproj /t:restore,build -c Release -f net8.0-ios
androidBuild:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Install workloads
run: | #dotnet workload install android wasm-tools maui-android
dotnet workload install android wasm-tools maui-android --source https://api.nuget.org/v3/index.json
- name: Install Android tools
run: ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT "platform-tools"
- name: Build
run: |
dotnet build ./src/SharedMauiXamlStylesLibrary/SharedMauiXamlStylesLibrary.csproj /p:Configuration=Release /t:restore,build,pack /p:PackageOutputPath=./nuget /p:ContinuousIntegrationBuild=true /p:DeterministicSourcePaths=false
dotnet build ./src/SharedMauiXamlStylesLibrary.Syncfusion/SharedMauiXamlStylesLibrary.Syncfusion.csproj /p:Configuration=Release /t:restore,build,pack /p:PackageOutputPath=./nuget /p:ContinuousIntegrationBuild=true /p:DeterministicSourcePaths=false
dotnet build ./src/SharedMauiXamlStylesLibrary.SampleApp/SharedMauiXamlStylesLibrary.SampleApp.csproj /t:restore,build -c Release -f net8.0-android