kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Visual Studio Team Servicesでre:view原稿のCDを行う

kkamegawa.hatenablog.jp

CIやったから、次はCDもやります。

f:id:kkamegawa:20170908071132p:plain

Releasesからリリースを作成します。ArtifactsのところのAddをクリックすると、ビルドで作成されたartifactの選択画面が表示されます。

Default versionは通常latest(最新ビルド)を指定してください。

Source aliasはちょっとわかりづらいのですが、複数のArtifactsを使用する際に区別したいときに使います。通常、ビルド名を使いますが、わかりやすい名前で省略しても構いません。

f:id:kkamegawa:20170908071126p:plain

パイプラインのタスクにはビルドと同じものが大体使用できます。ここではVSTSの内蔵エージェントを使うので、WindowsのAzCopyが指定できます。ストレージのkeyとかいちいちとってこなくてもVSTSのタスクがよろしくやってくれます。

Blob prefixにはAzure Blobのフォルダ名となる値が指定できます。ここではビルド時に生成されたビルド番号を指定しましたが、Gitであればコミットハッシュでもいいでしょう。コミットハッシュを使えば度のコミットに対応した成果物なのか一目でわかりますね。

f:id:kkamegawa:20170908071119p:plain

で、リリースを実行すると、こんな風にBlobにコピーされます。713というのがこの時のビルドNoになります。継続的デリバリーなので、ビルド成功したタイミングで常時デプロイしてもかまいません。しかし、今回はKindleに提出するときの原本として保持しておきたいので、提出原稿がビルドで生成されたことを確認してから、手動でリリース(Create Release)して、Blobへのコピーするようにしたいと思います。

こういうのを分割できるのと、Windowsの機能が余り悩まなくても使えるので、ビルドとリリースを分割しておくとおすすめです。

あとVSTSのアカウントにVS Enterpriseサブスクリプションを登録しておけば、その人数分並列度が上がります。例えば誰かが原稿をビルドしていても、ほかの人がリリース作業するとか、複数人での同時ビルドもできるようになります。

例えば、私のアカウントには9人分の知り合いのMSDNサブスクリプションが入っているので、最大10並列(一つは最初からある分)になります。