Perl Hackers Hub

第49回 CPANモジュールの品質を支えるCI技術(1)

この記事を読むのに必要な時間:およそ 1 分

本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはOSSOpen Source Software開発を活発にされている水音ぴねさんで,テーマは「CPANモジュールの品質を支えるCI技術」です。

本稿のサンプルコードは,WEB+DB PRESS Vol.103のサポートサイトから入手できます。

CPAN Testers─⁠─ コミュニティによる品質維持

PerlにはCPANという中央リポジトリがあり,さまざまなモジュールがOSSとして利用できます。CPANは,CPAN Testersというしくみによって品質が維持されています。はじめに,そのしくみを解説します。

CPAN Testersとは

CPAN Testersは,CPANのモジュールを有志がテストし,その結果を集計してまとめているWebサービスです。手もとの環境だけでなく,さまざまな環境でのテスト結果を気軽に閲覧できます。CPAN Testersへは,metaCPANの各モジュールのページから移動できます図1⁠。metaCPANはCPANをより使いやすくしたWebサービスです。

図1 metaCPAN

図1 metaCPAN

CPAN Testersでは,macOS,Windows,Linux,FreeBSDなど,さまざまなOSでテストされています。それぞれのOS上で複数のPerlバージョンでテストされるため,テストされる環境の組み合わせは膨大です。こういった環境を自前で用意し,リリースごとにテストを行うとしたら大変な作業です。このようなエコシステムが整っているのは,Perlの良いところです。

CPAN Testersの読み方

CPAN Testersでは,どの組み合わせでテストが成功したかという情報だけではなく,テスト時の環境の情報やログを閲覧できます。CPAN Testersにアクセスしたら,テスト結果を見たい組み合わせをクリックし,見たいレポートを選びます図2⁠。

図2 CPAN Testers

図2 CPAN Testers

図3は拙作のHash::Util::Pickのテスト結果です。これはPerlをC言語で拡張したXSモジュールであるため,テストの際にC言語のコンパイルが必要です。レポートからはどのバージョンのgccが使われたか,コンパイルオプションは何かを見ることができます。

図3 CPAN Testersでのテスト結果

図3 CPAN Testersでのテスト結果

CPAN Testersはテスト時の環境や実行ログがかなり詳細にレポートされるしくみなため,特定の環境だけでテストに失敗したときも修正が比較的容易です。

<続きの(2)こちら。>

WEB+DB PRESS

本誌最新号をチェック!
WEB+DB PRESS Vol.113

2019年10月24日発売
B5判/160ページ
定価(本体1,480円+税)
ISBN978-4-297-10905-9

  • 特集1
    接続エラー,性能低下,権限エラー,クラウド障害
    AWSトラブル解決
    原因調査・対応・予防のノウハウ
  • 特集2
    Ruby書き方ドリル
    要点解説と例題で身に付く!
  • 特集3
    体験
    ドメイン駆動設計
    モデリングから実装までを一気に制覇
  • 一般記事
    FigmaによるUIデザイン
    デザイナーとエンジニアがオンラインで協業できる!
  • 一般記事
    入門
    SwooleによるPHP非同期処理
    高速化のための並列実行はどのように書くのか

著者プロフィール

水音ぴね(みずねぴね)

新卒で入社した会社では,Perlでソーシャルゲームの開発に従事。

現在は転職し,アプリとサーバーサイドをScalaで書いている。JavaScriptが好き。

GitHub:pine