Skip to content

Commit

Permalink
Snapパッケージビルドのサポート
Browse files Browse the repository at this point in the history
  • Loading branch information
Npepperlinux committed Nov 19, 2023
1 parent 7632a61 commit 9c0a1a1
Show file tree
Hide file tree
Showing 5 changed files with 172 additions and 14 deletions.
62 changes: 62 additions & 0 deletions .github/workflows/snap_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: デプロイ(snap)
run-name: Building Miria's Snap package
on:
workflow_dispatch:
release:
type: [published]

permissions:
contents: write

jobs:
build:
name: ビルド(Snap)
runs-on: ubuntu-latest
strategy:
matrix:
platform: [amd64, arm64]
outputs:
snap: ${{ steps.snapcraft.outputs.snap }}
steps:
- name: Checkout Code
uses: actions/checkout@v3

- name: Convert Icon image to 256x256
run: |
sudo apt install -y imagemagick
convert assets/images/icon.png -resize 256x256 snap/gui/miria.png
rm assets/images/icon_adaptive.png
- name: Setup QEMU
uses: docker/setup-qemu-action@v1

- name: Build Snap
id: snapcraft
uses: diddlesnaps/snapcraft-multiarch-action@v1
with:
architecture: ${{ matrix.platform }}

- name: Get Build Version
run: |
echo "VERSION=$(cat pubspec.yaml | grep version | cut -d ' ' -f 2)" >> $GITHUB_ENV
- name: Upload snap
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload v$VERSION ${{ steps.snapcraft.outputs.snap }}
# https://github.com/snapcore/action-publish
# Snap Storeでパッケージ名"miria"を予約後、"SNAPCRAFT_STORE_CREDENTIALS"を登録し、
# 以下をコメントアウトを解除することでSnap Storeへアップロードすることが可能です。
# Snap Storeでの公開後は、上記の"Upload snap"をコメントアウトしてください。
# (通常、SnapファイルをそのままStore外で公開することはありません)
#
#- name: Upload snap store
# uses: snapcore/action-publish@v1
# env:
# SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.STORE_LOGIN }}
# with:
# snap: ${{ steps.snapcraft.outputs.snap }}
# release: edge

28 changes: 14 additions & 14 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -221,10 +221,10 @@ packages:
dependency: "direct main"
description:
name: collection
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
url: "https://pub.dev"
source: hosted
version: "1.17.2"
version: "1.18.0"
colorfilter_generator:
dependency: "direct main"
description:
Expand Down Expand Up @@ -484,7 +484,7 @@ packages:
source: hosted
version: "8.1.0"
flutter_secure_storage_linux:
dependency: transitive
dependency: "direct main"
description:
name: flutter_secure_storage_linux
sha256: "3d5032e314774ee0e1a7d0a9f5e2793486f0dff2dd9ef5a23f4e3fb2a0ae6a9e"
Expand Down Expand Up @@ -788,10 +788,10 @@ packages:
dependency: transitive
description:
name: meta
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e
url: "https://pub.dev"
source: hosted
version: "1.9.1"
version: "1.10.0"
mfm_parser:
dependency: "direct main"
description:
Expand Down Expand Up @@ -1235,10 +1235,10 @@ packages:
dependency: transitive
description:
name: stack_trace
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
url: "https://pub.dev"
source: hosted
version: "1.11.0"
version: "1.11.1"
state_notifier:
dependency: transitive
description:
Expand All @@ -1251,10 +1251,10 @@ packages:
dependency: transitive
description:
name: stream_channel
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
url: "https://pub.dev"
source: hosted
version: "2.1.1"
version: "2.1.2"
stream_transform:
dependency: transitive
description:
Expand Down Expand Up @@ -1291,10 +1291,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
url: "https://pub.dev"
source: hosted
version: "0.6.0"
version: "0.6.1"
timing:
dependency: transitive
description:
Expand Down Expand Up @@ -1459,10 +1459,10 @@ packages:
dependency: transitive
description:
name: web
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152
url: "https://pub.dev"
source: hosted
version: "0.1.4-beta"
version: "0.3.0"
web_socket_channel:
dependency: transitive
description:
Expand Down Expand Up @@ -1544,5 +1544,5 @@ packages:
source: hosted
version: "3.1.2"
sdks:
dart: ">=3.1.0 <4.0.0"
dart: ">=3.2.0-194.0.dev <4.0.0"
flutter: ">=3.13.0"
1 change: 1 addition & 0 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ dependencies:
webview_flutter: ^4.3.0
webview_flutter_android: ^3.12.0
webview_flutter_wkwebview: ^3.9.0
flutter_secure_storage_linux: ^1.2.0

dependency_overrides:
image_editor:
Expand Down
12 changes: 12 additions & 0 deletions snap/gui/miria.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[Desktop Entry]
Version=1.0
Name=Miria
GenericName=Miria
Type=Application
Exec=miria
Icon=${SNAP}/meta/gui/miria.png
Comment=Misskey client app for mobile (Linux build)
Comment[ja]=モバイル向けのMisskeyクライアントアプリ(Linux向けビルド)
Keywords=Misskey;Miria;みりあ
Terminal=false
StartupNotify=false
83 changes: 83 additions & 0 deletions snap/snapcraft.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: miria # you probably want to 'snapcraft register <name>'
title: Miria
type: app
summary: Misskey Client App # 79文字まで。
description: |
Miriaは分散型SNS「Misskey」のクライアントアプリです。
機能
* タイムラインの閲覧やノートの投稿、「アンテナ」「チャンネル」「みつける」などの基本的な機能を利用することができます。
* 複数アカウント、複数サーバーに対応しています。(※2個目以降のアカウントを追加したあとは、アカウントに紐づくタブを追加する必要があります。)
* 一部のMFMに対応しています。
* タブにカスタム絵文字を設定することができます。
* リアクションピッカーの精度が高く、ひらがなでも検索しやすくなっています。
* 投稿欄でMFMの入力補完をすることができ、MFMの構文やカスタム絵文字をスムーズに入力することができます。
* 配色を複数のパターンから切り替えることができます。
制限事項
* このアプリでは新規登録およびアカウント削除の機能を提供していません。新規登録や削除が必要な場合、登録や削除に必要な要件をそれぞれのサーバーへご確認ください。
* このアプリではサーバーを提供していません。このアプリと一緒に特定のサーバーを付随して提供していないので、このアプリ単独で利用することはできません。
* このアプリはMisskey v12以前のバージョンや、Firefish, Calckeyなどのフォークされたアプリケーションに対応していません。
* モバイル向けに開発されたアプリであることから、一部機能はデスクトップで動作しません。
注意:インストール後、パスワード管理サービスにアクセスできるように、下記のコマンドを実行してください。
`sudo snap connect miria:password-manager-service`
license: AGPL-3.0
website: https://shiosyakeyakini.info/miria_web/index.html
source-code: https://github.com/shiosyakeyakini-info/miria
issues: https://github.com/shiosyakeyakini-info/miria/issues
icon: assets/images/icon.png
adopt-info: miria
base: core22 # the base snap is the execution environment for this snap
grade: stable
confinement: strict
compression: lzo
architectures:
- amd64
- arm64

apps:
miria:
command: miria
extensions: [gnome]
plugs:
- home
- unity7
- network
- audio-playback
- removable-media
- password-manager-service

parts:
miria:
# See 'snapcraft plugins'
source: .
plugin: flutter
override-pull: |
craftctl default
craftctl set version=$(cat pubspec.yaml | grep "version[:]" | cut -d ' ' -f 2)
flutter-target: lib/main.dart
build-packages:
- curl
- libmpv-dev
- libsecret-1-dev
stage-packages:
- libmpv1
- libsecret-1-0
# Integrate custom dialogs in your snap - doc - snapcraft.io
# https://forum.snapcraft.io/t/integrate-custom-dialogs-in-your-snap/10825
zenity:
plugin: nil
stage-packages:
- zenity
prime:
- usr/bin/zenity
- usr/share/zenity/*

layout:
# Fix resource relocation problem of zenity part
/usr/share/zenity:
symlink: $SNAP/usr/share/zenity

0 comments on commit 9c0a1a1

Please sign in to comment.