From 99840540acc80130e4e03035872547d76366df40 Mon Sep 17 00:00:00 2001
From: Baptiste Augrain <daiyam@zokugun.org>
Date: Sat, 18 Dec 2021 02:25:18 +0100
Subject: [PATCH] fix: use diddlesnaps/snapcraft-multiarch-action to generate
 arm64 snap (#949)

---
 .github/workflows/linux.yml                   | 30 +++++++++++--------
 stores/snapcraft/build.sh                     | 13 --------
 stores/snapcraft/release.sh                   | 15 ----------
 .../{ => snap}/local/bin/electron-launch      |  0
 stores/snapcraft/{ => snap}/snapcraft.yaml    |  2 +-
 5 files changed, 19 insertions(+), 41 deletions(-)
 delete mode 100755 stores/snapcraft/build.sh
 delete mode 100755 stores/snapcraft/release.sh
 rename stores/snapcraft/{ => snap}/local/bin/electron-launch (100%)
 rename stores/snapcraft/{ => snap}/snapcraft.yaml (99%)

diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
index 7f5708a..6314df4 100644
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -101,7 +101,12 @@ jobs:
 
   snap:
     needs: release
-    runs-on: ubuntu-18.04
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        platform:
+        - amd64
+        - arm64
 
     steps:
       - uses: actions/checkout@v2
@@ -109,18 +114,19 @@ jobs:
       - name: Check version
         run: ./stores/snapcraft/check_version.sh
 
-      - name: Install Snapcraft with LXD
-        uses: samuelmeuli/action-snapcraft@v1
+      - uses: docker/setup-qemu-action@v1
+        if: env.SHOULD_DEPLOY == 'yes'
+
+      - uses: diddlesnaps/snapcraft-multiarch-action@v1
         with:
-          use_lxd: true
+          path: stores/snapcraft
+          architecture: ${{ matrix.platform }}
+        id: build
         if: env.SHOULD_DEPLOY == 'yes'
 
-      - name: Build snap
-        run: ./stores/snapcraft/build.sh
-        if: env.SHOULD_DEPLOY == 'yes'
-
-      - name: Release snap
-        run: ./stores/snapcraft/release.sh
-        env:
-          SNAP_STORE_LOGIN: ${{ secrets.SNAP_STORE_LOGIN }}
+      - uses: snapcore/action-publish@v1
+        with:
+          store_login: ${{ secrets.SNAP_STORE_LOGIN }}
+          snap: ${{ steps.build.outputs.snap }}
+          release: stable
         if: env.SHOULD_DEPLOY == 'yes'
diff --git a/stores/snapcraft/build.sh b/stores/snapcraft/build.sh
deleted file mode 100755
index ff44e8e..0000000
--- a/stores/snapcraft/build.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-
-set -e
-
-CALLER_DIR=$( pwd )
-
-cd "$( dirname "${BASH_SOURCE[0]}" )"
-
-sg lxd -c 'snapcraft --use-lxd'
-
-ls -la
-
-cd "${CALLER_DIR}"
diff --git a/stores/snapcraft/release.sh b/stores/snapcraft/release.sh
deleted file mode 100755
index ea0126f..0000000
--- a/stores/snapcraft/release.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-set -e
-
-CALLER_DIR=$( pwd )
-
-cd "$( dirname "${BASH_SOURCE[0]}" )"
-
-echo "$SNAP_STORE_LOGIN" | snapcraft login --with -
-
-snapcraft upload --release=stable *.snap
-
-snapcraft logout
-
-cd "${CALLER_DIR}"
diff --git a/stores/snapcraft/local/bin/electron-launch b/stores/snapcraft/snap/local/bin/electron-launch
similarity index 100%
rename from stores/snapcraft/local/bin/electron-launch
rename to stores/snapcraft/snap/local/bin/electron-launch
diff --git a/stores/snapcraft/snapcraft.yaml b/stores/snapcraft/snap/snapcraft.yaml
similarity index 99%
rename from stores/snapcraft/snapcraft.yaml
rename to stores/snapcraft/snap/snapcraft.yaml
index 9517414..5a0380d 100644
--- a/stores/snapcraft/snapcraft.yaml
+++ b/stores/snapcraft/snap/snapcraft.yaml
@@ -73,7 +73,7 @@ parts:
     after:
       - codium
     plugin: dump
-    source: local
+    source: snap/local
 
 apps:
   codium: