Javascript (Node.js) と Bitbucket Pipelines

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

robotsnoindex

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

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

このデモではこのリポジトリをインポートし、最初のパイプラインを実行するためにパイプラインを有効化します。

  1. bitbucket.org にアクセスしてログインし、このリポジトリをインポートします。その後、次の操作を行います。

    gif のインポート

  2. 左側のナビゲーション バーで [Pipelines] をクリックし、下にスクロールして bitbucket-pipelines.yml ファイルを表示します。[有効化] をクリックします。

    gif の有効化

  3. ビルドが実行されるのを確認します。

    gif のビルド 

  4. 注意: Bitbucket Pipelines には、アカウントごとに 50 分の無料利用時間が含まれています (本記事の執筆時点での情報)。自身のアバター > [Bitbucket 設定] > [プランの詳細] で、その月のチームまたはアカウントの時間の使用量を、分単位で確認できます。




手動でセットアップしたい場合、構成の大部分は 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 と設定し、パイプライン スクリプトの一部として名前を変更できます。

.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 スクリプトは、非公開の依存関係をインストールするために次のようになります。

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

データベース

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

デプロイメント

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


最終更新日 2020 年 6 月 24 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.