Javascript (Node.js) と Bitbucket Pipelines

 

このガイドでは、Bitbucket Pipelines を使用して、Docker コンテナで Node.js ソフトウェア プロジェクトをビルドおよびテストする方法について説明します。

実際に動作するパイプラインを持つデモ リポジトリをインポートしたい場合、デモ用の node リポジトリをご参照ください。


手動でセットアップしたい場合、構成の大部分は Pipelines がビルドを定義するために使用する bitbucket-pipelines.yml ファイル内で行います。

Docker で Node.js のバージョンを指定する

Bitbucket Pipelines は、構成ファイルの最初に指定したイメージを使用し、すべてのビルドを Docker コンテナで実行します。Docker Hub にあるいずれかの公式 Node.js Docker イメージを使用することで、Bitbucket Pipelines で簡単に Node.js を使用できます。 

たとえば、Node.js 10.15.0 を bitbucket-pipelines.yml ファイルの先頭で指定して使用できます。

1 2 3 4 5 6 image: node:10.15.0 pipelines: default: - step: script: - node -v

Node.js の異なるバージョンを使用する場合は、Node.js Docker イメージのタグを変更します。次の例では、Node 4.7.2 のコンテナを開始します。

1 image: node:4.7.2

サポートされているすべての Node.js バージョンと対応するイメージ タグの一覧については、https://hub.docker.com/_/node/ を参照してください。

オンライン バリデーターを使用して bitbucket-pipelines.yml ファイルをチェックすることができます。

依存関係をインストールする

npm を使用して依存関係を管理する

Docker Hub の既定の Node.js イメージには、既定で npm がインストールされています。これをスクリプトで直接使用して、特定のパッケージをローカルまたはグローバルでインストールできます。

package.json ファイルを使用している場合、スクリプトの最初で npm install を実行することで、すべての依存関係を簡単にインストールできます。

1 2 3 4 5 6 image: node:10.15.0 pipelines: default: - step: script: - npm install

Yarn を使用して依存関係を管理する

Docker Hub の既定の Node.js イメージには、既定で yarn がインストールされています。これをスクリプトで直接使用して、特定のパッケージをローカルまたはグローバルでインストールできます。

1 2 3 4 5 6 image: node:10.15.0 pipelines: default: - step: script: - yarn

依存関係をグローバルにインストールする (Gulp、Grunt、Angular CLI...)

Node パッケージはグローバルにインストールすることもできます。たとえば、パイプラインが Gulp や Grunt などのタスク ランナーに依存している場合、それらをグローバルにインストールする必要があります。パッケージ マネージャーとして npm を使用している場合、npm install -gコマンドを使用できます。

1 2 3 npm install -g grunt-cli npm install grunt

Yarn を使用している場合は yarn global add を使用します。

1 2 3 yarn global add grunt-cli yarn grunt

モジュールをダウンロードして非公開リポジトリに公開する

公開 npm レジストリまたは独自の非公開レジストリの非公開モジュールを使用している場合、リポジトリ変数を使用して、リポジトリのルートで .npmrc ファイルで確認できます。開発時に local ~/.npmrc ファイルとの競合を防ぐには、名前を .npmrc_config と設定し、パイプライン スクリプトの一部として名前を変更できます。

.npmrc_config

1 2 //registry.npmjs.org/:_authToken=${NPM_TOKEN} registry=https://registry.npmjs.org

非公開 npm レジストリを使用する場合、registry.npmjs.org をレジストリのアドレスで置き換えます。

その後、Bitbucket Pipelines で次の変数を構成します。

  • NPM_TOKEN: レジストリの認証トークンです。レジストリにログインした後、ローカルの ~/.npmrc で見つけることができます。

bitbucket-pipelines.yml スクリプトは、非公開の依存関係をインストールするために次のようになります。

bitbucket-pipelines.yml

1 2 3 4 5 6 7 image: node:10.15.0 pipelines: default: - step: script: - mv .npmrc_config .npmrc - npm install

テスト

ローカルでアプリケーションをテストするために使用したコマンドと同じものを、bitbucket-pipelines.yml に追加します。たとえば、ローカルで npm test を使用してテスト スイートを実行している場合、次の例のようになります。

1 2 3 4 5 6 7 image: node:10.15.0 pipelines: default: - step: script: - npm install - npm test

データベース

パイプラインでサービス コンテナを使用してデータベースを実行します。

デプロイメント

これで、プロジェクトがビルドおよびテストされました。プロジェクトをどこかにデプロイすることができます。次のステップについては、アトラシアンのデプロイ ガイドを参照してください。

その他のヘルプ