Azure DevOpsを利用すれば、GitHubで管理しているリポジトリに無料でCI/CDを追加する事が出来ます。プライベートリポジトリにも無料で利用する事が出来るのでとても便利です。
Azure DevOpsの利用登録
Azure DevOps Services | Microsoft Azure
Azure DevOpsのサイトから”GitHub の使用を無料で開始する“を選択して、Azure DevOpsとGitHubを連携します。
新しいプロジェクトを追加
Azure DevOpsとGitHubの連携が完了したらNew projectを選んでプロジェクトを追加します。
任意の名前を付けてプロジェクトを作成します。
Pipelineを作成
プロジェクトが出来たので、左側のメニューからPipelineを選択してCreate Pipelineを選んでPipelineを追加します。
GitHubと連携したいので、GitHubを選択します。初めてGitHubと連携する時はAzure DevOpsからGitHubへのアクセス許可の認証画面が出るはずです。許可しないと連携出来ないので許可しましょう。
次に連携するリポジトリを選択します。public、privateどちらも無料で連携出来ます。
次に主な開発言語を選びます。私はWindows Desktop用に設定するのでUniversal Windows Platformを選択します。
これはPipeline設定用のyamlの初期コードを決めるだけだと思うので、間違っても後で自分で修正するだけ済みます。
最後のPipelineの設定ファイルのazure-pipelines.ymlの編集・確認画面が出ます。このままでは使えないので、自分の環境に合わせて編集します。
後でいつでも変更可能なので、とりあえずはデフォルトの状態でSave and runを選択しても問題ありません。
Azure DevOpsのPipelineでは必ずcommitしないとPipelineの動作確認が出来ません。ですので、ここではcommitメッセージを入力してSave and runを再度選択します。
これでPipelineのセットアップは完了です。
azure-pipeline.ymlのサンプル
私のsamplesリポジトリだとこのようなyamlになります。
# Universal Windows Platform
# Build a Universal Windows Platform project using Visual Studio.
# Add steps that test and distribute an app, save build artifacts, and more:
# https://aka.ms/yaml
trigger:
- master
pool:
vmImage: 'windows-latest'
jobs:
- job:
strategy:
matrix:
AddressSanitizer Debug:
MSBuildConfiguration: Debug
AddressSanitizer Release:
MSBuildConfiguration: Release
steps:
- task: MSBuild@1
displayName: 'MSBuild AddressSanitizer'
inputs:
solution: 'AddressSanitizer/AddressSanitizer.sln'
msbuildArchitecture: 'x64'
configuration: '$(MSBuildConfiguration)'
- job:
strategy:
matrix:
Likely Debug:
MSBuildConfiguration: Debug
Likely Release:
MSBuildConfiguration: Release
steps:
- task: MSBuild@1
displayName: 'MSBuild Likely'
inputs:
solution: 'Likely/Likely.sln'
msbuildArchitecture: 'x64'
configuration: '$(MSBuildConfiguration)'
こちらのyamlを実行するとこうなります。
各プロジェクトのDebug、Releaseビルドがそれぞれ並列にJobとして実行されているのが分かるかと思います。
GitHubにPipelineのBuildステータスを表示する
リポジトリのREADME.mdに以下のようにURLを追加する事でビルドステータスが表示されるようになって便利です。
Azure PipelinesからStatus badgeを選ぶとコードを取得できます。
# samples
[<img src="https://melty.visualstudio.com/Sample/_apis/build/status/meltybk.samples?branchName=master"/>](https://melty.visualstudio.com/Sample/_build/latest?definitionId=1&branchName=master)
Privateリポジトリの場合は、Status budgeへのアクセスを許可します。
コメント