Javascript (Node.js) と Bitbucket Pipelines
このガイドでは、Bitbucket Pipelines を使用して、Docker コンテナで Node.js ソフトウェア プロジェクトをビルドおよびテストする方法について説明します。
手動でセットアップしたい場合、構成の大部分は 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 ファイルの先頭で指定して使用できます。
image: node:10.15.0
pipelines:
default:
- step:
script:
- node -v
Node.js の異なるバージョンを使用したい場合、Node.js Docker イメージのタグを変更します。次の例は、Node 4.7.2 のコンテナを開始します。
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
を実行することで、すべての依存関係を簡単にインストールできます。
image: node:10.15.0
pipelines:
default:
- step:
script:
- npm install
Yarn を使用して依存関係を管理する
Docker Hub の既定の Node.js イメージには、既定で yarn がインストールされています。これをスクリプトで直接使用して、特定のパッケージをローカルまたはグローバルでインストールできます。
image: node:10.15.0
pipelines:
default:
- step:
script:
- yarn
依存関係をグローバルにインストールする (Gulp、Grunt、Angular CLI...)
Node パッケージはグローバルにインストールすることもできます。例えば、パイプラインが Gulp や Grunt などのタスク ランナーに依存している場合、それらをグローバルにインストールする必要があります。パッケージ マネージャーとして npm を使用している場合、npm install -g
コマンドを使用できます。
npm install -g grunt-cli
npm install
grunt
Yarn を使用している場合は yarn global add
を使用します。
yarn global add grunt-cli
yarn
grunt
モジュールをダウンロードして非公開リポジトリに公開する
公開 npm レジストリまたは独自の非公開レジストリの非公開モジュールを使用している場合、リポジトリ変数を使用して、リポジトリのルートで .npmrc ファイルで確認できます。開発時に local ~/.npmrc ファイルとの競合を防ぐには、名前を .npmrc_config と設定し、パイプライン スクリプトの一部として名前を変更できます。
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
registry=https://registry.npmjs.org
非公開 npm レジストリを使用する場合、registry.npmjs.org
をレジストリのアドレスで置き換えます。
その後、Bitbucket Pipelines で次の変数を構成します。
- NPM_TOKEN: レジストリの認証トークンです。レジストリにログインした後、ローカルの ~/.npmrc で見つけることができます。
bitbucket-pipelines.yml スクリプトは、非公開の依存関係をインストールするために次のようになります。
image: node:10.15.0
pipelines:
default:
- step:
script:
- mv .npmrc_config .npmrc
- npm install
テスト
ローカルでアプリケーションをテストするために使用したコマンドと同じものを、bitbucket-pipelines.yml に追加します。たとえば、ローカルで npm test
を使用してテスト スイートを実行している場合、次の例のようになります。
image: node:10.15.0
pipelines:
default:
- step:
script:
- npm install
- npm test
データベース
パイプラインでサービス コンテナを使用してデータベースを実行します。
デプロイメント
これで、プロジェクトがビルドおよびテストされました。プロジェクトをどこかにデプロイすることができます。次のステップについては、アトラシアンのデプロイ ガイドを参照してください。