Skip to content

Commit

Permalink
Snapパッケージビルドのサポート
Browse files Browse the repository at this point in the history
  • Loading branch information
Npepperlinux committed Nov 24, 2023
1 parent c86a896 commit 915f79b
Show file tree
Hide file tree
Showing 3 changed files with 161 additions and 0 deletions.
63 changes: 63 additions & 0 deletions .github/workflows/snap_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: デプロイ(snap)
on:
workflow_dispatch:
release:
types: [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@v3

- 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://gihyo.jp/admin/serial/01/ubuntu-recipe/0660#sec3 : Snapパッケージアップロードまでの流れ
# https://github.com/snapcore/action-publish : Snap ActionのREADME.md
# Releaseは"edge"に設定していますが、"stable"が選択可能です。
# 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

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
86 changes: 86 additions & 0 deletions snap/snapcraft.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: miria # 'snapcraft register miria'で名前を予約する必要があります。
title: Miria
type: app
summary: Misskey Client App # 79文字まで
description: |
Miriaは分散型SNS「Misskey」のクライアントアプリです。
機能
* タイムラインの閲覧やノートの投稿、「アンテナ」「チャンネル」「みつける」などの基本的な機能を利用することができます。
* 複数アカウント、複数サーバーに対応しています。(※2個目以降のアカウントを追加したあとは、アカウントに紐づくタブを追加する必要があります。)
* MFMに対応しています。
* タブにカスタム絵文字を設定することができます。
* リアクションピッカーの精度が高く、ひらがなでも検索しやすくなっています。
* 投稿欄でMFMの入力補完をすることができ、MFMの構文やカスタム絵文字をスムーズに入力することができます。
* 配色を複数のパターンから切り替えることができます。
制限事項
* このアプリでは新規登録およびアカウント削除の機能を提供していません。新規登録や削除が必要な場合、登録や削除に必要な要件をそれぞれのサーバーへご確認ください。
* このアプリではサーバーを提供していません。このアプリと一緒に特定のサーバーを付随して提供していないので、このアプリ単独で利用することはできません。
* このアプリはMisskey v12以前のバージョンやFirefishなどの派生したアプリケーションに対応していません。
* モバイル向けに開発されたアプリであるため、一部機能はデスクトップで動作しません。
注意:インストール後、パスワード管理サービスにアクセスできるように、下記のコマンドを実行してください。
`sudo snap connect miria:password-manager-service`
license: AGPL-3.0
website: https://shiosyakeyakini.info/miria_web
source-code: https://github.com/shiosyakeyakini-info/miria
issues: https://github.com/shiosyakeyakini-info/miria/issues
donation: https://shiosyakeyakini.fanbox.cc
icon: assets/images/miria.png
adopt-info: miria
base: core22
grade: stable
confinement: strict
compression: lzo
architectures:
- amd64
- arm64

apps:
miria:
command: miria
extensions: [gnome]
plugs:
- home
- unity7
- network
- audio-playback
# 以下はユーザーが接続を許可するまで使用不可(password-manager-serviceは必須)
- removable-media
- password-manager-service

parts:
miria:
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:
# media_kitによる動画再生のため
- libmpv1
# flutter_secure_storageによるパスワード保存のため
- libsecret-1-0
# Snapとファイル選択ダイアログの統合のため
# 詳細: 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:
# zenity partのリソース再配置問題修正のため
/usr/share/zenity:
symlink: $SNAP/usr/share/zenity

0 comments on commit 915f79b

Please sign in to comment.