7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AZ-400:Azure Pipelines を使った npm パッケージの公開

Posted at

この記事は、過去に投稿した記事 AZ-400:Azure Artifacts フィードへの npm パッケージ公開の続編となります。

Azure Pipelines を使ったパッケージの公開

過去の記事ではローカル PC との連携のみ試しましたが、今回は、Azure Pipelines を利用し、パッケージのソースがリモートのリポジトリに push されたことをトリガに、最新バージョンをフィードに公開するようにします。
また、別プロジェクトからフィードをインストールできることを確認します。

プロジェクトの構成

Azure DevOps の組織に下記 2 個のプロジェクトを作成します。

  • MakeKonamon: パッケージ make-konamon をビルドし、フィードを公開するプロジェクト。
    フィード FeedMakeKonamon が存在(過去に投稿した記事で作成済)。フィードのスコープは(組織ではなく)プロジェクトとしています。
  • HelloKonamon: フィードから make-konamon をインポートするプロジェクト。

それぞれのプロジェクトは下記のようなファイル構成となっています。
(後の手順でパイプラインを作成することにより、azure-pipelines.yml が追加されます)

make-konamon
    .npmrc
    index.js
    package.json
hello-konamon
    .npmrc
    index.js
    package-lock.json
    package.json

これらを各プロジェクトの Repo に push します。

スクリーンショット_20230210_194526.png

パッケージのビルド Pipeline

MakeKonamon プロジェクトの Pipelines から Pipeline を作成し、Node.js のテンプレートを選択します。
下記のような npm タスク(Npm@1)を追加し、command に publish、publishFeed に MakeKonamon のフィードを指定後、Pipeline を保存します。

- task: Npm@1
  inputs:
    command: publish
    publishRegistry: useFeed
    publishFeed: MakeKonamon/FeedMakeKonamon

パッケージをインストールするビルド Pipeline

HelloKonamon プロジェクトの Pipelines から Pipeline を作成し、Node.js のテンプレートを選択します。
下記のような npm タスク(Npm@1)を追加し、command に install、customFeed に MakeKonamon のフィードを指定します。

- task: Npm@1
  inputs:
    command: install
    customRegistry: useFeed
    customFeed: MakeKonamon/FeedMakeKonamon

動作確認用に下記実行スクリプトを追加後、Pipeline を保存します。

- script: |
    node index.js
  displayName: 'run'

フィードのアクセス権限の設定

ローカル PC からの接続では、ホームディレクトリの .npmrc に資格情報を格納し、認証に使用しましたが、今回は .npmrc は使用せず、プロジェクトの設定を変更します。

MakeKonamon プロジェクトのプロジェクト設定で Permissions を開き、Contributor に HelloKonamon プロジェクトのビルドサービスを追加します。

スクリーンショット_20230211_103043.png

また、Artifacts のフィード FeedMakeKonamon の 設定から Permissions タブを開き、MakeKonamon のビルドサービスに Contributor 権限、HelloKonamon のビルドサービスに Collaborator 権限を付与します。

スクリーンショット_20230211_005246.png

パッケージのインストールをする側で Contributor 権限が必要となるのは不思議な気もしますが、MS Learnのドキュメントにある通りで、試しにプロジェクト設定で HelloKonamon のビルドサービスを Reader 権限にしたところ、フィードのアクセス時にエラーとなりました。

パッケージの更新

MakeKonamon のパッケージに下記変更を行い、リポジトリに push します。

  • index.js で返す文字列を「takoyaki」->「akashiyaki」に変更
  • package.json の version を「1.1.0」->「1.2.0」に変更

MakeKonamon で Azure Pipelines が実行され、フィードに 1.2.0 が公開されます。

HelloKonamon の package.json で参照するバージョンを 1.2.0 に変更し、リポジトリに push します。

  "dependencies": {
    "make-konamon": "1.2.0"
  }

MakeKonamon で Azure Pipelines が実行されます。
ログ出力から1.2.0 の変更が反映されていることが確認できました。

スクリーンショット_20230211_101934.png

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?