CrossRoad

XRを中心とした技術ブログ。 Check also "English" category.

【2023/9/1解決策あり】TechBoosterのRe:VIEW TemplateでGitHub Actionによるビルドができないお話

以前から発刊しているBabylon.js レシピ集の執筆には、Re:VIEWという記法を使っています。

この記法で書いたものをpdfにするとき、Re:VIEW Templateというリポジトリの中身を使用しております。

しかし、先ほど新しくリポジトリを準備したところ、なぜかGitHub Actionsでのpdfビルドに失敗しました。

暫定解決までしかしていないのですが、調べた内容を書いておきます。

解決策は本文の最後に追記しました。

1. TechboosterのRe:VIEWテンプレートではGitHub Actionsが失敗する

TechboosterのRe:VIEWテンプレートから、"Use this template"ボタンで自分のリポジトリに一通りをcloneしました。

github.com

これを自分のローカル環境にクローンしてpdfビルドすると失敗します。よくみると、TechboosterのリポジトリでもActionsで失敗していました。

2. 技術書典14のGitHubリポジトリでもGitHub Actionsが失敗する

Babylon.js レシピ集Vol.2を執筆した時のリポジトリでも、7月以降にpushでActionsのビルドが失敗していました。

3. 暫定解決方法

3.1 エラーが出ているTexの記述を修正する

ビルドが失敗すると、このようなエラーが出ます。

)) (/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty)
./techbooster-doujin-base.sty:56: Undefined control sequence.
<argument> \captionwidth 
                         
l.56 \setlength{\captionwidth}{\textwidth}
                                          
No pages of output.
Transcript written on _REVIEW_BOOK_.log.
rake aborted!
Command failed 

techbooster-doujin-base.styとは、articles/styの中にあるファイルです。

%\newlength{\captionwidth}
\setlength{\captionwidth}{\textwidth}
\addtolength{\captionwidth}{-\captionnumwidth}

元々はこのように書いてあるのですが、コメントアウトの意味の"%"を消すと、Actionsのビルドが通るようになります。

これはここで言及されています。ただし、投稿された方も暫定解決であり正しい方法かを確認してほしい、とコメントされています。

github.com

なお、この修正をすると、私のDocker環境ではビルドが通らなくなりました。

このように、"\captionwidth"がすでに宣言されています、というエラーが出てしまいます。

./techbooster-doujin-base.sty:55: LaTeX Error: Command \captionwidth already de
fined.
               Or name \end... illegal, see p.192 of the manual.

ただし、GitHub Actionsを使わないで自分のDockerを使ったビルドは成功します。このときのDockerイメージはvvakame/review:5.4です。

3.2 GitHub Actionsでvvakame/review:5.4を読むように修正する (失敗)

原因はわかりませんが、自分のDocker環境とバージョンを合わせればGitHub Actionsでもビルドが通るかもしれないと考えました。

そこで、リポジトリ内でRe:VIEW :5.5となっている箇所をgrepして5.4に修正しました。これにより、Actionsのログをみると、5.4をインストールする記述に変わりました。

Github Actions Build failed

しかし、やはり"\captionwidth"がすでに宣言されています というエラーが出てビルドが失敗しました。

3.3 技術書典14のときのDockerをそのまま使って、ローカル環境でビルドする

◾️Docker Desktopのインストール

Windows への Docker Desktop のインストール | Docker ドキュメント

Docker Desktop の Mac へのインストール | Docker ドキュメント

◾️Dockerイメージのダウンロード

$ docker pull ghcr.io/vvakame/review:5.4 (ghcrからのダウンロードの場合)
$ docker pull vvakame/review:5.4 (Docker Hubからのダウンロードの場合)
$ ./build-in-docker.sh

◾️Techboosterのテンプレートをcloneして、pdfビルドを実行

REVIEW_CONFIG_FILE=config-ebook.yml ./build-in-docker.sh

4. (2023/9/1 追記) 解決方法


@cx20 さんのおかげで、こちらのPRを反映させることで、ローカルDockerもGitHub Actionsでもビルドが通ることがわかりました。

github.com


5. おわりに

歯切れが悪いのですが、また新しくわかったら追記します。

ひとまず執筆環境が整ってよかったです。