【入門編】コード品質を自動で担保!BitbucketパイプラインにSonarQubeやESLintを統合する設定手順 – バージョン管理・CI/CD活用バイブル

こんにちは。現場の最前線で「いかに楽をして、最高品質のコードを届けるか」を追求しているエンジニアです。

皆さんは、プルリクエスト(PR)を送った後に「あ、セミコロン忘れた」「セキュリティ的に危ない書き方をしてるかも」と冷や汗をかいた経験はありませんか? 人間の目視によるレビューには限界があります。

今回は、Bitbucket Pipelinesを使い、コードの品質チェックを完全に自動化する方法を伝授します。これを導入すれば、「品質基準を満たさないコードは、そもそもデプロイの土俵にすら上がれない」という鉄壁のガードが完成します。

—

1. なぜ「自動品質管理」が必要なのか?

開発スピードを上げるためには、「フィードバックのループ」を極限まで短くする必要があります。

  • ESLint: コードの書き方の「癖」を統一し、単純なバグを未然に防ぐ。
  • SonarQube: 複雑度やセキュリティの脆弱性を検出し、コードの「負債」を可視化する。

これらをCI/CDに組み込むことで、レビューアは「インデントの修正」のような瑣末な指摘から解放され、よりクリエイティブな「設計のレビュー」に集中できるようになります。これがチームの生産性を劇的に変える第一歩です。

—

2. 設定の全体像:bitbucket-pipelines.yml

Bitbucket Pipelinesの設定は、リポジトリのルートにある `bitbucket-pipelines.yml` に記述します。まずは、ESLintとSonarQubeを統合した構成例を見てみましょう。

image: node:18 # コンテナ環境を指定

pipelines:
default:

  • step:

name: 静的解析と品質チェック
caches:

  • node

script:
# 1. 依存関係のインストール

  • npm install

# 2. ESLintの実行(エラーがあればここでPipelineが停止する)

  • npx eslint . –ext .js,.ts

# 3. SonarQubeスキャナーの実行

  • pipe: sonarsource/sonarqube-scan:1.4.0

variables:
SONAR_HOST_URL: $SONAR_HOST_URL
SONAR_TOKEN: $SONAR_TOKEN

ここがポイント!

  • Pipelineの停止: `npm install` や `eslint` コマンドは、失敗すると終了ステータス `1` を返します。Pipelineは終了ステータスが `0` 以外だとその時点で処理を停止するため、「汚いコードはマージできない」という強制力が働きます。

—

3. SonarQubeとの連携:現場で役立つコツ

SonarQubeを導入する際、最も重要なのは「結果をどこで見せるか」です。

1. SonarQube側でプロジェクト作成: 公式サイトでプロジェクトを作成し、`SONAR_TOKEN` を発行します。
2. Bitbucketのリポジトリ変数に登録: 「Repository settings」 > 「Pipelines」 > 「Repository variables」に `SONAR_TOKEN` と `SONAR_HOST_URL` を追加します。決して直書きしないでください! セキュリティの鉄則です。
3. PRへのフィードバック: SonarQubeの「Pull Request Decoration」設定を行うと、BitbucketのPR画面に直接「バグが1件見つかりました」といったコメントが自動投稿されます。

—

4. 初心者が陥りやすい罠と「極意」

初めて導入する際、多くの人がここでつまずきます。

  • 「いきなり全部直そうとしない」: 既存のプロジェクトに導入すると、何千件ものエラーが出ます。最初は `.eslintrc` で `warn`(警告)設定から始め、徐々に `error`(エラー)へ引き締めていくのが、挫折しないコツです。
  • 「キャッシュを活用せよ」: `caches: – node` を設定することで、毎回 `node_modules` をダウンロードする無駄な時間を省けます。CIの実行時間は、開発者の待ち時間です。1秒でも削りましょう。

—

5. まとめ:自動化は「エンジニアの自由」を生む

今回の設定を導入すれば、あなたのリポジトリは24時間365日、専属の厳しいレビュアーが監視している状態になります。

「コードの品質が低いからマージできない」とツールが勝手に判断してくれるおかげで、チームメンバーは無駄な揉め事から解放され、より本質的な開発に打ち込めるようになります。

「自動化できることは、すべて自動化する」

これが、一流のエンジニアが持っている共通の哲学です。まずは今日、`bitbucket-pipelines.yml` を作成するところから始めてみてください。きっと、数週間後には「これなしの生活には戻れない」と感じるはずですよ。

何か詰まったら、いつでも聞いてください。応援しています!

タイトルとURLをコピーしました