SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Azureのクラウド環境でDevOpsを実現する「Azure DevOps」入門

「Azure Artifacts」とDevOpsサービス連携による効率的な開発環境構築

Azureのクラウド環境でDevOpsを実現する「Azure DevOps」入門 第6回

Azure Pipelinesとの連携によるCI/CD自動化(2)

デプロイの定義

 最後にDeployステージの内容を追記します。

[リスト5]Azure Artifacts連携用CI/CDパイプライン(azure-pipelines.yml)
# (9)NuGetパッケージのAzure Artifactsへの公開
- stage: Deploy
  displayName: 'Azure Artifacts公開段階'
  dependsOn: Package
  condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
  jobs:
  - deployment: PublishToArtifacts
    displayName: 'Azure Artifactsへの公開'
    environment: 'Production'
    strategy:
      runOnce:
        deploy:
          steps:
          # ⑩Azure Artifacts自動認証
          - task: NuGetAuthenticate@1
            displayName: 'Azure Artifacts認証'

          # パッケージ公開
          - task: DotNetCoreCLI@2
            displayName: 'Azure Artifactsへ公開'
            inputs:
              command: 'push'
              packagesToPush: '$(Pipeline.Workspace)/**/*.nupkg'
              nuGetFeedType: 'internal'
              publishVstsFeed: '$(System.TeamProject)/WingsLibraries'

 DeployステージではPackageステージで作成したNuGetパッケージをAzure Artifactsに公開します。

(9)NuGetパッケージのAzure Artifactsへの公開

 deploymentジョブタイプを使用してNuGetパッケージを公開することにより、デプロイ履歴が自動記録されるので、いつ、誰が、どのバージョンを公開したのかを追跡できるようになります。environmentを指定することにより、どの環境向けのデプロイであるのかも記録できます。

 またデプロイにrunOnce戦略を用いることで、以降に記述したデプロイ処理は一度だけ実行されることが保証されるので、Azure Artifactsへの公開が誤って繰り返し行われてしまうなどのトラブルを防げます。

(10)Azure Artifacts自動認証

 NuGetAuthenticate@1タスクにより、Azure DevOpsのサービスコネクションを使用した自動認証が行われます。

 これにより、前回ローカル環境からAzure Artifactsにパッケージを公開する際に作成したPersonal Access Token(サービスとの認証を行うためのトークン)の手動管理が不要になり、セキュリティが向上します。

パイプラインのプッシュとAzure DevOps上での動作

 azure-pipelines.ymlファイルを作成したら、リポジトリにコミット・プッシュして、Azure DevOps上でパイプラインを設定・実行します。

(1)YAMLファイルのコミット・プッシュ

 Visual Studio Codeのターミナルで以下のコマンドを実行し、YAMLファイルをリポジトリにプッシュします。

bash
# YAMLファイルをGitに追加
git add azure-pipelines.yml
git commit -m "Add CI/CD pipeline configuration for Azure Artifacts integration"
git push origin main

 プッシュまで成功したことを確認したら、次のステップに進みます。

(2)Azure DevOpsでのパイプライン作成と実行

 Azure DevOpsプロジェクトの左側メニューから「Pipelines」を選択し、画面右上の「New Pipeline」ボタンをクリックします。

図4:パイプライン作成メニュー
図4:パイプライン作成メニュー

 ソースコードの場所として「Azure Repos Git」を選択し、Wings.MathLibraryリポジトリを選択します。

図5:リポジトリの選択
図5:リポジトリの選択

 先ほど作成したazure-pipelines.ymlファイルの内容が表示されるので、設定内容を確認し、「Run」ボタンでパイプラインを実行します。

図6:パイプラインの初回実行
図6:パイプラインの初回実行

 パイプラインが実行されると、各ステージの進行状況をリアルタイムで確認できる画面に遷移します。次のステップでもこの画面での操作が必要となるので、そのまま表示しておきます。

(3)実行結果の確認

 今回のパイプラインでは初回実行時にAzure Artifactsへのアクセス権限の承認が必要な場合があります。以下のように「Permission needed」というメッセージが表示されたら、「View」ボタンを選択して承認を行います。

図7:パイプラインの初回実行時の権限要求
図7:パイプラインの初回実行時の権限要求

 次に表示された画面で「Permit」ボタンを選択することでパイプラインに対し、Azure Artifactsへのアクセス権限が付与されます。

図8:パイプラインに対するAzure Artifactsへのアクセス権限の付与
図8:パイプラインに対するAzure Artifactsへのアクセス権限の付与

 権限の付与が完了すると、止まっていたパイプラインのステップが再開します。しばらく待つとパイプラインが終了します。

図9:パイプラインの完了画面(成功時)
図9:パイプラインの完了画面(成功時)

 パイプラインが終了し、成功した場合は上図の表示になります。各ステップを選択することで詳細な実行時のログを確認できるので、パイプラインの失敗時などはログを確認して原因を特定できます。

(4)Azure Artifactsでの公開確認

 パイプラインの実行が成功すると、Azure Artifactsにパッケージが公開されます。「Artifacts」メニューから該当フィードを開き、新しいパッケージバージョンを確認します。

図10:Azure Artifactsに公開された新しいパッケージ
図10:Azure Artifactsに公開された新しいパッケージ

まとめ

 今回はAzure DevOps上でのパイプライン実行により、ライブラリのコードコミットから品質チェック、パッケージ公開まで完全に自動化されたワークフローを実現しました。次回以降は、このパイプラインを改良して別の検証機能を追加したり、Azure Boardsと連携したりする方法について紹介する予定です。

この記事は参考になりましたか?

Azureのクラウド環境でDevOpsを実現する「Azure DevOps」入門連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 秋葉 龍一(アキバ リュウイチ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/22540 2025/11/14 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング