かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

Azure Functions v2 のプロジェクトを Run-From-Zip 用に固める Azure DevOps 用のビルドの YAML

はじめて YAML でビルド定義したけど簡単でびっくりしました。これは XAML より記述少なくていいわ…。

pool:
  vmImage: 'VS2017-Win2016'

variables:
  solution: '**/*.sln'
  projects: '**/*.csproj'
  testProjects: '**/*Tests.csproj'
  buildConfiguration: 'release'
  mainProject: 'path to function app csproj file(ex: Hoge/Hoge.csproj))'

steps:
- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    projects: '$(projects)'

- task: DotNetCoreCLI@2
  inputs:
    command: 'build'

- task: DotNetCoreCLI@2
  inputs:
    command: 'test'
    projects: '$(testProjects)'
    arguments: '--configuration $(buildConfiguration) --collect "Code coverage"'

- script: dotnet publish --output $(Build.BinariesDirectory) --configuration $(buildConfiguration) $(mainProject)

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: $(Build.BinariesDirectory)
    includeRootFolder: false
    archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip

- task: PublishBuildArtifacts@1

こうするとビルドID.zipというファイルが出来るので、あとは Release のパイプラインで Deploy Azure App Service の v4 系(まだプレビュー)から Run-From-Zip に対応してるっぽいので、それでさくっとデプロイ出来ます。

割といい感じっぽい。