Windows環境を使えるCI/CDサービスです。(今はLinux環境も使えますが。そのビルドしたものをGitHubのリリース領域に追加する、ということについてのメモ。Windows環境を使えるものがあまりないのでWindows用としてはよく使われているサービスだと思います。レポジトリを読み込めばレポジトリ毎にAppVeyorに登録出来ます。テストレポジトリ今回作ったのはこれ。build/test.txtというファイルを作成するだけのものです。このbuild.batをAppVeyorでコミットのたびに実行するようにします。そのリリースに作成されたtest.txtを添付する、というのが目的。tests/test.batとして入れています。実際には何かアプリ的なxxx.exeとかを作ってそれをテストしてGithubに貼り付ける感じです。ページですべてのレポジトリが見える様になります。特定のレポジトリだけをAppVeyorから見える様にすることもできます。ここで連携したいレポジトリを選択してAppVeyor側にプロジェクトを作っておきます。今回必要なのはGitHubにファイルをアップロードするために必要なアクセストークンの登録だけです。commitとかもするとしたらrepo全体をチェックして作成します。variableします。nameは適当にgithub_accessとかにしてvalueの欄に取得したトークンを入れます。それを押すことで環境変数を暗号化することが出来ます。今回のトークンの様なものは暗号化しておきます。Requestとかからは使えない様になります。登録時に指定した名前で使えます。(そのためのnameの登録だと思うので多分ドキュメントが古い。)これでAppVeyor側の設定が出来たのでレポジトリ側に設定ファイルを作成します。appveyor.yml設定ファイルはレポジトリトップにappveryor.ymlか.appveyor.ymlという名前で置きます。nameで名前を指定して使います。今回の内容はこんな感じ。true最初のversionはGitHubのタグとかとは直接関係なくAppVeyor側の管理ようです。これだとビルドが行われるたびに0.1.1、0.1.2、0.1.3とビルド番号がつくようになります。artifactsはビルドしてアウトプットにしたいものを指定します。今回はtest.text。複数ファイルをまとめて送る際には設定しておくと便利です。build_scriptはビルド用コマンド。今回はbuild.batを実行するだけ。これ以外にもbefore_build/after_buildなども設定できます。AppVeyorその後でテストをします。fileという内容)チェックするだけ。ReleasesにdeployしたいのでGitHubを指定。それ以外にもAWSやAzure、もしくは単にFTPサーバーなども指定できます。AppVeyor)以下の設定はdeploy先によって変わるものもあります。リリース名ここではAPPVEYOR_REPO_TAG_NAMEというAppVeyorによって予め設定される値を使っています。AppVeyorの設定ファイルの中で変数を値として使う場合には$()で表現します。APPVEYOR_REPO_TAG_NAMEはビルドのトリガーがタグだった場合にそのタグ名が入ります。AppVeyor)タグでない場合にはundefinedになります。今回はタグの場合だけリリースを作るのでタグの名前でリリースを作る様にしています。指定しないとエラーになりますが、''を指定するとタグを作る時に付けた説明がリリースの説明にも使われます。GitHubへのアクセストークン上で登録したアクセストークンの名前を指定します。Releasesに送りたいファイルの指定。/.*file/みたいな感じで正規表現を使って複数をまとめて送ることも出来ます。deployを実行する条件APPVEYOR_REPO_TAGもAppVeyorによって設定される値でタグがトリガーだとtrueになります。条件のところで使う場合には$()は使いません。これでレポジトリにpushすればビルドとテストが走ります。タグを作って送るとさらにそのタグからリリースを作ってtest.txtをそのリリースに送ってくれます。codeのzip/tar.gzファイルに加えてtest.txtが付いています。AppVeyorで作られて送られてきたものです。Actionsでやった方が楽です。Actionsであれば特にその様なことをしなくても中で処理してくれます。AppVeyroでやったことと同じ様なことが出来るんじゃないかな、と思うのでそのうち試して見るかも。vim_ahk今回これを採用したのはvim_ahkです。面倒だったので手が付けられてませんでした。言え実際ちゃんと自分で説明書読んでやってみたら上に書いたような感じで簡単に出来ることだったんですが。Windows上でGUIを使ったテストが上手く行かない状態で、それも合わさってビルド自体も上手く行かないと思ってたところが悪いところでした。まとめAppVeyorを使ってWindows用のアプリをビルドとかしてGitHubのリリースに送ることが出来る様になりました。出来るならそっちのが良いかな、とは思います。あと、AppVeyorで上手く行かないテストも上手いことできると良いのですが。