GitLab 向け導入ガイド

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

Sider Scan の導入に必要な作業は

  1. GitLab CI 設定ファイル(.gitlab-ci.yml) を作成し
  2. 設定ファイルを解析対象リポジトリのルートディレクトリに配置する

だけです。以下の手順に従って下さい。

Step1: GitLab CI 設定ファイル( .gitlab-ci.yml )の作成

下記のコードを.gitlab-ci.yml として保存して下さい。1点だけ変更箇所があります。19行目: yourname@example.com の文字列を、Sider Scan からの解析結果レポートを受信するメールアドレスに変更下さい。

stages:
  - scan

scan-job:
  stage: scan
  image: sider/sider_scan_runner:latest
  script:
    - |
      if [ ! -e .siderscan.json ]; then
        # ==================================================================================
        # ==================================================================================
        # ==================================================================================
        #
        # *********************************
        # **********  要変更箇所  **********
        # *********************************
        # Sider Scanの解析結果を必要に応じてお送りします
        # 受信メールアドレスを設定してください
        export SIDERSCAN_MAIL_TO=yourname@example.com
        #
        # ==================================================================================
        # ==================================================================================
        # ==================================================================================
        SIDERSCAN_JSON=$(cat - << 'JSON'
      {
        "report": {
          "mail": {
            "to": ["${SIDERSCAN_MAIL_TO}"],
            "useBuiltInProvider": true
          }
        },
        "scan": {
          "result": {
            "url": "${CI_SERVER_PROTOCOL}://${CI_PROJECT_ROOT_NAMESPACE}.${CI_PAGES_DOMAIN}/\
      -${SIDERSCAN_PROJECT_SUBGROUPS}/${CI_PROJECT_NAME}/-/jobs/${CI_JOB_ID}/artifacts/"
          }
        },
        "enableSiderScanTracing": {
          "userEmail": "${SIDERSCAN_MAIL_TO}"
        }
      }
      JSON
        )
        SIDERSCAN_JSON=${SIDERSCAN_JSON//\\\n//}
        echo "$SIDERSCAN_JSON" > .siderscan.json
        echo 'CREATED .siderscan.json'
      fi
    - export SIDERSCAN_PROJECT_SUBGROUPS=${CI_PROJECT_NAMESPACE/${CI_PROJECT_ROOT_NAMESPACE}/}
    - tmpscanjson=$(mktemp) && envsubst < .siderscan.json > "$tmpscanjson" && mv "$tmpscanjson" .siderscan.json
    - 'wget --header "JOB-TOKEN: ${CI_JOB_TOKEN}" "${CI_SERVER_URL}/api/v4/projects/${CI_PROJECT_ID}/jobs/artifacts/${CI_COMMIT_REF_NAME}/raw/output.radump?job=scan-job" -O output.radump || true'
    - sider run ${CI_PROJECT_DIR}
  artifacts:
    paths:
      - output.radump
      - scan_result/*
    expire_in: 30 days # 解析結果を保存したい日数を指定

上記のコードをファイルとしてダウンロードするにはこちらをクリックください
注意: .gitlab-ci.yml ファイル名の先頭のドット(.) が消されてgitlab-ci.yml ファイルとしてダウンロードされてしまうので、そのままファイルをお使いの際は、ファイル名の先頭にドット(.)を追加下さい。

GitLab には、Free, Premium, Ultimate の3つのTier が存在します。お使いのGitLab のグレードがFree Tier (無償版) の場合、追加の作業としてProject Access Token を別途作成し、上記コードの50行目を変更する必要があります。GitLab CI/CD における高度な設定 ドキュメントを参照下さい。

Step 2: 設定ファイルを解析対象リポジトリのルートディレクトリに配置

Step 1で作成した.gitlab-ci.yml ファイルを解析対象リポジトリのルートディレクトリに配置して下さい。もしすでにリポジトリに.gitlab-ci.yml が存在している場合は、作成した内容を既存のファイルに追記して下さい。

設定ファイルが配置されると、すぐに GitLab CI が動き始め、Sider Scan による解析も始まります。指定したメールアドレスに最初の解析結果の通知が届けば設定完了です。

その他の高度な設定

GitLab へのSider Scan の導入において、より高度な設定内容に関しては GitLab CI/CD における高度な設定 ドキュメントを参照下さい。また、Sider Scan 自体の コマンドオプションや設定ファイルの詳細に関しては Sider Scan の高度な設定ドキュメントを参照下さい。