📝

[小ネタ] CodeBuild のビルド中にビルドプロジェクトを自己削除できるか

に公開

結論

できました。
また、ビルドプロセスは最後まで実行されることも確認できました。

検証

以下の設定で検証しました。

  • CodeBuild の IAM ロール: AdministratorAccess 権限を付与
  • ソースプロバイダ: なし
  • Buildspec: ビルドコマンドの挿入で以下のコマンドを定義
version: 0.2

phases:
  build:
    commands:
      - echo "ビルドを開始します"
      - echo "10秒待機します..."
      - sleep 10
      - echo "自己削除を実行します"
      - aws codebuild delete-project --name SelfDeleteTest
      - echo "削除コマンドを実行しました"
      - sleep 30

上記以外はデフォルト設定です。
この状態でビルドを実行したところ、ビルドログではプロジェクトの削除後もビルドが続いていました。

2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:26.958958 Running on CodeBuild On-demand
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:26.958970 Waiting for agent ping
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:27.260624 Waiting for DOWNLOAD_SOURCE
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:28.157230 Phase is DOWNLOAD_SOURCE
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:28.158192 CODEBUILD_SRC_DIR=/codebuild/output/src1944009565/src
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:28.158305 YAML location is /codebuild/readonly/buildspec.yml
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:28.161212 Processing environment variables
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:28.614126 No runtime version selected in buildspec.
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:28.637667 Moving to directory /codebuild/output/src1944009565/src
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:28.637692 Cache is not defined in the buildspec
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:28.741689 Skip cache due to: no paths specified to be cached
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:28.741915 Registering with agent
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:28.857503 Phases found in YAML: 1
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:28.857522 BUILD: 7 commands
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:28.857796 Phase complete: DOWNLOAD_SOURCE State: SUCCEEDED
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:28.857809 Phase context status code: Message:
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:29.120313 Entering phase INSTALL
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:29.244480 Phase complete: INSTALL State: SUCCEEDED
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:29.244499 Phase context status code: Message:
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:29.282708 Entering phase PRE_BUILD
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:29.285180 Phase complete: PRE_BUILD State: SUCCEEDED
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:29.285192 Phase context status code: Message:
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:29.325498 Entering phase BUILD
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:29.477432 Running command echo "ビルドを開始します"
2025-10-08T09:42:32.417+09:00
ビルドを開始します
2025-10-08T09:42:32.417+09:00
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:29.485559 Running command echo "10秒待機します..."
2025-10-08T09:42:32.417+09:00
10秒待機します...
2025-10-08T09:42:32.417+09:00
2025-10-08T09:42:32.417+09:00
[Container] 2025/10/08 00:42:29.492947 Running command sleep 10
2025-10-08T09:42:40.477+09:00
2025-10-08T09:42:40.477+09:00
[Container] 2025/10/08 00:42:39.501666 Running command echo "自己削除を実行します"
2025-10-08T09:42:40.477+09:00
自己削除を実行します
2025-10-08T09:42:40.477+09:00
2025-10-08T09:42:40.477+09:00
[Container] 2025/10/08 00:42:39.509410 Running command aws codebuild delete-project --name SelfDeleteTest
2025-10-08T09:42:50.529+09:00
2025-10-08T09:42:50.529+09:00
[Container] 2025/10/08 00:42:49.629780 Running command echo "削除コマンドを実行しました"
2025-10-08T09:42:50.529+09:00
削除コマンドを実行しました
2025-10-08T09:42:50.529+09:00
2025-10-08T09:42:50.529+09:00
[Container] 2025/10/08 00:42:49.637475 Running command sleep 30
2025-10-08T09:43:20.031+09:00
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.646152 Phase complete: BUILD State: SUCCEEDED
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.646175 Phase context status code: Message:
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.684377 Entering phase POST_BUILD
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.686851 Phase complete: POST_BUILD State: SUCCEEDED
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.686867 Phase context status code: Message:
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.738745 Set report auto-discover timeout to 5 seconds
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.738794 Expanding base directory path: .
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.741898 Assembling file list
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.741910 Expanding .
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.745121 Expanding file paths for base directory .
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.745136 Assembling file list
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.745140 Expanding **/*
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.748477 No matching auto-discover report paths found
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.748495 Report auto-discover file discovery took 0.009750 seconds
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.748505 Phase complete: UPLOAD_ARTIFACTS State: SUCCEEDED
2025-10-08T09:43:20.031+09:00
[Container] 2025/10/08 00:43:19.748514 Phase context status code: Message:

delete-project コマンド実行後に 30 秒間待機しているにもかかわらずビルドプロセスは最後まで実行されていました。

まとめ

今回は CodeBuild のビルド中にビルドプロジェクトを自己削除できるかという内容を紹介しました。
どなたかの参考になれば幸いです。

Discussion