Status: SUCCEEDED
Triggered by: -
Duration: 26 minutes
Actions:

Definition (rev 190085d8c5d5cf9dec2d4f2d9a26a514042665b5)

buildbucket: <
  server: "cr-buildbucket.appspot.com"
  bucket: "luci.dart.ci.sandbox"
  builder: "gclient"
>

Incoming triggers

Incoming properties

{
  "branch": "refs/heads/master",
  "repository": "https://dart.googlesource.com/sdk",
  "revision": "adb63719f98c188a80fdefc4aa9b22b2254441c9"
}

Incoming tags

  • buildset:commit/git/adb63719f98c188a80fdefc4aa9b22b2254441c9
  • buildset:commit/gitiles/dart.googlesource.com/sdk/+/adb63719f98c188a80fdefc4aa9b22b2254441c9
  • gitiles_ref:refs/heads/master

Debug log (UTC)

[21:47:06.399] New invocation is queued and will start shortly
[21:47:07.535] Starting the invocation (attempt 1)
[21:47:07.595] Preparing PubSub topic for "https://cr-buildbucket.appspot.com"
[21:47:07.595] PubSub topic is "projects/luci-scheduler/topics/scheduler.buildbucket.cr-buildbucket~appspot.gserviceaccount.com"
[21:47:07.595] Buildbucket request:
{
  "bucket": "luci.dart.ci.sandbox",
  "client_operation_id": "9035119901620468576",
  "parameters_json": "{\"builder_name\":\"gclient\",\"properties\":{\"$recipe_engine/scheduler\":{\"hostname\":\"luci-scheduler.appspot.com\",\"triggers\":[{\"gitiles\":{\"ref\":\"refs/heads/master\",\"repo\":\"https://dart.googlesource.com/sdk\",\"revision\":\"adb63719f98c188a80fdefc4aa9b22b2254441c9\"},\"id\":\"https://dart.googlesource.com/sdk/+/refs/heads/master@adb63719f98c188a80fdefc4aa9b22b2254441c9\",\"title\":\"adb63719f98c188a80fdefc4aa9b22b2254441c9\",\"url\":\"https://dart.googlesource.com/sdk/+/adb63719f98c188a80fdefc4aa9b22b2254441c9\"}]},\"branch\":\"refs/heads/master\",\"repository\":\"https://dart.googlesource.com/sdk\",\"revision\":\"adb63719f98c188a80fdefc4aa9b22b2254441c9\"}}",
  "pubsub_callback": {
    "auth_token": "...",
    "topic": "projects/luci-scheduler/topics/scheduler.buildbucket.cr-buildbucket~appspot.gserviceaccount.com"
  },
  "tags": [
    "builder:gclient",
    "scheduler_invocation_id:9035119901620468576",
    "scheduler_job_id:dart/gclient",
    "user_agent:luci-scheduler",
    "buildset:commit/git/adb63719f98c188a80fdefc4aa9b22b2254441c9",
    "buildset:commit/gitiles/dart.googlesource.com/sdk/+/adb63719f98c188a80fdefc4aa9b22b2254441c9",
    "gitiles_ref:refs/heads/master"
  ]
}
[21:47:08.802] Buildbucket response:
{
  "build": {
    "bucket": "luci.dart.ci.sandbox",
    "canary_preference": "PROD",
    "created_by": "project:dart",
    "created_ts": "1599601628046949",
    "id": "8869689839228542672",
    "parameters_json": "{\"builder_name\": \"gclient\", \"properties\": {\"$recipe_engine/scheduler\": {\"hostname\": \"luci-scheduler.appspot.com\", \"triggers\": [{\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://dart.googlesource.com/sdk\", \"revision\": \"adb63719f98c188a80fdefc4aa9b22b2254441c9\"}, \"id\": \"https://dart.googlesource.com/sdk/+/refs/heads/master@adb63719f98c188a80fdefc4aa9b22b2254441c9\", \"title\": \"adb63719f98c188a80fdefc4aa9b22b2254441c9\", \"url\": \"https://dart.googlesource.com/sdk/+/adb63719f98c188a80fdefc4aa9b22b2254441c9\"}]}, \"branch\": \"refs/heads/master\", \"repository\": \"https://dart.googlesource.com/sdk\", \"revision\": \"adb63719f98c188a80fdefc4aa9b22b2254441c9\"}}",
    "project": "dart",
    "result_details_json": "{\"properties\": {}}",
    "service_account": "dart-luci-try-builder@dart-ci.iam.gserviceaccount.com",
    "status": "SCHEDULED",
    "status_changed_ts": "1599601628589030",
    "tags": [
      "build_address:luci.dart.ci.sandbox/gclient/9827",
      "builder:gclient",
      "buildset:commit/git/adb63719f98c188a80fdefc4aa9b22b2254441c9",
      "buildset:commit/gitiles/dart.googlesource.com/sdk/+/adb63719f98c188a80fdefc4aa9b22b2254441c9",
      "gitiles_ref:refs/heads/master",
      "scheduler_invocation_id:9035119901620468576",
      "scheduler_job_id:dart/gclient",
      "swarming_hostname:chromium-swarm.appspot.com",
      "swarming_tag:log_location:logdog://logs.chromium.org/dart/buildbucket/cr-buildbucket.appspot.com/8869689839228542672/+/annotations",
      "swarming_tag:luci_project:dart",
      "swarming_tag:recipe_name:dart/gclient",
      "swarming_tag:recipe_package:dart/recipe_bundles/dart.googlesource.com/recipes",
      "swarming_task_id:",
      "user_agent:luci-scheduler"
    ],
    "updated_ts": "1599601628589186",
    "url": "https://ci.chromium.org/b/8869689839228542672",
    "utcnow_ts": "1599601628788318"
  }
}
[21:47:08.802] Task URL: https://ci.chromium.org/b/8869689839228542672
[21:47:08.802] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:2:0) after 1m0s
[21:48:08.888] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:2:0)
[21:48:08.888] Timer tick, asking Buildbucket for the build status
[21:48:09.049] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:48:09.049] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:3:0) after 1m0s
[21:49:09.077] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:3:0)
[21:49:09.077] Timer tick, asking Buildbucket for the build status
[21:49:09.195] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:49:09.195] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:4:0) after 1m0s
[21:50:09.255] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:4:0)
[21:50:09.255] Timer tick, asking Buildbucket for the build status
[21:50:09.331] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:50:09.331] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:5:0) after 1m0s
[21:51:09.607] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:5:0)
[21:51:09.607] Timer tick, asking Buildbucket for the build status
[21:51:09.737] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:51:09.737] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:6:0) after 1m0s
[21:52:09.830] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:6:0)
[21:52:09.830] Timer tick, asking Buildbucket for the build status
[21:52:14.634] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:52:14.634] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:7:0) after 1m0s
[21:53:14.725] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:7:0)
[21:53:14.725] Timer tick, asking Buildbucket for the build status
[21:53:14.818] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:53:14.818] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:8:0) after 1m0s
[21:54:14.925] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:8:0)
[21:54:14.925] Timer tick, asking Buildbucket for the build status
[21:54:15.172] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:54:15.172] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:9:0) after 1m0s
[21:55:15.193] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:9:0)
[21:55:15.194] Timer tick, asking Buildbucket for the build status
[21:55:15.427] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:55:15.427] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:10:0) after 1m0s
[21:56:15.463] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:10:0)
[21:56:15.463] Timer tick, asking Buildbucket for the build status
[21:56:15.628] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:56:15.628] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:11:0) after 1m0s
[21:57:15.648] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:11:0)
[21:57:15.648] Timer tick, asking Buildbucket for the build status
[21:57:15.884] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:57:15.884] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:12:0) after 1m0s
[21:58:15.911] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:12:0)
[21:58:15.911] Timer tick, asking Buildbucket for the build status
[21:58:15.987] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:58:15.987] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:13:0) after 1m0s
[21:59:16.045] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:13:0)
[21:59:16.045] Timer tick, asking Buildbucket for the build status
[21:59:16.306] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:59:16.306] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:14:0) after 1m0s
[22:00:16.357] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:14:0)
[22:00:16.357] Timer tick, asking Buildbucket for the build status
[22:00:16.495] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[22:00:16.495] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:15:0) after 1m0s
[22:01:16.540] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:15:0)
[22:01:16.540] Timer tick, asking Buildbucket for the build status
[22:01:16.705] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[22:01:16.705] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:16:0) after 1m0s
[22:02:16.739] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:16:0)
[22:02:16.739] Timer tick, asking Buildbucket for the build status
[22:02:17.061] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[22:02:17.061] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:17:0) after 1m0s
[22:03:17.238] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:17:0)
[22:03:17.238] Timer tick, asking Buildbucket for the build status
[22:03:17.344] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[22:03:17.348] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:18:0) after 1m0s
[22:04:17.450] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:18:0)
[22:04:17.450] Timer tick, asking Buildbucket for the build status
[22:04:17.536] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[22:04:17.536] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:19:0) after 1m0s
[22:05:17.694] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:19:0)
[22:05:17.694] Timer tick, asking Buildbucket for the build status
[22:05:17.835] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[22:05:17.836] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:20:0) after 1m0s
[22:06:17.891] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:20:0)
[22:06:17.891] Timer tick, asking Buildbucket for the build status
[22:06:18.191] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[22:06:18.191] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:21:0) after 1m0s
[22:07:18.215] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:21:0)
[22:07:18.215] Timer tick, asking Buildbucket for the build status
[22:07:18.625] Build 8869689839228542672: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[22:07:18.625] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:22:0) after 1m0s
[22:08:02.942] Received PubSub notification, asking Buildbucket for the build status
[22:08:03.255] Build 8869689839228542672: status "STARTED", result "", failure_reason "", cancelation_reason ""
[22:08:18.621] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:22:0)
[22:08:18.621] Timer tick, asking Buildbucket for the build status
[22:08:19.097] Build 8869689839228542672: status "STARTED", result "", failure_reason "", cancelation_reason ""
[22:08:19.097] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:24:0) after 1m0s
[22:09:19.173] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:24:0)
[22:09:19.173] Timer tick, asking Buildbucket for the build status
[22:09:19.361] Build 8869689839228542672: status "STARTED", result "", failure_reason "", cancelation_reason ""
[22:09:19.361] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:25:0) after 1m0s
[22:10:19.383] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:25:0)
[22:10:19.383] Timer tick, asking Buildbucket for the build status
[22:10:19.701] Build 8869689839228542672: status "STARTED", result "", failure_reason "", cancelation_reason ""
[22:10:19.701] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:26:0) after 1m0s
[22:11:19.803] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:26:0)
[22:11:19.803] Timer tick, asking Buildbucket for the build status
[22:11:20.072] Build 8869689839228542672: status "STARTED", result "", failure_reason "", cancelation_reason ""
[22:11:20.072] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:27:0) after 1m0s
[22:12:20.117] Handling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:27:0)
[22:12:20.117] Timer tick, asking Buildbucket for the build status
[22:12:20.526] Build 8869689839228542672: status "STARTED", result "", failure_reason "", cancelation_reason ""
[22:12:20.526] Scheduling timer "check-buildbucket-build-status" (dart/gclient:9035119901620468576:28:0) after 1m0s
[22:13:08.761] Received PubSub notification, asking Buildbucket for the build status
[22:13:09.194] Build 8869689839228542672: status "COMPLETED", result "SUCCESS", failure_reason "", cancelation_reason ""
[22:13:09.194] Buildbucket build:
{
  "build": {
    "bucket": "luci.dart.ci.sandbox",
    "canary_preference": "PROD",
    "completed_ts": "1599603187696903",
    "created_by": "project:dart",
    "created_ts": "1599601628046949",
    "id": "8869689839228542672",
    "parameters_json": "{\"builder_name\": \"gclient\", \"properties\": {\"$recipe_engine/scheduler\": {\"hostname\": \"luci-scheduler.appspot.com\", \"triggers\": [{\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://dart.googlesource.com/sdk\", \"revision\": \"adb63719f98c188a80fdefc4aa9b22b2254441c9\"}, \"id\": \"https://dart.googlesource.com/sdk/+/refs/heads/master@adb63719f98c188a80fdefc4aa9b22b2254441c9\", \"title\": \"adb63719f98c188a80fdefc4aa9b22b2254441c9\", \"url\": \"https://dart.googlesource.com/sdk/+/adb63719f98c188a80fdefc4aa9b22b2254441c9\"}]}, \"branch\": \"refs/heads/master\", \"repository\": \"https://dart.googlesource.com/sdk\", \"revision\": \"adb63719f98c188a80fdefc4aa9b22b2254441c9\"}}",
    "project": "dart",
    "result": "SUCCESS",
    "result_details_json": "{\"properties\": {\"$build/goma\": {\"enable_ats\": true, \"server_host\": \"goma.chromium.org\", \"use_luci_auth\": true}, \"$recipe_engine/isolated\": {\"server\": \"https://isolateserver.appspot.com\"}, \"$recipe_engine/path\": {\"cache_dir\": \"/b/s/w/ir/cache\", \"temp_dir\": \"/b/s/w/ir/tmp/rt\"}, \"$recipe_engine/runtime\": {\"is_experimental\": false, \"is_luci\": true}, \"$recipe_engine/scheduler\": {\"hostname\": \"luci-scheduler.appspot.com\", \"triggers\": [{\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://dart.googlesource.com/sdk\", \"revision\": \"adb63719f98c188a80fdefc4aa9b22b2254441c9\"}, \"id\": \"https://dart.googlesource.com/sdk/+/refs/heads/master@adb63719f98c188a80fdefc4aa9b22b2254441c9\", \"title\": \"adb63719f98c188a80fdefc4aa9b22b2254441c9\", \"url\": \"https://dart.googlesource.com/sdk/+/adb63719f98c188a80fdefc4aa9b22b2254441c9\"}]}, \"$recipe_engine/swarming\": {\"server\": \"https://chromium-swarm.appspot.com\"}, \"bot_id\": \"luci-dart-try-xenial-24-5bup\", \"branch\": \"refs/heads/master\", \"buildername\": \"gclient\", \"buildnumber\": 9827, \"clobber\": \"true\", \"path_config\": \"generic\", \"recipe\": \"dart/gclient\", \"repository\": \"https://dart.googlesource.com/sdk\", \"revision\": \"adb63719f98c188a80fdefc4aa9b22b2254441c9\"}, \"swarming\": {\"bot_dimensions\": {\"caches\": [\"browsers\", \"builder_02799a17539ff755e19f9f880c89a4236df8675fe9acf5c4ef4a1989e5a03276_v2\", \"builder_1b6044665c11ac21b76b5174316f99e877d7b36fecbed431d80353fc00e6db12_v2\", \"builder_3ead71b66308d297d600f44ed5bf7fa546af97deb27237d95d78d9dd30e2fb35_v2\", \"builder_4810d5097d2728a8fddeb9ae4580f95e504dbd24f74cb147a60dfe9774ce59d5_v2\", \"builder_637c48e9ccfce6682d28006dce0cab3f8e6666dce8730503337d9895cc00d8fd_v2\", \"builder_6cbd46bb7b85f2b5182064189e0144fd34df9d1a71ef5b4bc3ca003434985b44_v2\", \"builder_982c2e1e36a73b1e748be3df857bce3b90457bc2857fef9f89ff250bbd7f7e33_v2\", \"builder_a5c7d2c90596f39b3a0e19b8b668a1562b3a839b4cdf9bf8660761d66b060b81_v2\", \"builder_b6d607e70bef8705fab12252876356ad958454ddf5c764406542df6b6c6abfa8_v2\", \"builder_b86275ddf762361824bfc56cad1157933a73a38c01cde840f74c93e8651eb66a_v2\", \"builder_bcb474518f67c7cb70ce8bf9b0864cf257bd65b5ea90544e9642b63757276434_v2\", \"builder_be27d8b138dfc387884512fad7facac1b0f67a4766cc008796394f7e6facbc61_v2\", \"builder_d9afc272cea55efebacbb1b0e6d30bdc11e05602c27eb52ed561a0c06ddbb70b_v2\", \"builder_fce62558b7e1d6cb7b1df352b81125a8f2541bc160cdf615c88e1b641acc82d0_v2\", \"git\", \"goma_v2\", \"vpython\"], \"cores\": [\"8\"], \"cpu\": [\"x86\", \"x86-64\", \"x86-64-Broadwell_GCE\", \"x86-64-avx2\"], \"gce\": [\"1\"], \"gcp\": [\"dart-ci\"], \"gpu\": [\"none\"], \"host_class\": [\"default\"], \"id\": [\"luci-dart-try-xenial-24-5bup\"], \"image\": [\"dart-xenial-20052400-59eb8623c93\"], \"inside_docker\": [\"0\"], \"kvm\": [\"1\"], \"locale\": [\"en_US.UTF-8\"], \"machine_type\": [\"n1-standard-8\"], \"os\": [\"Linux\", \"Ubuntu\", \"Ubuntu-16\", \"Ubuntu-16.04\", \"Ubuntu-16.04.6\"], \"pool\": [\"dart.tests\", \"luci.dart.try\"], \"python\": [\"2.7.12\"], \"server_version\": [\"5513-ee65082\"], \"ssd\": [\"0\"], \"zone\": [\"us\", \"us-central\", \"us-central1\", \"us-central1-b\"]}}}",
    "service_account": "dart-luci-try-builder@dart-ci.iam.gserviceaccount.com",
    "started_ts": "1599602881417057",
    "status": "COMPLETED",
    "status_changed_ts": "1599603188453891",
    "tags": [
      "build_address:luci.dart.ci.sandbox/gclient/9827",
      "builder:gclient",
      "buildset:commit/git/adb63719f98c188a80fdefc4aa9b22b2254441c9",
      "buildset:commit/gitiles/dart.googlesource.com/sdk/+/adb63719f98c188a80fdefc4aa9b22b2254441c9",
      "gitiles_ref:refs/heads/master",
      "scheduler_invocation_id:9035119901620468576",
      "scheduler_job_id:dart/gclient",
      "swarming_hostname:chromium-swarm.appspot.com",
      "swarming_tag:log_location:logdog://logs.chromium.org/dart/buildbucket/cr-buildbucket.appspot.com/8869689839228542672/+/annotations",
      "swarming_tag:luci_project:dart",
      "swarming_tag:os:Linux",
      "swarming_tag:recipe_name:dart/gclient",
      "swarming_tag:recipe_package:dart/recipe_bundles/dart.googlesource.com/recipes",
      "swarming_task_id:4e88815fd1997910",
      "user_agent:luci-scheduler"
    ],
    "updated_ts": "1599603188465838",
    "url": "https://ci.chromium.org/b/8869689839228542672",
    "utcnow_ts": "1599603189179598"
  }
}
[22:13:09.194] Invocation finished in 26m2.81300985s with status SUCCEEDED