Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

AppVeyor まとめ

AppVeyor とは

AppVeyor は GitHub などのアカウントと連携して使う CI・CD のマネージドな IaaS・SaaS です。
Continuous Integration and Deployment service for Windows, Linux and macOS | AppVeyor

近いサービスとして、次のようなものがあります:

  • CircleCI
  • GitHub Actions
  • Travis CI

参考: What are some alternatives to Appveyor? - StackShare

公開リポジトリーの場合は無料で利用できます。
Pricing | AppVeyor

AppVeyor を使うべき場面

AppVeyor を使う場面はかなり限られます。
例として、次のような場面があります:

  • Vagrant の Box イメージをビルドしたい場合

Vagrant の Box イメージをビルドしたい場合

AppVeyor の Build environment では VirtualBox が使えます。
Software pre-installed on Linux build VMs | AppVeyor

VirtualBox は仮想マシンにはインストールできないため、
たとえば Vagrant の Box イメージをビルドしたいとき、
GitHub Actions の GitHub-hosted runners や AWS の EC2 インスタンスなどを使うことはできません。

AppVeyor を利用する場面を限定する理由

基本的に、ジョブを並列実行できない

Appveyor は基本的にジョブを並列で実行することができず、
Premium Plan でも並列実行ジョブは 2 つまでです
すぐにビルドでキューが詰まり、生産性に影響が出ます。

Windows を使える CI・CD サービスが増えた

かつて Appveyor は Build environment に Windows が使えるということで利用されましたが、
今は GitHub Actions でも Windows を使うことができ、最大 20 ジョブまで同時実行できます。

参考: AppVeyor を捨てて Azure Pipelines に全て移行した話 - しばやん雑記

GitHub と組み合わせた AppVeyor の使い方

1. GitHub アカウントで Sign in します

Sign up - AppVeyor

2. 新しいプロジェクトを作成し、リポジトリーと関連付けます

2-1.
AppVeyor のダッシュボードを開きます。
Projects - AppVeyor

2-2.
[+] NEW PROJECT をクリック

2-3.
画面右の Cloud で GitHub が選択されていることを確認して、
[Authorize as GitHub App] の [Install AppVayor App] をクリック

対象リポジトリーとして All repositories が選択されていますが、
Only select repositories の方がセキュアです。
Select repositories で必要なリポジトリーを選択して Install ボタンをクリックします。

2-4.
GitHub のパスワードを入力します。

2-5.
「Select repository for your new project」と表示されるので、
リポジトリーにカーソルをあわせると [+] ADD と表示されるので、クリックします。

3. プロジェクトに appveyor.yml を追加します

詳しい書き方は次のリファレンスを確認します:
appveyor.yml Reference | AppVeyor

GitHub で利用例を見てみるのも良いかもしれません。
たとえば、on_success の使われ方は次の検索結果で確認できます:
Search · filename:appveyor.yml on_success

並行実行できない欠点を補うための設定

テスト対象を master ブランチと master ブランチへの PR だけに限定します。
並行実行できないので、ジョブの実行を少しでも減らすためです。

appveyor.yml:

branches:
  only:
    - master

参考: Branches and Tags | AppVeyor

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?