7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GitHub ActionsでPDFをPNGに変換できなくなったときの対処法

Last updated at Posted at 2021-01-29

発生した問題

CarrierWave + MiniMagickを使ってPDFをPNGに変換する処理を書いており、今までGitHub Actionsでそのテストを回していたが、昨日(2021-1-28)から以下のようなエラーが出てテストが落ちるようになった。

Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: `convert /home/runner/work/project-name/tmp/1611830955-943232923084175-0016-3156/thumb/sample.pdf -auto-orient /tmp/image_processing20210128-5864-128hawr.png` failed with error:
convert-im6.q16: no images defined `/tmp/image_processing20210128-5864-128hawr.png' @ error/convert.c/ConvertImageCommand/3258.

原因

ghostscriptがデフォルトでインストールされなくなっていたため。

UbuntuのVirtual Environmentのバージョンが変わったのでインストールされなくなった?(詳細未確認)

対応

ghostscriptをインストールするようにした。

 - name: Install packages
   run: |
-    sudo apt-get -yqq install libgbm1
+    sudo apt-get -yqq install libgbm1 ghostscript

その他メモ

  • 冒頭に挙げたエラーメッセージでネットを検索すると、/etc/ImageMagick-6/policy.xml<policy domain="coder" rights="none" pattern="PDF" /><policy domain="coder" rights="read|write" pattern="PDF" /> に変更しろ、という話がよく載っているが(参考)、これはすでに対応済みだったので今回の件には関係なかった。
  • ghostscriptがインストールされていないのでは?という観点はこのQ&Aを見て思いついた。RSpecのテストコード内で puts `which gs` のように書いてGitHub Actions上でgsコマンドが見つからないことを確認した。
  • ImageMagickのconvertコマンドに-debug Allというオプションを渡すと、convert実行時の詳細情報が表示されるので、この情報をGitHub Actions上で出力させると詳細な原因がわかるかもしれない。(例 puts `convert -debug All #{Rails.root.join('path/to/your.pdf')} /tmp/foo.png`
  • rspecコマンドに-bオプションを渡すと詳細なバックトレースを出力してくれるので、GitHub Actionsのコマンドに付けておくとヒントが得られるかもしれない。(例 run: bundle exec rspec -b
7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?