MAUI: first steps #4184
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
# to execute once a day (more info see https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule ) | |
schedule: | |
- cron: "0 0 * * *" | |
env: | |
# we need to install specific version because of this bug: https://github.com/dotnet/sdk/issues/24037 | |
FSXC_VERSION: 0.5.9.1 | |
GtkSharpVersion: 3.24.24.117-develop | |
DotNetVersionForMauiGtk: 8.0.200 | |
# FIXME: figure out why we need to clean after make if we | |
# want 'make strict' target to really happen without | |
# assuming the binaries from previous build are good | |
# (msbuild bug?) | |
jobs: | |
macOS--dotnet8-and-mono: | |
runs-on: macOS-13 | |
env: | |
# make it work with newer .NET | |
DOTNET_ROLL_FORWARD: 'Major' | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: false | |
- name: Setup .NET SDK 8.0.x | |
uses: actions/[email protected] | |
with: | |
dotnet-version: '8.0.300' | |
- name: Install specific Xamarin.iOS and Xamarin.Android versions | |
run: | | |
wget https://download.visualstudio.microsoft.com/download/pr/81c41aaa-a3d7-4875-8416-d04b472379b7/21d9f6c5ad3a6bc2479b2ec4b0685b6c/xamarin.ios-16.0.0.72.pkg | |
sudo installer -pkg xamarin.ios-16.0.0.72.pkg -target / | |
wget https://aka.ms/xamarin-android-commercial-d17-3-macos --output-document=xamarin.android-13.0.0.0.pkg | |
sudo installer -pkg xamarin.android-13.0.0.0.pkg -target / | |
- name: Check versions | |
run: | | |
mono --version | |
/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin/mtouch --version | |
ls -l /Library/Frameworks/Xamarin.Android.framework/Versions/ | |
- name: install maui workload | |
run: dotnet workload install maui | |
- name: configure | |
run: ./configure.sh | |
- name: build in DEBUG mode | |
run: make | |
- name: Build Android APK | |
run: dotnet publish src/GWallet.Frontend.Maui/GWallet.Frontend.Maui.fsproj --framework net8.0-android --configuration Release | |
# Upload artifact fails with "permission denied" error without this | |
- name: Fix permissions | |
run: sudo chmod -R 755 src/GWallet.Frontend.Maui/bin/Release/net8.0-android/publish | |
- name: Find the APK file's path and name | |
id: find_apk_file | |
run: | | |
FILEPATH=$(ls src/GWallet.Frontend.Maui/bin/Release/net8.0-android/publish/*.apk) | |
FILENAME=$(basename $FILEPATH) | |
echo "file_path=$FILEPATH" >> $GITHUB_OUTPUT | |
echo "file_name=$FILENAME" >> $GITHUB_OUTPUT | |
- name: Upload APK as CI artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
path: ${{ steps.find_apk_file.outputs.file_path }} | |
name: ${{ steps.find_apk_file.outputs.file_name }} | |
- name: sanity check | |
run: make sanitycheck | |
- name: unit tests | |
run: make check | |
- name: build in STRICT mode | |
run: git clean -fdx && ./configure.sh && make strict | |
- name: build in RELEASE mode | |
run: git clean -fdx && ./configure.sh && make release | |
- name: integration tests | |
run: make update-servers | |
- name: compile .fsx scripts | |
run: | | |
dotnet new tool-manifest | |
dotnet tool install fsxc --version ${{ env.FSXC_VERSION }} | |
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {} | |
macOS--mono-only: | |
runs-on: macOS-13 | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: false | |
- name: HACK to emulate dotnet uninstall | |
run: sudo rm -f `which dotnet` | |
- name: Install specific Xamarin.iOS and Xamarin.Android versions | |
run: | | |
wget https://download.visualstudio.microsoft.com/download/pr/81c41aaa-a3d7-4875-8416-d04b472379b7/21d9f6c5ad3a6bc2479b2ec4b0685b6c/xamarin.ios-16.0.0.72.pkg | |
sudo installer -pkg xamarin.ios-16.0.0.72.pkg -target / | |
wget https://aka.ms/xamarin-android-commercial-d17-3-macos --output-document=xamarin.android-13.0.0.0.pkg | |
sudo installer -pkg xamarin.android-13.0.0.0.pkg -target / | |
- name: Check versions | |
run: | | |
mono --version | |
/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin/mtouch --version | |
ls -l /Library/Frameworks/Xamarin.Android.framework/Versions/ | |
- name: configure | |
run: ./configure.sh | |
- name: build in DEBUG mode | |
run: make | |
- name: sanity check | |
run: make sanitycheck | |
- name: unit tests | |
run: make check | |
- name: build in STRICT mode | |
run: git clean -fdx && ./configure.sh && make strict | |
- name: build in RELEASE mode | |
run: git clean -fdx && ./configure.sh && make release | |
- name: integration tests | |
run: make update-servers | |
macOS--dotnet8-only: | |
runs-on: macOS-13 | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: false | |
- name: Setup .NET SDK 8.0.x | |
uses: actions/[email protected] | |
with: | |
dotnet-version: '8.0.300' | |
- name: HACK to emulate mono uninstall | |
run: sudo rm -f `which mono` && sudo rm -f `which msbuild` | |
- name: configure | |
run: ./configure.sh | |
- name: build in DEBUG mode | |
run: make | |
- name: sanity check | |
run: make sanitycheck | |
- name: unit tests | |
run: make check | |
- name: build in STRICT mode | |
run: git clean -fdx && ./configure.sh && make strict | |
- name: build in RELEASE mode | |
run: git clean -fdx && ./configure.sh && make release | |
- name: integration tests | |
run: make update-servers | |
- name: compile .fsx scripts | |
run: | | |
dotnet new tool-manifest | |
dotnet tool install fsxc --version ${{ env.FSXC_VERSION }} | |
# make it work with newer .NET | |
export DOTNET_ROLL_FORWARD=Major | |
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {} | |
windows--dotnet8-and-legacyFramework: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: false | |
- name: Setup .NET SDK 8.0.x | |
uses: actions/[email protected] | |
with: | |
dotnet-version: '8.0.x' | |
- name: install maui workloads | |
run: dotnet workload install maui | |
- name: configure | |
run: .\configure.bat | |
- name: build in DEBUG mode | |
run: .\make.bat | |
- name: sanity check | |
run: .\make.bat sanitycheck | |
- name: unit tests | |
run: .\make.bat check | |
- name: re-build in STRICT mode | |
run: git clean -fdx && .\configure.bat && .\make.bat strict | |
- name: re-build in RELEASE mode | |
run: git clean -fdx && .\configure.bat && .\make.bat release | |
- name: integration tests | |
run: .\make update-servers | |
- name: compile .fsx scripts | |
shell: bash | |
run: | | |
dotnet new tool-manifest | |
dotnet tool install fsxc --version ${{ env.FSXC_VERSION }} | |
# make it work with newer .NET | |
export DOTNET_ROLL_FORWARD=Major | |
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {} | |
windows--legacyFramework-only: | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: false | |
- name: HACK to emulate dotnet uninstall | |
run: del $(where.exe dotnet) | |
- name: configure | |
run: .\configure.bat | |
- name: build in DEBUG mode | |
run: .\make.bat | |
- name: sanity check | |
run: .\make.bat sanitycheck | |
- name: unit tests | |
run: .\make.bat check | |
- name: re-build in STRICT mode | |
run: git clean -fdx && .\configure.bat && .\make.bat strict | |
- name: re-build in RELEASE mode | |
run: git clean -fdx && .\configure.bat && .\make.bat release | |
- name: integration tests | |
run: .\make update-servers | |
windows--dotnet8-only: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: false | |
- name: Setup .NET SDK 8.0.x | |
uses: actions/[email protected] | |
with: | |
dotnet-version: '8.0.x' | |
- name: HACK to emulate legacy .NETFramework uninstall | |
run: del $(& "${Env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -find MSBuild\\**\\Bin\\MSBuild.exe) | |
- name: install maui workloads | |
run: dotnet workload install maui | |
- name: configure | |
run: .\configure.bat | |
- name: build in DEBUG mode | |
run: .\make.bat | |
- name: sanity check | |
run: .\make.bat sanitycheck | |
- name: unit tests | |
run: .\make.bat check | |
- name: re-build in STRICT mode | |
run: git clean -fdx && .\configure.bat && .\make.bat strict | |
- name: re-build in RELEASE mode | |
run: git clean -fdx && .\configure.bat && .\make.bat release | |
- name: integration tests | |
run: .\make update-servers | |
- name: compile .fsx scripts | |
shell: bash | |
run: | | |
dotnet new tool-manifest | |
dotnet tool install fsxc --version ${{ env.FSXC_VERSION }} | |
# make it work with newer .NET | |
export DOTNET_ROLL_FORWARD=Major | |
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {} | |
linux-github--dotnet-and-mono: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: true | |
- name: Setup .NET SDK ${{ env.DotNetVersionForMauiGtk }} | |
uses: actions/[email protected] | |
with: | |
dotnet-version: ${{ env.DotNetVersionForMauiGtk }} | |
- name: Install gtk workload & add Maui Nuget source | |
run: ./scripts/prepare_maui_gtk.sh | |
- name: install missing dependencies | |
run: sudo apt install --yes fsharp nunit-console | |
- name: check mono version | |
run: mono --version | |
- name: configure | |
run: ./configure.sh | |
- name: build in DEBUG mode | |
run: make | |
- name: sanity check | |
run: make sanitycheck | |
- name: unit tests | |
run: make check | |
- name: build in STRICT mode | |
run: git clean -fdx && ./configure.sh && make strict | |
- name: build in RELEASE mode | |
run: git clean -fdx && ./configure.sh && make release | |
- name: integration tests | |
run: make update-servers | |
- name: compile .fsx scripts | |
run: | | |
dotnet new tool-manifest | |
dotnet tool install fsxc --version ${{ env.FSXC_VERSION }} | |
# make it work with newer .NET | |
export DOTNET_ROLL_FORWARD=Major | |
# ignore scripts/fsx submodule as compiling scripts there will result in error | |
find . -type f -name "*.fsx" ! -path "./scripts/fsx/*" | xargs -t -I {} dotnet fsxc {} | |
linux-github--dotnet-and-newmono: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: false | |
- name: install missing dependencies | |
run: sudo apt install --yes fsharp nunit-console | |
- name: install last version of mono (Microsoft APT repositories) | |
run: sudo ./scripts/install_mono_from_microsoft_deb_packages.sh | |
- name: check mono version | |
run: mono --version | |
- name: install GTK libs (dependency of GTK frontend) | |
run: sudo apt install --yes libgtk2.0-cil-dev | |
- name: configure | |
run: ./configure.sh | |
- name: build in DEBUG mode (retry 3 times because of flakey XamForms restore) | |
# TODO: remove retry when we migrate to .NET6 (removing LEGACY_FRAMEWORK support) | |
run: make || make || make || make | |
- name: sanity check | |
run: make sanitycheck | |
- name: unit tests | |
run: make check | |
- name: build in STRICT mode | |
run: git clean -fdx && ./configure.sh && make strict | |
- name: build in RELEASE mode | |
run: git clean -fdx && ./configure.sh && make release | |
- name: integration tests | |
run: make update-servers | |
- name: compile .fsx scripts | |
run: | | |
dotnet new tool-manifest | |
dotnet tool install fsxc --version ${{ env.FSXC_VERSION }} | |
# make it work with newer .NET | |
export DOTNET_ROLL_FORWARD=Major | |
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {} | |
linux-vanilla--stockmono-only: | |
runs-on: ubuntu-22.04 | |
container: | |
image: "ubuntu:22.04" | |
steps: | |
- uses: actions/checkout@v1 | |
# can't use the option below because of error "Input 'submodules' not supported when falling back to download using the GitHub REST API. To create a local Git repository instead, add Git 2.18 or higher to the PATH." | |
# with: | |
# submodules: 'true' | |
- name: install sudo | |
run: apt update && apt install --yes sudo | |
- name: install all dependencies | |
run: | | |
# needed by fsx submodule | |
sudo apt install --yes curl | |
sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make fsharp nunit-console | |
# workaround for https://github.com/actions/runner/issues/2033 | |
- name: ownership workaround | |
run: git config --global --add safe.directory '*' | |
- name: check mono version | |
run: mono --version | |
- name: configure | |
run: ./configure.sh | |
- name: build in DEBUG mode | |
run: make | |
- name: sanity check | |
run: make sanitycheck | |
- name: unit tests | |
run: make check | |
- name: build in STRICT mode | |
run: git clean -fdx && ./configure.sh && make strict | |
- name: build in RELEASE mode | |
run: git clean -fdx && ./configure.sh && make release | |
- name: integration tests | |
run: make update-servers | |
linux-vanilla--stockdotnet8-only: | |
runs-on: ubuntu-22.04 | |
container: | |
image: "ubuntu:22.04" | |
steps: | |
- uses: actions/checkout@v1 | |
# can't use the option below because of error "Input 'submodules' not supported when falling back to download using the GitHub REST API. To create a local Git repository instead, add Git 2.18 or higher to the PATH." | |
# with: | |
# submodules: 'true' | |
- name: install sudo | |
run: apt update && apt install --yes sudo | |
- name: install all dependencies | |
run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make dotnet8 | |
# workaround for https://github.com/actions/runner/issues/2033 | |
- name: ownership workaround | |
run: git config --global --add safe.directory '*' | |
- name: configure | |
run: ./configure.sh | |
- name: build in DEBUG mode | |
run: make | |
- name: sanity check | |
run: make sanitycheck | |
- name: unit tests | |
run: make check | |
- name: build in STRICT mode | |
run: git clean -fdx && ./configure.sh && make strict | |
- name: build in RELEASE mode | |
run: git clean -fdx && ./configure.sh && make release | |
- name: integration tests | |
run: make update-servers | |
- name: compile .fsx scripts | |
run: | | |
dotnet new tool-manifest | |
dotnet tool install fsxc --version ${{ env.FSXC_VERSION }} | |
# make it work with newer .NET | |
export DOTNET_ROLL_FORWARD=Major | |
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {} | |
linux-vanilla--stockdotnet8-and-newmono: | |
runs-on: ubuntu-22.04 | |
container: | |
image: "ubuntu:22.04" | |
steps: | |
- uses: actions/checkout@v1 | |
# can't use the option below because of error "Input 'submodules' not supported when falling back to download using the GitHub REST API. To create a local Git repository instead, add Git 2.18 or higher to the PATH." | |
# with: | |
# submodules: 'true' | |
- name: install sudo | |
run: apt update && apt install --yes sudo | |
- name: install all dependencies | |
run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make dotnet8 | |
- name: install last version of mono (Microsoft APT repositories) | |
run: sudo ./scripts/install_mono_from_microsoft_deb_packages.sh | |
# workaround for https://github.com/actions/runner/issues/2033 | |
- name: ownership workaround | |
run: git config --global --add safe.directory '*' | |
- name: configure | |
run: ./configure.sh | |
- name: build in DEBUG mode | |
run: make | |
- name: sanity check | |
run: make sanitycheck | |
- name: unit tests | |
run: make check | |
- name: build in STRICT mode | |
run: git clean -fdx && ./configure.sh && make strict | |
- name: build in RELEASE mode | |
run: git clean -fdx && ./configure.sh && make release | |
- name: integration tests | |
run: make update-servers | |
- name: compile .fsx scripts | |
run: | | |
dotnet new tool-manifest | |
dotnet tool install fsxc --version ${{ env.FSXC_VERSION }} | |
# make it work with newer .NET | |
export DOTNET_ROLL_FORWARD=Major | |
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {} | |
linux-vanilla--stockdotnet8-and-stockmono: | |
runs-on: ubuntu-22.04 | |
container: | |
image: "ubuntu:22.04" | |
steps: | |
- uses: actions/checkout@v1 | |
# can't use the option below because of error "Input 'submodules' not supported when falling back to download using the GitHub REST API. To create a local Git repository instead, add Git 2.18 or higher to the PATH." | |
# with: | |
# submodules: 'true' | |
- name: install sudo | |
run: apt update && apt install --yes sudo | |
- name: install all dependencies | |
run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make dotnet8 mono-xbuild fsharp | |
- name: install GTK libs (dependency of GTK frontend) | |
run: sudo apt install --yes libgtk2.0-cil-dev | |
# workaround for https://github.com/actions/runner/issues/2033 | |
- name: ownership workaround | |
run: git config --global --add safe.directory '*' | |
- name: configure | |
run: ./configure.sh | |
- name: build in DEBUG mode | |
run: make | |
- name: sanity check | |
run: make sanitycheck | |
- name: unit tests | |
run: make check | |
- name: build in STRICT mode | |
run: git clean -fdx && ./configure.sh && make strict | |
- name: build in RELEASE mode | |
run: git clean -fdx && ./configure.sh && make release | |
- name: integration tests | |
run: make update-servers | |
- name: compile .fsx scripts | |
run: | | |
dotnet new tool-manifest | |
dotnet tool install fsxc --version ${{ env.FSXC_VERSION }} | |
# make it work with newer .NET | |
export DOTNET_ROLL_FORWARD=Major | |
find . -type f -name "*.fsx" | xargs -t -I {} dotnet fsxc {} | |
linux-vanilla--newmono-only: | |
runs-on: ubuntu-22.04 | |
container: | |
image: "ubuntu:22.04" | |
steps: | |
- uses: actions/checkout@v1 | |
# can't use the option below because of error "Input 'submodules' not supported when falling back to download using the GitHub REST API. To create a local Git repository instead, add Git 2.18 or higher to the PATH." | |
# with: | |
# submodules: 'true' | |
- name: install sudo | |
run: apt update && apt install --yes sudo | |
- name: install all dependencies | |
run: sudo DEBIAN_FRONTEND=noninteractive apt install --yes git make fsharp nunit-console | |
- name: install last version of mono (Microsoft APT repositories) | |
run: sudo ./scripts/install_mono_from_microsoft_deb_packages.sh | |
# workaround for https://github.com/actions/runner/issues/2033 | |
- name: ownership workaround | |
run: git config --global --add safe.directory '*' | |
- name: check mono version | |
run: mono --version | |
- name: install GTK libs (dependency of GTK frontend) | |
run: sudo apt install --yes libgtk2.0-cil-dev | |
- name: configure | |
run: ./configure.sh | |
- name: build in DEBUG mode (retry 3 times because of flakey XamForms restore) | |
# TODO: remove retry when we migrate to .NET6 (removing LEGACY_FRAMEWORK support) | |
run: make || make || make || make | |
- name: sanity check | |
run: make sanitycheck | |
- name: unit tests | |
run: make check | |
- name: build in STRICT mode | |
run: git clean -fdx && ./configure.sh && make strict | |
- name: build in RELEASE mode | |
run: git clean -fdx && ./configure.sh && make release | |
- name: integration tests | |
run: make update-servers | |
conventions: | |
runs-on: ubuntu-22.04 | |
container: | |
image: "ubuntu:22.04" | |
needs: | |
- linux-github--dotnet-and-mono | |
- linux-github--dotnet-and-newmono | |
- linux-vanilla--stockmono-only | |
- linux-vanilla--newmono-only | |
- linux-vanilla--stockdotnet8-only | |
- linux-vanilla--stockdotnet8-and-stockmono | |
- linux-vanilla--stockdotnet8-and-newmono | |
- windows--dotnet8-and-legacyFramework | |
- windows--legacyFramework-only | |
- windows--dotnet8-only | |
- macOS--dotnet8-and-mono | |
- macOS--mono-only | |
- macOS--dotnet8-only | |
steps: | |
- uses: actions/checkout@v1 | |
with: | |
submodules: false | |
- name: Install dependencies of commitlint | |
run: | | |
which sudo 2>/dev/null || (apt update && apt install --yes sudo) | |
sudo apt update | |
sudo apt install --yes git npm curl | |
sudo npm install --global n | |
sudo n lts | |
# workaround for https://github.com/actions/runner/issues/2033 | |
- name: ownership workaround | |
run: git config --global --add safe.directory '*' | |
- name: Pull our commitlint configuration | |
run: | | |
git clone https://github.com/nblockchain/conventions.git | |
rm -rf ./conventions/.git/ | |
- name: Validate current commit (last commit) with commitlint | |
if: github.event_name == 'push' | |
run: ./conventions/commitlint.sh --from HEAD~1 --to HEAD --verbose | |
- name: Validate PR commits with commitlint | |
if: github.event_name == 'pull_request' | |
run: ./conventions/commitlint.sh --from ${{ github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits }} --to ${{ github.event.pull_request.head.sha }} --verbose | |
snap_pkg: | |
needs: | |
- conventions | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install snap tools | |
run: ./scripts/install_snapcraft.sh | |
# hack to disable msbuild detection | |
# NOTE: you might think an easier way to do this would be use container:\nimage: ubuntu22.04 and then not install msbuild, | |
# but that doesn't work because we get the following error when trying to install snapcraft via `snap install --classic`: | |
# > error: cannot communicate with server: Post "http://localhost/v2/snaps/snapcraft": dial unix /run/snapd.socket: connect: no such file or directory | |
- name: HACK to emulate msbuild uninstall | |
run: sudo rm `which msbuild` | |
- name: Generate snap package | |
run: | | |
# retry 3 times because of flakey nuget; TODO: remove retry when we migrate to .NET6 (removing LEGACY_FRAMEWORK support) | |
./scripts/snap_build.sh || ./scripts/snap_build.sh || ./scripts/snap_build.sh || ./scripts/snap_build.sh | |
- name: Install snap | |
# dangerous because it's a local snap (not one from the SnapStore) | |
run: sudo snap install --dangerous *.snap | |
- name: Test snap | |
run: geewallet --version | |
- uses: actions/upload-artifact@v3 | |
name: Upload snap package as artifact | |
with: | |
name: snap | |
path: ./*.snap | |
- name: Upload snap package to Snap Store | |
env: | |
SNAPCRAFT_LOGIN: ${{ secrets.SNAPCRAFT_LOGIN }} | |
run: | | |
sudo apt update | |
./scripts/snap_release.sh | |
snap_pkg_beta: | |
needs: | |
- conventions | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install snap tools | |
run: ./scripts/install_snapcraft.sh | |
# hack to disable msbuild detection | |
# NOTE: you might think an easier way to do this would be use container:\nimage: ubuntu22.04 and then not install msbuild, | |
# but that doesn't work because we get the following error when trying to install snapcraft via `snap install --classic`: | |
# > error: cannot communicate with server: Post "http://localhost/v2/snaps/snapcraft": dial unix /run/snapd.socket: connect: no such file or directory | |
- name: HACK to emulate msbuild uninstall | |
run: sudo rm `which msbuild` | |
- name: Bump snap version | |
run: | | |
git submodule foreach git fetch --all && git submodule sync --recursive && git submodule update --init --recursive | |
dotnet fsi ./scripts/snap_bump.fsx | |
- name: Generate snap package | |
run: | | |
# retry 3 times because of flakey nuget; TODO: remove retry when we migrate to .NET6 (removing LEGACY_FRAMEWORK support) | |
./scripts/snap_build.sh --native-segwit || ./scripts/snap_build.sh --native-segwit || ./scripts/snap_build.sh --native-segwit || ./scripts/snap_build.sh --native-segwit | |
- name: Install snap | |
# dangerous because it's a local snap (not one from the SnapStore) | |
run: sudo snap install --dangerous *.snap | |
- name: Test snap | |
run: geewallet --version | |
- uses: actions/upload-artifact@v3 | |
name: Upload snap package as artifact | |
with: | |
name: snap_beta | |
path: ./*.snap | |
- name: Upload snap package to Snap Store | |
env: | |
SNAPCRAFT_LOGIN: ${{ secrets.SNAPCRAFT_LOGIN }} | |
run: | | |
sudo apt update | |
./scripts/snap_release.sh beta | |
snap_alpha: | |
needs: | |
- conventions | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install snap tools | |
run: ./scripts/install_snapcraft.sh maui | |
- name: Setup .NET SDK ${{ env.DotNetVersionForMauiGtk }} | |
uses: actions/[email protected] | |
with: | |
dotnet-version: ${{ env.DotNetVersionForMauiGtk }} | |
- name: Bump snap version | |
run: | | |
git submodule foreach git fetch --all && git submodule sync --recursive && git submodule update --init --recursive | |
dotnet fsi ./scripts/snap_bump.fsx | |
- name: Generate snap package | |
run: ./scripts/snap_build_maui.sh || (cat /home/runner/.local/state/snapcraft/log/*.log && exit 1) | |
- name: Install snap | |
# dangerous because it's a local snap (not one from the SnapStore) | |
run: sudo snap install --dangerous *.snap | |
- name: Test snap | |
run: gee-maui-preview.geewallet --version | |
- uses: actions/upload-artifact@v3 | |
name: Upload snap package as artifact | |
with: | |
name: snap_alpha | |
path: ./*.snap | |
- name: Upload snap package to Snap Store | |
env: | |
SNAPCRAFT_STORE_CREDENTIALS: ${{secrets.SNAPCRAFT_LOGIN}} | |
run: | | |
sudo apt update | |
./scripts/snap_release.sh edge |