Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GitHub Actions で CI #158

Open
t-tk opened this issue Aug 6, 2023 · 5 comments
Open

GitHub Actions で CI #158

t-tk opened this issue Aug 6, 2023 · 5 comments

Comments

@t-tk
Copy link
Collaborator

t-tk commented Aug 6, 2023

GitHub Actions で CI できるように試しています。
議論したいことが山ほどあります。
お付き合いのほどよろしくお願いします。

t-tk added a commit that referenced this issue Aug 6, 2023
@t-tk
Copy link
Collaborator Author

t-tk commented Aug 6, 2023

Ubuntu, MacOS, Windows上MinGW, Windows MSVC で走るようにしています。

MSVC は @h20y6m さんの↓をベースに拝借いたしました。ありがとうございます。それを真似しつつBuild対象を追加しています。
https://github.com/h20y6m/tex-jp-build/tree/build_msvc

ブランチ名 "build/**" をここに push した場合に4種類すべてが走ります。
ブランチ名 "build-ubuntu/**", "build-macos/**", "build-mingw/**", "build-msvc/**" の場合のそれぞれをここに push した場合、各 OS の build が走ります。

@t-tk
Copy link
Collaborator Author

t-tk commented Aug 13, 2023

同じ作戦で、texlive-source の方でも試しています。こちらは CMake & MSVCをまだ入れていませんが、後々追加するつもり。
https://github.com/t-tk/texlive-source

同様の GitHub Actions や CI は、↓にもあります。
https://github.com/TeX-Live/texlive-source/actions
https://build.contextgarden.net/#/grid

以下の方針を考えており、従来のものと若干方針が違うところがあると思っています。

  • MacOS と Windows (CMake & MSVC, MSys2 & MinGW)を入れてプラットフォーム依存の問題を発見しやすくする
  • 部分コンパイルを気軽にできるようにする
  • すべてのプラットフォームでソースファイルが共通を目指す
  • 主にLinuxで動作確認に用いられている *.test がそのまま他のプラットフォームで PASS することを目指す
  • make checkが PASS するところまでを実施し、配布は考えない

そして、日々の開発で利用しやすくすることを目指します。
現在、TeX Liveの開発者は Linux か MacOS 上が多くWindowsでのテストは手薄になりがちな印象があります。
そこを埋め合わせる道具となることを期待しています。

将来的には、ここでのWindowsのBuildが安定してくれば上記のCIにも取り込んでもらうことも考えています。

@t-tk
Copy link
Collaborator Author

t-tk commented Aug 13, 2023

部分コンパイルを気軽にできるようにするのに重きを置いているので、巨大なライブラリは出来ればコンパイルしたくない。そのため、出来るだけ --with-system-XXX のオプションで、システムのライブラリを使用することを目指す。
しかし、あまり上手くいっていない。
ICU だけは、特に巨大なので、たとえシステムのICUとTeX Live svnのICUの版数が違っても、システムのICUを使いたい。
一応、今回利用している4つのプラットフォームですべて--with-system-icu でコンパイル出来ている。
harfbuzz は上手くいっていない。

@t-tk
Copy link
Collaborator Author

t-tk commented Aug 13, 2023

MacOS は、TeX Live svnのソースの autotools (automake, autoconfなど) の configure, make, make check が大体上手くいく。
気になった点は以下くらい。
システムの ICU のありかが見つけづらく苦労した。将来もずっと同じ方法で見つけられるかどうか分からない。

Msys2 + MinGWは、割と労せずにconfigure, makeまでは大体出来るが、make checkが FAIL するケースが少なくない。
FAIL するものは、*.test の若干の修正で PASS することもあるが、修正方法がすぐには分からないことも多い。
Build 出来ても動作が正しくないケースもあり、test が PASS するまでは油断ならない。
Linux, MacOS, Unix系とWindowsの違いによるプラットフォーム依存の問題に直面することもある。

CMake + MSVCは、一つ一つ CMakeLists.txt を作っていかないといけないので build 出来るまでの手間が掛かる。
ディレクトリ構成が automake の環境と違っているなど、 test にあれこれ修正が必要。まだまだ先は長そう。

t-tk added a commit that referenced this issue Aug 13, 2023
t-tk added a commit that referenced this issue Sep 3, 2023
t-tk added a commit that referenced this issue Sep 24, 2023
t-tk added a commit to t-tk/tex-jp-build that referenced this issue Dec 17, 2023
t-tk added a commit that referenced this issue Apr 14, 2024
t-tk added a commit that referenced this issue Apr 14, 2024
t-tk added a commit that referenced this issue Apr 14, 2024
t-tk added a commit that referenced this issue Apr 14, 2024
t-tk added a commit that referenced this issue Apr 14, 2024
@t-tk
Copy link
Collaborator Author

t-tk commented Sep 28, 2024

安定して使えている build-ubuntu.yml, build-macos.yml を master にも入れました。
思わぬ不具合が発見しやすくなると思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant