emacs-mirror/emacs をfork(全ブランチ)して作成
java/INSTALL
に記された手順をもとにGNU EmacsのAndroid用アプリケーションパッケージファイル(.apkファイル)をビルドする。
$ cat <<"EOS" > PATCH_FOR_EMACS.patch
diff --git a/lisp/startup.el b/lisp/startup.el
index 357a4154e4c..3e6508954cf 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -1938,8 +1938,7 @@ a face or button specification."
(if (image-type-available-p 'xpm)
"splash.xpm"
"splash.pbm"))
- ((or (image-type-available-p 'svg)
- (image-type-available-p 'imagemagick))
+ ((image-type-available-p 'svg)
"splash.svg")
((image-type-available-p 'png)
"splash.png")
EOS
$ patch -p1 < PATCH_FOR_EMACS.patch
$ git add PATCH_FOR_EMACS.patch lisp/startup.el
$ git commit -m 'nanika commit message'
- モジュールとして追加するライブラリ用のレポジトリを作成3
ayatakesi/my-Android-ImageMagick7
ayatakesi/my-webp
ayatakesi/my-libxml2
ayatakesi/my-tree-sitter-0.20.7
ayatakesi/my-tiff-4.5.0
ayatakesi/my-sqlite
ayatakesi/my-pcre
ayatakesi/my-p11-kit-0.24.1
ayatakesi/my-nettle-3.8
ayatakesi/my-libtasn1-4.19.0
ayatakesi/my-libselinux
ayatakesi/my-libpng
ayatakesi/my-libjpeg-turbo
ayatakesi/my-jansson
ayatakesi/my-icu
ayatakesi/my-harfbuzz-7.1.0
ayatakesi/my-gnutls-3.7.8
ayatakesi/my-gmp-6.2.1
ayatakesi/my-giflib
ayatakesi/my-core
ayatakesi/my-boringssl
-
my/master
ブランチにビルド用ワークフローファイル.github/workflows/build_all.yml
を追加4 -
ビルドが成功すれば
java/*.apk
が生成される -
CI/CD
- fork元
emacs-mirror/emacs
のmaster
からfork先ayatakesi/my-emacs
のmaster
にSync fork
- localのレポジトリで
master
をcheckout、pullしてSyncした差分を取り込み - localのレポジトリで
my/master
をcheckoutしてmaster
をmerge - conflictしたらお気に入りのマージツールで解決
- commitしてfork先にpush
- ワークフローを実行して
master
のHEAD
にたいするapkファイルをビルド
- fork元
Footnotes
-
自分の作業は対象のブランチとかに接頭辞
my/
を付加した別ブランチを切って行っています。こうしておけばGithubでSync fork
したときに(もしかしたら大量の)競合が発生して、それをGithubのWeb上のエディタで解決するという地獄みたいなミッションを回避できます。 ↩ -
bug-gnu-emacs
にレポートした件に関するpatchです。 ↩ -
作り方について各レポジトリの
README.md
に記載あり。 ↩ -
トリガーは手動のみ。内容はインデントとか除けば普通のbashコマンドプロンプトと同じ ↩