「Azure Artifacts」とDevOpsサービス連携による効率的な開発環境構築
Azureのクラウド環境でDevOpsを実現する「Azure DevOps」入門 第6回
Azure Pipelinesとの連携によるCI/CD自動化(2)
デプロイの定義
最後にDeployステージの内容を追記します。
# (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」ボタンをクリックします。
ソースコードの場所として「Azure Repos Git」を選択し、Wings.MathLibraryリポジトリを選択します。
先ほど作成したazure-pipelines.ymlファイルの内容が表示されるので、設定内容を確認し、「Run」ボタンでパイプラインを実行します。
パイプラインが実行されると、各ステージの進行状況をリアルタイムで確認できる画面に遷移します。次のステップでもこの画面での操作が必要となるので、そのまま表示しておきます。
(3)実行結果の確認
今回のパイプラインでは初回実行時にAzure Artifactsへのアクセス権限の承認が必要な場合があります。以下のように「Permission needed」というメッセージが表示されたら、「View」ボタンを選択して承認を行います。
次に表示された画面で「Permit」ボタンを選択することでパイプラインに対し、Azure Artifactsへのアクセス権限が付与されます。
権限の付与が完了すると、止まっていたパイプラインのステップが再開します。しばらく待つとパイプラインが終了します。
パイプラインが終了し、成功した場合は上図の表示になります。各ステップを選択することで詳細な実行時のログを確認できるので、パイプラインの失敗時などはログを確認して原因を特定できます。
(4)Azure Artifactsでの公開確認
パイプラインの実行が成功すると、Azure Artifactsにパッケージが公開されます。「Artifacts」メニューから該当フィードを開き、新しいパッケージバージョンを確認します。
まとめ
今回はAzure DevOps上でのパイプライン実行により、ライブラリのコードコミットから品質チェック、パッケージ公開まで完全に自動化されたワークフローを実現しました。次回以降は、このパイプラインを改良して別の検証機能を追加したり、Azure Boardsと連携したりする方法について紹介する予定です。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- Azureのクラウド環境でDevOpsを実現する「Azure DevOps」入門連載記事一覧
-
- Azure Test Plansでテスト管理を始めよう
- Azure Pipelinesを中心とした連携で、品質管理などの機能を実装しよう
- 「Azure Artifacts」とDevOpsサービス連携による効率的な開発環境構築
- この記事の著者
-
WINGSプロジェクト 秋葉 龍一(アキバ リュウイチ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 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本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
