Edited at

AppVeyor で Perl のテストを実行する

More than 3 years have passed since last update.


AppVeyor とは?

AppVeyor は OS に Windows を使っていることを特徴とした CI (継続的インテグレーション) サービスです。Travis CI と同じように、オープンソースプロジェクトでは、無料で使用できます。


なぜ Windows で Perl を CI するのか ?

オープンソースプロジェクトでは、Perl の CI として、Travis CI が一般に使われています。Travis CI は Linux (Ubuntu) で動作しており、Build Matrix も使え、CI としての機能は十分です。

しかし、プロジェクトの開発者や、ライブラリの利用者は、Unix 系 OS を利用している人だけとは限りません。Unix 環境であることを前提としたコードは、Windows では正常に動作しません。そして、意図せず、そのようなコードを産んでしまう可能性があります。そのような事態を、Windows でも並行して CI することにより、未然に防ぐことができます。


AppVeyor の特徴


  • オープンソースプロジェクト 無料

  • GitHub 連携が可能

  • appveyor.yml にビルドスクリプト記述し実行

  • Windows 系 OS (Windows Server 2012)


    • 毎回クリーンな Virtual Machine を起動し、その中で実行



  • 管理者権限 (Administrators グループ) を持つユーザーで動作

  • Chocolatey が利用可能 (Windows 版パッケージマネージャー)


    • 必要なソフトウェアをコマンドから簡単にインストール可能




AppVeyor の利用方法

まず、AppVeyor に GitHub アカウントでサインアップし、有効にします。そして、appveyor.yml を対象のリポジトリに配置すれば OK です。


設定ファイルの作成

AppVeyor でテストを実行するには、appveyor.yml を作成する必要があります。実際に動作する appveyor.yml のサンプルを以下に載せますので、プロジェクトに応じてカスタマイズしてください。

branches:

# ビルドするブランチを制限する場合
only:
- master

init:
- git config --global core.autocrlf input

install:
# Chocolatey から任意バージョンの Perl をインストールする
# https://chocolatey.org/packages/StrawberryPerl
- choco install strawberryperl -version 5.20.1.1
- SET PATH=C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;%PATH%

# Carton を利用可能にする
- cpanm install Carton
- carton install

build: off

test_script:
# テストを実行する
- carton exec prove --norc --rc=.proverc -r t

cache:
# Carton のインストール先をキャッシュする
# 実用的な時間でテストするためには必須
- local

# 高速化のために、レポジトリをシャロークローン (--depth 1) する
shallow_clone: true


参考


注意点


  • コマンドは、cmd.exe 経由で実行されます。ps: と行頭に付けた場合、PowerShell 経由で実行されます。

  • Unix 環境で用いている & (バックグラウンド実行) などは Windows では利用できないので、注意してください。


その他

AppVeyor はビルドまでの時間、ビルドの時間が Travis CI と比較すると著しく遅いです。そのため、ビルドするブランチを master, develop に絞ったり、他の CI と併用するなどして利用することをオススメします。


関連記事