Azure DevOpsのSprint 161 Updateでは、Azure PipelinesのGitHub Actionsを発表します。GitHub Actionsを使用すると、GitHub ActionsワークフローからAzure Pipelinesの実行を直接トリガーできます。また、Azure Pipelinesで複数のリポジトリのサポートが追加されたため、YAMLパイプラインを保存するリポジトリに加えて、他のリポジトリを取得およびチェックアウトできます。
詳細については、以下の機能リストをご覧ください。
General:
Azure Pipelines:
- Azure Pipelinesで複数のレポジトリからチェックアウトできるようになりました
- GitHub ActionsでAzure Pipelinesをトリガー実行できるようになりました
- Azure PipelinesとServiceNow統合の更新
- VSTestタスクに実行最小限のテスト数の指定ができるようになりました
- Python 2.7でUCS-4をサポートします
- SlackおよびMicrosoft Teams用Azure Pipelinesアプリで一括登録が可能になりました
Azure Repos:
今回の更新で、プロファイルベースの公開認証を使用して、Deployment CenterからWindows用Azure WebAppsをデプロイできるようになりました。発行プロファイルを使用してWindows用Azure WebAppにデプロイする権限がある場合、Deployment Centerのワークフローでプロファイルを使用したパイプラインをセットアップできます。
パイプラインは多くの場合、複数のリポジトリに依存しています。コードをビルドするために必要なソース、ツール、スクリプト、またはその他のアイテムを含むさまざまなリポジトリを作成できます。これまでは、これらのリポジトリをサブモジュール、またはgit checkoutを実行する手動スクリプトを追加する必要がありました。今回の更新で、YAMLパイプラインの保存用リポジトリに加えて、他のリポジトリを取得してチェックアウトできます。
たとえば、YAMLパイプラインを持つMyCodeというリポジトリとToolsという2番目のリポジトリがある場合、YAMLパイプラインは次のようになります。
resources:
repositories:
- repository: tools
name: Tools
type: git
steps:
- checkout: self
- checkout: tools
- script: dir $(Build.SourcesDirectory)
3番目の手順では、sourcesディレクトリにMyCodeとToolsの2つのディレクトリが表示されます。
GitHub Actionsを使用すると、GitHubからコードを簡単に構築、テスト、デプロイできます。これを使用して、外部CI/CDツールおよびサービスをトリガーすることもできます。たとえば、継続的インテグレーションにはGitHub Actionsを使用し、継続的デリバリーにはAzure Pipelinesを使用して、承認、環境、Kubernetesとの深い統合などの機能を活用できます。
この Actionを使用して、Azure DevOpsで特定のパイプライン(YAMLまたはクラシックリリースパイプライン)のトリガーができます。GitHub Actionsは、Azure DevOpsアカウントのプロジェクトURL、パイプライン名、Personal Access Token(PAT)を入力として受け取ります。
ここにスターターテンプレートがあります。
ServiceNow用のAzure Pipelinesアプリは、Azure PipelinesとServiceNow Change Managementの統合に役立ちます。今回の更新により、ServiceNowのNew Yorkバージョンと統合できます。この更新で、OAuthと基本認証を使用して相互のサービス間の認証が可能になります。さらに、高度な成功基準を設定して、変更プロパティを使用してゲート結果を決定できるようになりました。
VSTestタスクは、ユーザー入力(テストファイル、フィルター条件など)および、使用されているテストフレームワークに固有のテストアダプターを使用してテストを検出および実行します。ユーザー入力またはテストアダプターのいずれかを変更すると、テストが検出されず、予想されるテストのサブセットのみが実行される場合があります。これは、コードが十分に高品質であるためではなく、テストが単にスキップされてしまったためにパイプラインが成功する状況につながる可能性があります。この状況を回避するために、VSTestタスクの新しいオプションとして、タスクが合格するために実行しなければならないテストの最小数を指定できるようにしました。
Python 2.7は、ホストされているほとんどのビルドエージェントで使用できます。以前は、UCS-2(2オクテットユニバーサルキャラクターセット)サポートでビルドされたPython 2.7を出荷していました。UCS-2はすべてのUnicode文字を表すわけではないため、Python 2.7の実装をUCS-4に切り替えて、Unicodeで使用可能なすべての文字を表すようにしました。ほとんどのパッケージは、Pythonに組み込まれたUnicodeサポートとは無関係であるため、これがユーザーに影響を与えることはないと考えています。
Slackおよび、Microsoft Teams用Azure Pipelinesアプリケーションを使う場合、プロジェクト単位に一括登録できるようになりました。SlackやTeamsのチャンネルごとにフィルターの管理ができます。特定のパイプラインのみの購読も引き続き可能です。
Slack:
Slash command: /azpipelines subscribe [project url]
Example: /azpipelines subscribe https://dev.azure.com/myorg/myproject
Microsoft Teams:
Command: @Azure Pipelines subscribe [project url]
Example: @Azure Pipelines subscribe https://dev.azure.com/myorg/myproject
SlackおよびMicrosoft Teams用のAzure Reposアプリのユーザーは、プロジェクト内のすべてのGitリポジトリーを一括登録できるようになりました。フィルターを使用して、SlackまたはTeamsチャンネルへの投稿の管理ができます。引き続き個々のGitまたはTFVCリポジトリのみの購読も可能です。
Slack:
Slash command: /azrepos subscribe [project url]
Example: /azrepos subscribe https://dev.azure.com/myorg/myproject
Microsoft Teams:
Command: @Azure Repos subscribe [project url]
Example: @Azure Repos subscribe https://dev.azure.com/myorg/myproject
注意事項
ここで議論されている機能は今後二~三週にわたって順次展開されます。
これらの新機能を読んだ後、次のリンクからぜひご自身でAzure DevOpsサービスを体験してみてください。
これらの機能についてどう思っているかお聞きしたいと思います。 フィードバックメニューを使用して問題を報告するか、提案を提出してください。
アドバイスや回答を必要とする質問がある場合、Stack Overflowコミュニティで聞いてください。
ありがとうございました。
Aaron Hallberg