LoginSignup
6
6

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-08-15

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 と併用するなどして利用することをオススメします。

関連記事

6
6
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
6
6