4
2

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.

PerlAdvent Calendar 2019

Day 7

travis CI の仕様変更によりPerlの古いバージョンの自動テストがうまくいかない件を解決する

Last updated at Posted at 2019-12-09

#症状

  • Travis.CIにてPerl5.20以下のビルドに失敗する。
  • githubに上げてる.travis.ymlはいじってない。

#解決策

.travis.ymlの冒頭にdist: trustyと添えるだけで直る。

#原因その1

travisが初期状態で持ってるperlbrewのバージョンが古い?
perlbrewでソースを読みに行くURLが404 not foundcurlに失敗している。
よって、perlbrew use 5.xxに失敗。初期状態でperlbrew listに入っている5.22以上だと影響がない。

#原因その2

Module::Build::Tiny のバージョンが古い?

cpanfile

on configure => sub {
    requires 'Module::Build::Tiny', '0.039';
};

とわざわざ最新のバージョンを指定しているのにも関わらず、

Can't locate Module/Build/Tiny.pm in @INC (you may need to install the Module::Build::Tiny module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at Build.PL line 9.

と、怒られる。この事象だけなら.travis.yml

before_install:
  - 'cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)'
  - 'cpanm Module::Build::Tiny'

と明示的なインストールをすることで解決するが、そもそもdist: trustyと指定した場合、__この記載はいらない__ことを確認したし、そうでない場合はperlbrew use 5.xxに失敗してもテストが止まらず、指定していないバージョンでテストを走らせてpassしてしまう__という謎の大暴走を起こすので__全くお勧めできない。

#結論

.travis.ymldist: trustyと入れれば従来通り後方互換性を自動確認しながらモジュールを更新できる。

dist: trusty
language: perl
sudo: false

perl:
- '5.8'
- '5.10'
- '5.12'
- '5.14'
- '5.16'
- '5.18'
- '5.20'
- '5.22'
- '5.24'
- '5.26'
- '5.28'
- '5.30'
...

#なぜ?

わかりません。curlの先が404 not foundになっている時点で参照元のデータベースが古いか、バグかを疑うところなんですが、travis CIのサポートにメールで問い合わせた結果としてdist: trusty使えばええねん、という回答しか来なかったので。

この件を深掘りできる方の__コメントおよび編集リクエストお待ちしております__。

4
2
2

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
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?