コードベースをSonarQubeに対してチェックするようにCodeBuildにどのように指示したのか疑問に思っていますか?
flask-app フォルダの下にあるsast_buildspec.yaml という名前のファイルをチェックすると、それを可能にするために書かれたCodeBuild buildspecが表示されます。
私たちの SAST CodeBuild プロジェクトはこのファイルを探し、必要なコマンドを実行します。
version: 0.1
phases:
pre_build:
commands:
- echo Installing SAST Tool...
- wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip
- unzip sonar-scanner-cli-4.6.2.2472-linux.zip
- mv sonar-scanner-4.6.2.2472-linux /opt/sonar-scanner
- chmod -R 775 /opt/sonar-scanner
build:
commands:
- echo Build started on `date`
- /opt/sonar-scanner/bin/sonar-scanner -Dsonar.sources=. -Dproject.settings=sonar-project.properties -Dsonar.host.url=$SONARQUBE_URL -Dsonar.login=$SONARQUBE_ACCESS_TOKEN > sonarqube_scanreport.json
- echo Build complete on `date`
Buildspecs は、CodeBuild がビルドを実行するために使用するビルドコマンドと関連設定の集まりです。それでは、各セクションを順を追ってみましょう。
実行時に CodeBuild の依存関係をインストールすると、非効率で時間がかかる場合があります (つまり、sonar-scanner-cli.zip は 41.1 MB です)。依存関係が既に焼き付けられていて、ビルドを高速化するための準備が整った独自のカスタム CodeBuild イメージを作成することもできます。また、デフォルトの CodeBuild イメージの機能をさらに拡張するためにこれを行うこともできます。参照:カスタムビルド環境
$ プレフィックスで示される環境変数がいくつかあります。これは、ビルドプロジェクトが実行されるたびに AWS CodeBuild によって定義および提供されます。これは、codebuild-docker-project の [ビルドの詳細] タブの環境変数 セクションで確認できます。CodeBuildの 組み込み環境変数 も使用できます (例.$AWS_DEFAULT_REGION)。