Azure Pipelines 使っていますか? 昨今は GitHub Actions に後塵を拝している感が否めませんが、マルチステージを利用した承認機能など、実は結構便利に利用できます。今回は Xamarin.Forms で実装した iOS アプリをビルドするための Azure Pipelines を組んでみます。またビルド結果を AppCenter へ送信し、テスト配布も行います。
全体を一本の記事にするととても長くなってしまうためビルドとテスト配布の2つに分割しました。本記事は後編の配布編です。
<span>ノンビリと書いていたら GitHub Actions にも承認処理が来てしまったような気がしますが、気にしたら負けです。</span>
今回試したものはこちらに置いてあります。
https://github.com/noxi515/pipeline-sample-xamarin-ios
前編の記事でビルドした Xamarin iOS アプリを AppCenter へ送信する Pipeline YAML は全体でこのようになります。実際にはビルドと配布のマルチステージ構成となっていますので、 GitHub 上の YAML をご参照下さい。
variables:AppCenterAppSlug:'AppCenterの識別名 "チーム名/アプリ名" 'pool:vmImage:'ubuntu-latest'# 何でも良いsteps:# Pipeline Artifacts をダウンロード-download: current# AppCenter へビルドしたアプリを配信-task: AppCenterDistribute@3displayName:'Distribute to AppCenter'inputs:serverEndpoint:'AppCenterConnection'appSlug:'$(AppCenterAppSlug)'appFile:'$(Pipeline.Workspace)/drop/SampleApp.iOS.ipa'releaseNotesOption:'input'releaseNotesInput:'$(Build.SourceVersionMessage)'destinationType:'groups'isSilent:false
download
はDownload Pipeline Artifact
タスクのショートカットです。ドキュメントに記載の通りこのショートカットを使用すると$(Pipeline.Workspace)/
に Pipeline Artifacts がダウンロードされます。デプロイ系のジョブであれば自動で Pipeline Artifacts を持ってきてくれる気がしますが普通のジョブでは手動の点、注意が必要です。
ビルドで生成された*.ipa
ファイルを AppCenter で配布するために AppCenter へと送信するタスクです。このタスクを使用するには AppCenter から取得したトークンを元に ServiceConnection を作成することが必須となります。また AppCenter のアプリ登録を{userName}/{appName}
の形式でappSlug
に設定します。先行タスクで Pipeline Artifacts から ipa ファイルをダウンロードしているので、appFile
にはダウンロードしたファイルのパスを指定します。
そしてちょっと面倒臭いことに AppCenter に登録するリリースノート情報が必須です。リリースノートの指定はreleaseNotesOption
とreleaseNotesInput
またはreleaseNotesFile
を使用します。サンプルではビルド対象のコミットのコミットメッセージが格納されている Azure Pipelines のBuild.SourceVersionMessage
環境変数を固定で指定しています。
task: AppCenterDistribute@3inputs:serverEndpoint:'AppCenterConnection'appSlug:'$(AppCenterAppSlug)'appFile:'$(Pipeline.Workspace)/drop/SampleApp.iOS.ipa'releaseNotesOption:'input'releaseNotesInput:'$(Build.SourceVersionMessage)'destinationType:'groups'isSilent:false
続いて AppCenter へ送信するために必要な ServiceConnection の登録方法です。まずはプロジェクトの設定画面から ServiceConnection を選択して新規作成を行います。種別はVisual Studio App Center
を選択します。選択した後の設定値は表を参考にして下さい。
設定名 | 設定値 |
---|---|
Server URL | (元の値から変更しない) |
API Token | AppCenter の設定画面からFullAccess スコープで出力したトークンキー |
Service connection name | AppCenterDistribute タスクのserverEndpoint に指定する名前 |
Description | お好みで |
バッジを受け取った著者にはZennから現金やAmazonギフトカードが還元されます。