Skip to content

Commit 9377843

Browse files
committed
CI,scripts: refactoring of Maui/Gtk builds
Extracted installation of gtk workload and adding Maui nuget source to separate script to remove code duplication. Renamed DotNetVersion to DotNetVersionForMauiGtk and made it and GtkSharpVersion workflow-level env vars in CI.yml.
1 parent bd5d320 commit 9377843

File tree

3 files changed

+30
-42
lines changed

3 files changed

+30
-42
lines changed

.github/workflows/CI.yml

Lines changed: 9 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ on:
99
schedule:
1010
- cron: "0 0 * * *"
1111

12+
env:
13+
GtkSharpVersion: 3.24.24.95
14+
DotNetVersionForMauiGtk: 6.0.400
1215

1316
# FIXME: figure out why we need to clean after make if we
1417
# want 'make strict' target to really happen without
@@ -209,33 +212,16 @@ jobs:
209212
210213
linux-github--dotnet-and-mono:
211214
runs-on: ubuntu-22.04
212-
env:
213-
GtkSharpVersion: 3.24.24.95
214-
DotnetVersion: 6.0.400
215215
steps:
216216
- uses: actions/checkout@v1
217217
with:
218218
submodules: true
219-
- name: Setup .NET SDK ${{ env.DotnetVersion }}
219+
- name: Setup .NET SDK ${{ env.DotNetVersionForMauiGtk }}
220220
uses: actions/[email protected]
221221
with:
222-
dotnet-version: ${{ env.DotnetVersion }}
223-
- name: Install gtk workload
224-
run: |
225-
wget -O gtksharp.net.sdk.gtk.manifest-${{ env.DotnetVersion }}.nupkg https://globalcdn.nuget.org/packages/gtksharp.net.sdk.gtk.manifest-${{ env.DotnetVersion }}.$GtkSharpVersion.nupkg
226-
DOTNET_DIR=/home/runner/.dotnet
227-
WORKLOAD_MANIFEST_DIR=$DOTNET_DIR/sdk-manifests/${{ env.DotnetVersion }}/gtksharp.net.sdk.gtk
228-
mkdir -p $WORKLOAD_MANIFEST_DIR/
229-
unzip -j gtksharp.net.sdk.gtk.manifest-${{ env.DotnetVersion }}.nupkg "data/*" -d $WORKLOAD_MANIFEST_DIR/
230-
rm gtksharp.net.sdk.gtk.manifest-${{ env.DotnetVersion }}.nupkg
231-
# otherwise we get System.UnauthorizedAccessException: Access to the path '/home/runner/.dotnet/sdk-manifests/6.0.300/gtksharp.net.sdk.gtk/WorkloadManifest.json' is denied.
232-
chmod 764 $WORKLOAD_MANIFEST_DIR/*
233-
dotnet workload search
234-
dotnet workload install gtk --skip-manifest-update
235-
- name: Add Maui Nuget source
236-
run: |
237-
cd dependencies/maui
238-
dotnet nuget add source --name nuget https://api.nuget.org/v3/index.json
222+
dotnet-version: ${{ env.DotNetVersionForMauiGtk }}
223+
- name: Install gtk workload & add Maui Nuget source
224+
run: ./prepare_maui_gtk.sh
239225
- name: install missing dependencies
240226
run: sudo apt install --yes fsharp nunit-console
241227
- name: check mono version
@@ -637,18 +623,15 @@ jobs:
637623
- conventions
638624

639625
runs-on: ubuntu-22.04
640-
env:
641-
GtkSharpVersion: 3.24.24.95
642-
DotnetVersion: 6.0.400
643626
steps:
644627
- uses: actions/checkout@v1
645628
- name: Install snap tools
646629
run: ./scripts/install_snapcraft.sh maui
647630

648-
- name: Setup .NET SDK ${{ env.DotnetVersion }}
631+
- name: Setup .NET SDK ${{ env.DotNetVersionForMauiGtk }}
649632
uses: actions/[email protected]
650633
with:
651-
dotnet-version: ${{ env.DotnetVersion }}
634+
dotnet-version: ${{ env.DotNetVersionForMauiGtk }}
652635

653636
- name: Bump snap version
654637
run: |

scripts/prepare_maui_gtk.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/env bash
2+
set -euxo pipefail
3+
4+
# Install gtk workload
5+
wget -O gtksharp.net.sdk.gtk.manifest-$DotNetVersionForMauiGtk.nupkg https://globalcdn.nuget.org/packages/gtksharp.net.sdk.gtk.manifest-$DotNetVersionForMauiGtk.$GtkSharpVersion.nupkg
6+
DOTNET_DIR=~/.dotnet
7+
WORKLOAD_MANIFEST_DIR=$DOTNET_DIR/sdk-manifests/$DotNetVersionForMauiGtk/gtksharp.net.sdk.gtk
8+
mkdir -p $WORKLOAD_MANIFEST_DIR/
9+
unzip -j gtksharp.net.sdk.gtk.manifest-$DotNetVersionForMauiGtk.nupkg "data/*" -d $WORKLOAD_MANIFEST_DIR/
10+
rm gtksharp.net.sdk.gtk.manifest-$DotNetVersionForMauiGtk.nupkg
11+
# otherwise we get System.UnauthorizedAccessException: Access to the path '/home/runner/.dotnet/sdk-manifests/6.0.300/gtksharp.net.sdk.gtk/WorkloadManifest.json' is denied.
12+
chmod 764 $WORKLOAD_MANIFEST_DIR/*
13+
dotnet workload search
14+
dotnet workload install gtk --skip-manifest-update
15+
16+
#Add Maui Nuget source
17+
cd dependencies/maui
18+
dotnet nuget add source --name nuget https://api.nuget.org/v3/index.json
19+
cd ../..

scripts/snap_build_maui.sh

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,8 @@
11
#!/usr/bin/env bash
22
set -euxo pipefail
33

4-
# Install gtk workload
5-
wget -O gtksharp.net.sdk.gtk.manifest-$DotnetVersion.nupkg https://globalcdn.nuget.org/packages/gtksharp.net.sdk.gtk.manifest-$DotnetVersion.$GtkSharpVersion.nupkg
6-
DOTNET_DIR=~/.dotnet
7-
WORKLOAD_MANIFEST_DIR=$DOTNET_DIR/sdk-manifests/$DotnetVersion/gtksharp.net.sdk.gtk
8-
mkdir -p $WORKLOAD_MANIFEST_DIR/
9-
unzip -j gtksharp.net.sdk.gtk.manifest-$DotnetVersion.nupkg "data/*" -d $WORKLOAD_MANIFEST_DIR/
10-
rm gtksharp.net.sdk.gtk.manifest-$DotnetVersion.nupkg
11-
# otherwise we get System.UnauthorizedAccessException: Access to the path '/home/runner/.dotnet/sdk-manifests/6.0.300/gtksharp.net.sdk.gtk/WorkloadManifest.json' is denied.
12-
chmod 764 $WORKLOAD_MANIFEST_DIR/*
13-
dotnet workload search
14-
dotnet workload install gtk --skip-manifest-update
15-
16-
#Add Maui Nuget source
17-
cd dependencies/maui
18-
dotnet nuget add source --name nuget https://api.nuget.org/v3/index.json
19-
cd ../..
4+
# Install gtk workload and add Maui nuget source
5+
./prepare_maui_gtk.sh
206

217
# Build GWallet MAUI Gtk project
228
./configure.sh

0 commit comments

Comments
 (0)