Help us understand the problem. What is going on with this article?

AppVeyorでWindows向けバイナリを作ってGitHub Releasesに公開

More than 3 years have passed since last update.

中学2年生のときに作ったスクリーンセーバーを公開しましたが、現在は手元にVisual Studioでビルドする環境がありません。CIでビルドしようと思い調べてみたら、AppVeyorという.NET向けのCIを見つけました。この記事はGitHubとAppVeyorを連携させて、GitHub Releasesにビルド済みファイルを添付する方法を紹介します。最終的なReleasesがこちら、ビルド結果がこちらになります。

AppVeyorとは

LinuxやOS X上の開発ではCircle CITravis CIなどLinuxが使われているCIが人気ですが、AppVeyorはWindows上で実行される.NET向けのCIです。もちろん今回のような.NETを使わないプロジェクトもビルドできます。AppVeyorにはビルドやテストだけでなく、デプロイする機能もあります。AppVeyorの用語をいくつか説明します。

Artifact
各ビルドで生成されたファイルにアクセスできる仕組みです。ビルド済みファイルをArtifactに設定すると、各ビルド終了後のバイナリを取得できます。
Deployment
ビルド済みファイルを外部に公開します。AppVeyorでは、Webサーバへの公開だけでなく、GitHub ReleasesやWebhookもDeploymentに含むそうです。
Environment
デプロイ先の設定をAppVeyorではEnvironmentと呼びます。EnvironmentにはGitHub ReleaseやFTPやAmaxon S3やAzureなどが設定できます。プロジェクトのSettingsにあるEnvironmentは、ビルド環境の設定なので別物です。

Artifactの設定

まずビルドで生成されるバイナリをArtifactに追加します。プロジェクトのSettingsからArtifactsを開きます。Path to artifactは、ビルド時に生成されるファイルへの相対パスを、Deployment nameは後で参照するので識別可能な名前を付けます。パス名はバッククオート(\)区切りなので注意を。

artifacts.png

再度ビルドを走らせると、各ビルド結果のArtifactsから、ビルド済みファイルへとアクセス可能となります。

generated_artifacts.png

ここまでの手順でビルド済みファイルが入手できるので、GitHub上でポチポチリリースノートを作れますが、せっかくなのでAppVeyorと連携して自動でReleases noteを作ってみましょう。

Environmentの設定

デプロイ先の情報をEnvironmentに追加します。まずはAppVeyorからGitHub Releasesを作成できるよう、GitHubのAccess Tokenを設定します。GitHubのPersonal Access Tokensを開いてGenerate new tokenをクリックします。Scopeには public_repo のみを設定します。設定が完了したらAccess Tokenが表示されるのでクリップボードにコピーします。

token.png

つぎにAppVeyorの画面上部メニューのEnvironmentsを開いてNew environmentを押します。GitHub authentication tokenにはAccess Token生成時に表示されたものを、Artifact(s) to deployには作成したArtifactの名前を入力します。

environment.png

デプロイ

以上でデプロイの準備が整いました。各プロジェクト画面のDeployments内にNew deploymentがあるので、クリックします。
そして作成したEnvironmentを選択してデプロイするビルドの右側にあるDeployをクリックするとデプロイが開始します。

deploy.png

またEnvironments内や各ビルド結果の上部にあるDeployボタンからもデプロイできます。

おわりに

AppVeyorは初めて触ったので手探り状態で設定しましたが、Build/Test/Deploymentの設定を別々にできるのは便利ですね。この記事ではデプロイするタイミングが手動でしたが、プロジェクトのSettingsのDeploymentを設定すると、自動でGitHub Releasesを作成されます。また今回はWeb画面から設定しましたが、設定ファイルを書きたい人は appveyor.yml を作成すれば良いと思います。

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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした