Skip to content

Instantly share code, notes, and snippets.

@kkamegawa
Created September 19, 2018 12:37
Show Gist options
  • Save kkamegawa/bb5a0714d2773650b5e5609da7cd6391 to your computer and use it in GitHub Desktop.
Save kkamegawa/bb5a0714d2773650b5e5609da7cd6391 to your computer and use it in GitHub Desktop.

Introducing Azure DevOps

Visual Studio Team Services(VSTS)であった単一のサービスは、現在Azure DevOpsという、新しいサービスの集合体になりつつあります。Azure DevOpsのドキュメント、Webサイト、製品内のすべての場所で、Azure DevOpsの各サービスのアイコンと名前をみつけるでしょう。

  • Azure Pipelines は継続的なビルド、テスト、あらゆるプラットフォーム及びクラウドへのデプロイを提供します。
  • Azure Boardsはパワフルな作業管理機能です。
  • Azure ArtifactsはMaven、 npm、NuGetのパッケージフィードを提供します。
  • Azure Reposは無制限のクラウドベースのプライベートGitレポジトリです(訳注:TFVCも引き続き提供されます)。
  • Azure Test Plans探索テストとテスト計画機能を提供します。

With the launch of Azure Pipelines, we've introduced a new app to the GitHub Marketplace, refreshed a number of the experiences to help you get started, and offers unlimited CI/CD minutes and 10 parallel jobs for open source projects.

Azure Pipelinesの提供開始に伴い、GitHub Marketplaceに新しいアプリケーションの提供を開始し、開始に役立つ多くの経験をリフレッシュし、オープンソースプロジェクトに無制限のCI/CDと10の並列ジョブを提供します。

以下のリストで紹介する機能を確認してください。

Features

Azure Pipelines:

Marketplace:

Administration:

Next steps

注意事項

ここで議論されている機能は今後二~三日にわたって順次展開されます。

これらの新機能を読んだ後、次のリンクからぜひご自身でAzure DevOpsサービスを体験してみてください。

Go to Azure DevOps Services

Azure Pipelines

Azure PipelinesをGitHub Marketplaceから追加する

GitHub Marketplaceで公開された新しいAzure Pipelinesアプリケーションは、GitHubリポジトリとの統合を拡張し、並行ジョブの購入を容易にします。

以前は、OAuth認証を通じてGitHubリポジトリとの継続的な統合を可能にすることができました。Azure Pipelineは、OAuthを使用して個人のGitHubアイデンティティを使用してコードを取得し、GitHub上でビルドステータスを更新します。しかし、あなたのチームのメンバーは時間とともに変化する可能性があるため、個人のGitHubのIDと権限を使用することはあまり望ましくない場合があります。Azure Pipelinesアプリケーションをインストールすることで、代わりにアクションを実行するようにアプリケーションに許可できます。

また、このアプリケーションを使用すると、GitHubの新しいChecks APIでビルド、テスト、およびコードカバレッジの結果を詳細に表示したビルド結果が表示されます。

まず、GitHub MarketplaceからGitHubアカウントまたは組織にアプリをインストールします。別のAzureアカウントではなく、既存のGitHub支払いアカウントで追加の並列ジョブを購入することもできます。価格はいずれの場合も同じです。

Azure Pipelines app in GitHub Marketplace

オープンソースプロジェクトを無償のAzure Pipelinesでビルドする

Azure Pipelinesは、Linux、MacOS、Windows用のクラウドホスト型パイプラインをオープンソース向けに最大並列度10で、使用時間の上限なく無料で提供します。

詳細については、build public repositoriesparallel jobsのドキュメントを参照してください。

YAMLでビルドを構成する

重要!

この機能を使用するには、プロファイルまたは組織でBuild YAML pipelinesPreview Featuresを有効にする必要があります。

YAMLベースのビルドパイプラインは現在広く使用可能です。ほかのコードと一緒にリポジトリにチェックインされたYAMLファイルを使用して、継続的な統合パイプラインを自動化します。シングルジョブビルドを開始するのは簡単です。ニーズが高まるにつれて、複数のジョブ外部テンプレート、およびマトリックス実行を使用して簡単にスケールアウトできます。

新しいウィザードでYAMLビルドパイプラインを作る

重要!

この機能を使用するには、プロファイルまたは組織でNew YAML pipeline creation experiencePreview Featuresを有効にする必要があります。

新しいウィザードは、GitHubとAzure ReposでYAMLベースのビルドパイプラインを作成するプロセスを簡略化します。ビルドするリポジトリを選択すると、パイプラインにはYAMLファイルが含まれていると自動的に作成されます。それ以外の場合、Azure Pipelinesはリポジトリを分析し、プロジェクトを構築するためのYAMLベースのテンプレートを推奨します。 Save and runをクリックして、推奨YAMLのpull requestを作成し、最初のビルドを実行します。継続的インテグレーションおよびpull requestトリガーは自動的に有効になります。

New pipeline wizard

新しいBuildページでビルドパイプラインを管理する

重要!

この機能を使用するには、プロファイルまたは組織でPreview FeaturesNew builds hubを有効にする必要があります。

いくつかの改善を行った、ビルドページの新しいバージョンを展開しています。この新しいバージョンでは、すべてのビルドパイプラインのディレクトリと現在のビルドのリストが結合され、プロジェクトのビルド全体を迅速にナビゲートしてステータスを確認できます。また、選択したパイプラインのテストアナリティクスのプレビューも含まれています。

New Builds page

GitHubのpull requestビルドで再度ビルドする

pull requestをGitHubリポジトリに登録すると、パッケージレジストリが使用できない、または不安定なテストなど、断続的なエラーが原因でプルリクエストビルドが失敗する可能性があります。このような場合、もう一度ビルドを実行することをお勧めします。現時点において、再度ビルドするにはpull requestに対して、別の更新を再度プッシュする必要があります。new Builds pageで、失敗したビルドを選択し、別の新しいビルドをキューに入れるだけです。

再ビルドするこの操作は、pull requestのビルドを開始するためにのみ利用できます。私たちは、すべての失敗したビルドで同様の機能を利用できるようにすることを検討しています。

ビルド状態のバッジの新URL

リポジトリのホームページに埋め込まれたビルドバッジは、リポジトリの正常性を示す一般的な方法です。ビルドバッジの構築に役立つ新しいURLが追加されました。新しいURLを使用すると、ブランチごとのステータスを公開し、選択したブランチの最新のビルドにユーザーを誘導できます。新しいステータスバッジURLのMarkdownは、new Builds pageのステータスバッジメニューアクションを選択することで取得できます。下位互換性を保つため、古いビルドバッジURLもを引き続き提供します。

Microsoftが提供するLinuxビルドエージェントでより多くのツールを活用する

今回の更新で、ビルド、テスト、および展開のツールが新しくMicrosoft Hosted Linux agentに追加されました。これにより、ビルドやリリース中に自分でインストールする必要がなくなります。

  • Erlang/OTP
  • Firefox
  • Haskell
  • Heroku CLI
  • ImageMagick
  • Mercurial
  • Microsoft SQL Server Client Tools
  • MySQL Server
  • PhantomJS
  • Pollinate
  • PyPy2 and PyPy3
  • rebar
  • rsync
  • ShellCheck
  • Sphinx
  • Terraform
  • Xvfb

GitHubのコミットとissueをリリースに関連付ける

リリースで展開される変更を知ることは、アプリケーションの改善を追跡する上で重要です。今回の更新で、GitHub reposで作成されたコミットのリストと、リリースでデプロイされる関連するGitHubのissueが取得できます。

Commits for a release

改良されたメール書式でビルドと展開の完了メールを管理しやすくする

ビルドとデプロイの完了メールは、メールルールを使って、より柔軟なフィルタリングができるようになりました。件名には関連性の高い情報が一目で表示され、本文には詳細が含まれ、最新のブランド(訳注:Azureブランド)でスタイリングが刷新されました。

新しいフォーマットの要素です。

  • [Build result] [pipeline name] - [repository:branch] - [project name] - [commit]
  • [Deployment result] [pipeline name] > [release name] : [stage name]

例えば以下のような形式になります。

  • [Build succeeded] IdentityService.CI - MyRepo:master - MyProject - d3b90b80
  • [Deployment succeeded] New release pipeline > NotificationSpecialRelease-1 : Stage 1

Azure Pipelinesの用語の統一

歴史的経緯から、ビルドやリリースでは、同様の概念に対して異なる用語が使用されています。場合によっては、用語の意味は曖昧でした。たとえば、agent poolagent queueの違いを伝えるときです。

コンセプトを明確にするため、Azure Pipelinesの用語が統一されました。次の統一された用語で表示されるようになります。

以前の用語 統一された用語 意味
Hosted agent Microsoft-hosted agent Microsoftが管理するクラウドベースのインフラストラクチャで実行されるbuild/releaseエージェント
Private agent Self-hosted agent みなさんが管理するマシンで提供され、build/releaseを実行するエージェント
Agent pool Agent pool build/releaseに使うエージェント実行マシンを組織単位で管理する単位
Agent queue Agent pool build/releaseで試用するエージェント実行マシンのプロジェクトレベルでの管理する単位。組織レベルのagent poolに関連付けられます
Build definition Build pipeline アプリケーションをビルドするために実行されるエンドツーエンドのビルドステップのまとまりです
Build Build 実行中、もしくは実行するビルドパイプラインのインスタンス
Phase Job エージェントで順次、もしくは並列で一連のタスクを実行する。buildかreleaseパイプラインには一つもしくは複数のジョブがあります。
Release definition Release pipeline 複数のステージにまたがって、アプリケーションをデプロイするためにエンドツーエンドで実行されるリリースのステップのまとまりです
Release Release 実行中、もしくは実行するリリースパイプラインのインスタンス
Environment Stage リリースパイプラインから生成された、独立した論理的なデプロイされる単位
Concurrent job/pipeline Parallel job 並列ジョブを使用すると、組織内で一度に1つのビルドジョブまたはリリースジョブを実行できます。より多くの並列ジョブを使用することで、より多くのビルドジョブとリリースジョブを同時に実行できます。
Service endpoint Service connection ビルドまたはリリースでタスクを実行するために外部サービスに接続するための資格情報などの一連の設定。

詳細はConceptsドキュメントを参照してください。

Marketplace

最新の拡張機能カテゴリーの活用

拡張機能の提供者の皆さんは、Marketplaceの名前が変更されたAzure DevOpsサービスと一致するように拡張機能カテゴリが整列されていることに気づくでしょう。以前のカテゴリは新しいカテゴリに自動的にマッピングされていますが、拡張機能のマニフェストを更新することで新しいカテゴリに切り替えることをおすすめします。詳細については、マニフェストのドキュメントを参照してください。

Administration

既存の組織を新しいドメインのURLに変更する

新しい組織のURLとして新しい dev.azure.comドメイン名に移行しましたが、今までのようにvisualstudio.comドメインを使って組織にアクセスできます。dev.azure.comに基づくURLに変更したい場合、組織管理者(Project Collection Administrator)が組織設定ページから変更できます。新しいドメイン名を採用してもすべてのリクエストはリダイレクトされませんが、組織のルートURLへのリクエストや多くの電子メールやWebベースのリンクからのリンクが変更されます。

Org URL setting

お客様のご意見に基づいて徐々に新しいURLに移行します。これはオプトインから開始され、その後、組織のデフォルトに設定されます。私たちはまだ既存組織のvisualstudio.comドメインを廃止するスケジュールを設定していません。

重要!

組織が既存のファイアウォールまたはIPの制限を確実に満たすためには、適切なドメイン名とIPアドレスとの通信が許可されていることを確認してください。 詳細については、agent Q&A sectionを参照してください。

StakeholderユーザーにAzure Pipelinesのライセンス負担をかけないようにする

重要!

この機能を使用するには、組織でFree access to Pipelines for Stakeholders Preview Featuresを有効にする必要があります。

素晴らしいニュースです!Azure Pipelinesサービスのみを使用している場合、基本ライセンスを使用しているユーザーに対してライセンス料金を支払う必要はありません。Azureパイプラインのすべての機能は、すべてのユーザーが無料で利用できます。プロジェクトに多くのユーザーを追加する場合、適切な権限を付与した上で、追加ユーザーを無料のステークホルダーユーザーとして残しておくことで、彼らはパイプラインを作成、表示、更新、承認できます。このライセンス変更に関する追加の注意事項は次のとおりです。

  • Azureパイプラインで追加の並列ジョブ用の費用を支払うだけです。ユーザー数は無制限です。
  • Azure Pipelineのすべての機能は、引き続きセキュリティおよび権限モデルによって管理されます。
  • 他のAzure DevOpsサービスを使用している場合、無料の制限に該当する場合であっても、これらのサービスに対してユーザーごとのライセンスを支払う必要があります。
  • 既存の組織では、ステークホルダーはデフォルトで無料のAzure Pipelinesメリットを得られません。組織の管理者(プロジェクトコレクション管理者)は、このプレビュー機能を明示的に有効にする必要があります。このプレビュー機能を有効にすると、ステークホルダーの行動が変更されます。現在、ビルドやリリースの管理はできません。ただし、プレビュー機能を有効にすると、Azureパイプラインの基本ユーザーとステークホルダーとの間に違いはありません。この理由から、ステークホルダーが無料のAzure Pipelineユーザーとして扱われることを許可する選択は、管理者に委ねられます。

詳細については、Provide Stakeholders access to edit build and release pipelinesのマニュアルを参照してください。

Feedback

これらの機能についてどう思っているかお聞きしたいと思います。 フィードバックメニューを使用して問題を報告するか、提案を提出してください。

Make a suggestion

アドバイスや回答が必要な質問がある場合、Stack Overflowコミュニティで聞いてください。

Thanks,

Jeremy Epling

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment