Jenkins向け導入ガイド

技術サポートが必要ですか?   導入支援のご依頼・ご相談       

事前設定

Docker のインストール

Sider Scan CLI は Docker 上で動作します。 そのため、まず Docker を Jenkins が動くサーバーにインストールします。 もし、Jenkins 自体が Docker で運用されている場合、 DooD (Docker out of Docker) などの方法によって、Jenkins サーバーから Docker を起動する必要があります。 https://docs.docker.com/get-docker/

Docker を実行するjenkins ユーザが Docker を起動できるか、権限などをあらかじめご確認ください。

envsubst コマンドのインストール

Jenkins サーバーに envsubst コマンドをインストールする必要があります。gettext パッケージに含まれていますので、例えば Ubuntu では以下を実行してください。

apt-get install gettext

Jenkinsの起動オプション

Sider Scan は解析結果の詳細レポートを Jenkins の成果物として保存します。その詳細レポートをブラウザで閲覧できるようにするために、以下のように Jenkins の起動オプションを設定してください。

java -Dhudson.model.DirectoryBrowserSupport.CSP="" -jar jenkins.war

これはセキュリティ上のリスクとなる可能性がありますので、ご注意ください。この起動オプションを設定する前に、以下のJenkinsのコンテンツセキュリティポリシーの記事をご確認ください。

https://www.jenkins.io/doc/book/security/configuring-content-security-policy/#customizing-content-security-policy

Copy Artifact Plugin の有効化

ホーム画面から[Jenkinsの管理]-[プラグインの管理]に移動して Copy Artifact Plugin のインストールにチェックを入れてください。

ビルドの設定

解析する対象のプロジェクトに対して以下のようにビルドの設定を実施します。

  1. ビルド環境:「ビルド開始前にワークスペースを削除する」
  2. ビルド手順の追加:「他プロジェクトから成果物をコピー」
  3. ビルド手順の追加:「シェルの実行」
  4. ビルド後の処理の追加:「成果物を保存」

1. ビルド環境:「ビルド開始前にワークスペースを削除する」

ビルド環境の「ビルド開始前にワークスペースを削除する」のチェックを入れてください。

2. ビルド手順の追加:「他プロジェクトから成果物をコピー」

ビルド手順として「他プロジェクトから成果物をコピー」、「シェルの実行」の順に追加してください。

「他プロジェクトから成果物をコピー」では以下のように設定してください。

  • プロジェクト:対象のプロジェクトと同じ名前を指定。つまり、自分自身のプロジェクトから成果物をコピーします。
  • ビルド:最新の成功ビルド
  • コピーする成果物:output.radump
  • オプション:チェックを入れる

3. ビルド手順の追加:「シェルの実行」

シュルスクリプトのテキストボックスに以下を入力してください。

mkdir scan_result
tmpscanjson=$(mktemp) && envsubst < .siderscan.json > "$tmpscanjson" && mv "$tmpscanjson" .siderscan.json
sudo docker run -e "TZ=Asia/Tokyo" -v $(pwd):/target -w /target --rm sider/sider_scan_runner:latest sider run /target

4. ビルド後の処理の追加:「成果物を保存」

ビルド後の処理として「成果物を保存」を追加し、以下のように設定してください。

  • 保存するファイル:scan_result/**,output.radump

設定ファイル .siderscan.json をリポジトリに配置

以下のSider Scan の設定ファイル .siderscan.json を対象のリポジトリにサブミットしてください。

編集が必要な箇所があります。 4行目と14行目のyourname@example.com の文字列を、Sider Scan からの解析レポートを受信するメールアドレスに変更下さい。

{
  "report": {
    "mail": {
      "to": ["yourname@example.com"],
      "useBuiltInProvider": true
    }
  },
  "scan": {
    "result": {
      "url": "${BUILD_URL}artifact"
    }
  },
  "enableSiderScanTracing": {
    "userEmail": "yourname@example.com"
  }
}

以上により設定が終わりました。Jenkinsがビルドジョブを実行するたびに、Sider Scanが対象のリポジトリのソースコードを解析します。ビルドジョブを実行するタイミングは設定に依存しますが、サイドメニューの「ビルド実行」をクリックすると手動で実行することができます。

より高度な設定

Sider Scan 本体に関する詳しい設定に関しては、

Sider Scan の高度な設定
Sider Scan 設定リファレンスガイド

を参照下さい。