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

Definition (rev 840fc1d7a17d9f663eedc70c67b8fdf31f8eb475)

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

Incoming triggers

Incoming properties

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

Incoming tags

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

Debug log (UTC)

[21:23:54.256] New invocation is queued and will start shortly
[21:23:55.342] Starting the invocation (attempt 1)
[21:23:55.390] Preparing PubSub topic for "https://cr-buildbucket.appspot.com"
[21:23:55.390] PubSub topic is "projects/luci-scheduler/topics/scheduler.buildbucket.cr-buildbucket~appspot.gserviceaccount.com"
[21:23:55.390] Buildbucket request:
{
  "bucket": "luci.dart.ci.sandbox",
  "client_operation_id": "9065380748164473952",
  "parameters_json": "{\"builder_name\":\"flutter-analyze\",\"properties\":{\"$recipe_engine/scheduler\":{\"hostname\":\"luci-scheduler.appspot.com\",\"triggers\":[{\"gitiles\":{\"ref\":\"refs/heads/master\",\"repo\":\"https://dart.googlesource.com/sdk\",\"revision\":\"b8943f70562a3a44bb116a6afd6bb78c06a732ae\"},\"id\":\"https://dart.googlesource.com/sdk/+/refs/heads/master@b8943f70562a3a44bb116a6afd6bb78c06a732ae\",\"title\":\"b8943f70562a3a44bb116a6afd6bb78c06a732ae\",\"url\":\"https://dart.googlesource.com/sdk/+/b8943f70562a3a44bb116a6afd6bb78c06a732ae\"},{\"gitiles\":{\"ref\":\"refs/heads/master\",\"repo\":\"https://dart.googlesource.com/sdk\",\"revision\":\"0dd6ea13540588a0c8becc7db58019f0fb00c254\"},\"id\":\"https://dart.googlesource.com/sdk/+/refs/heads/master@0dd6ea13540588a0c8becc7db58019f0fb00c254\",\"title\":\"0dd6ea13540588a0c8becc7db58019f0fb00c254\",\"url\":\"https://dart.googlesource.com/sdk/+/0dd6ea13540588a0c8becc7db58019f0fb00c254\"}]},\"branch\":\"refs/heads/master\",\"repository\":\"https://dart.googlesource.com/sdk\",\"revision\":\"0dd6ea13540588a0c8becc7db58019f0fb00c254\"}}",
  "pubsub_callback": {
    "auth_token": "...",
    "topic": "projects/luci-scheduler/topics/scheduler.buildbucket.cr-buildbucket~appspot.gserviceaccount.com"
  },
  "tags": [
    "builder:flutter-analyze",
    "scheduler_invocation_id:9065380748164473952",
    "scheduler_job_id:dart/flutter-analyze",
    "user_agent:luci-scheduler",
    "buildset:commit/git/0dd6ea13540588a0c8becc7db58019f0fb00c254",
    "buildset:commit/gitiles/dart.googlesource.com/sdk/+/0dd6ea13540588a0c8becc7db58019f0fb00c254",
    "gitiles_ref:refs/heads/master"
  ]
}
[21:23:57.025] Buildbucket response:
{
  "build": {
    "bucket": "luci.dart.ci.sandbox",
    "canary_preference": "PROD",
    "created_by": "project:dart",
    "created_ts": "1570742635743934",
    "id": "8899950685941581424",
    "parameters_json": "{\"builder_name\": \"flutter-analyze\", \"properties\": {\"$recipe_engine/scheduler\": {\"hostname\": \"luci-scheduler.appspot.com\", \"triggers\": [{\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://dart.googlesource.com/sdk\", \"revision\": \"b8943f70562a3a44bb116a6afd6bb78c06a732ae\"}, \"id\": \"https://dart.googlesource.com/sdk/+/refs/heads/master@b8943f70562a3a44bb116a6afd6bb78c06a732ae\", \"title\": \"b8943f70562a3a44bb116a6afd6bb78c06a732ae\", \"url\": \"https://dart.googlesource.com/sdk/+/b8943f70562a3a44bb116a6afd6bb78c06a732ae\"}, {\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://dart.googlesource.com/sdk\", \"revision\": \"0dd6ea13540588a0c8becc7db58019f0fb00c254\"}, \"id\": \"https://dart.googlesource.com/sdk/+/refs/heads/master@0dd6ea13540588a0c8becc7db58019f0fb00c254\", \"title\": \"0dd6ea13540588a0c8becc7db58019f0fb00c254\", \"url\": \"https://dart.googlesource.com/sdk/+/0dd6ea13540588a0c8becc7db58019f0fb00c254\"}]}, \"branch\": \"refs/heads/master\", \"repository\": \"https://dart.googlesource.com/sdk\", \"revision\": \"0dd6ea13540588a0c8becc7db58019f0fb00c254\"}}",
    "project": "dart",
    "result_details_json": "{\"properties\": {}}",
    "service_account": "dart-luci-try-builder@dart-ci.iam.gserviceaccount.com",
    "status": "SCHEDULED",
    "status_changed_ts": "1570742636789255",
    "tags": [
      "build_address:luci.dart.ci.sandbox/flutter-analyze/4481",
      "builder:flutter-analyze",
      "buildset:commit/git/0dd6ea13540588a0c8becc7db58019f0fb00c254",
      "buildset:commit/gitiles/dart.googlesource.com/sdk/+/0dd6ea13540588a0c8becc7db58019f0fb00c254",
      "gitiles_ref:refs/heads/master",
      "scheduler_invocation_id:9065380748164473952",
      "scheduler_job_id:dart/flutter-analyze",
      "swarming_hostname:chromium-swarm.appspot.com",
      "swarming_tag:log_location:logdog://logs.chromium.org/dart/buildbucket/cr-buildbucket.appspot.com/8899950685941581424/+/annotations",
      "swarming_tag:luci_project:dart",
      "swarming_tag:recipe_name:dart/neo",
      "swarming_tag:recipe_package:infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
      "swarming_task_id:",
      "user_agent:luci-scheduler"
    ],
    "updated_ts": "1570742636789426",
    "url": "https://ci.chromium.org/b/8899950685941581424",
    "utcnow_ts": "1570742637010325"
  }
}
[21:23:57.025] Task URL: https://ci.chromium.org/b/8899950685941581424
[21:23:57.025] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:2:0) after 1m0s
[21:24:57.101] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:2:0)
[21:24:57.101] Timer tick, asking Buildbucket for the build status
[21:24:57.810] Build 8899950685941581424: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:24:57.810] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:3:0) after 1m0s
[21:25:57.864] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:3:0)
[21:25:57.864] Timer tick, asking Buildbucket for the build status
[21:25:58.561] Build 8899950685941581424: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:25:58.561] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:4:0) after 1m0s
[21:26:58.593] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:4:0)
[21:26:58.593] Timer tick, asking Buildbucket for the build status
[21:27:00.337] Build 8899950685941581424: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:27:00.337] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:5:0) after 1m0s
[21:28:00.433] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:5:0)
[21:28:00.433] Timer tick, asking Buildbucket for the build status
[21:28:00.586] Build 8899950685941581424: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:28:00.586] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:6:0) after 1m0s
[21:29:00.646] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:6:0)
[21:29:00.646] Timer tick, asking Buildbucket for the build status
[21:29:01.210] Build 8899950685941581424: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:29:01.210] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:7:0) after 1m0s
[21:30:01.297] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:7:0)
[21:30:01.297] Timer tick, asking Buildbucket for the build status
[21:30:01.499] Build 8899950685941581424: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[21:30:01.499] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:8:0) after 1m0s
[21:30:49.109] Received PubSub notification, asking Buildbucket for the build status
[21:30:50.817] Build 8899950685941581424: status "STARTED", result "", failure_reason "", cancelation_reason ""
[21:31:01.529] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:8:0)
[21:31:01.529] Timer tick, asking Buildbucket for the build status
[21:31:01.941] Build 8899950685941581424: status "STARTED", result "", failure_reason "", cancelation_reason ""
[21:31:01.941] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:10:0) after 1m0s
[21:32:01.932] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:10:0)
[21:32:01.932] Timer tick, asking Buildbucket for the build status
[21:32:02.108] Build 8899950685941581424: status "STARTED", result "", failure_reason "", cancelation_reason ""
[21:32:02.108] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:11:0) after 1m0s
[21:33:02.127] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:11:0)
[21:33:02.127] Timer tick, asking Buildbucket for the build status
[21:33:06.711] Build 8899950685941581424: status "STARTED", result "", failure_reason "", cancelation_reason ""
[21:33:06.711] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:12:0) after 1m0s
[21:34:06.862] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:12:0)
[21:34:06.862] Timer tick, asking Buildbucket for the build status
[21:34:07.743] Build 8899950685941581424: status "STARTED", result "", failure_reason "", cancelation_reason ""
[21:34:07.743] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:13:0) after 1m0s
[21:35:07.861] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:13:0)
[21:35:07.861] Timer tick, asking Buildbucket for the build status
[21:35:08.006] Build 8899950685941581424: status "STARTED", result "", failure_reason "", cancelation_reason ""
[21:35:08.006] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:14:0) after 1m0s
[21:36:08.182] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:14:0)
[21:36:08.182] Timer tick, asking Buildbucket for the build status
[21:36:08.457] Build 8899950685941581424: status "STARTED", result "", failure_reason "", cancelation_reason ""
[21:36:08.457] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:15:0) after 1m0s
[21:37:08.508] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:15:0)
[21:37:08.508] Timer tick, asking Buildbucket for the build status
[21:37:08.850] Build 8899950685941581424: status "STARTED", result "", failure_reason "", cancelation_reason ""
[21:37:08.850] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:16:0) after 1m0s
[21:38:09.020] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:16:0)
[21:38:09.020] Timer tick, asking Buildbucket for the build status
[21:38:09.162] Build 8899950685941581424: status "STARTED", result "", failure_reason "", cancelation_reason ""
[21:38:09.162] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:17:0) after 1m0s
[21:39:09.351] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:17:0)
[21:39:09.351] Timer tick, asking Buildbucket for the build status
[21:39:09.503] Build 8899950685941581424: status "STARTED", result "", failure_reason "", cancelation_reason ""
[21:39:09.503] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:18:0) after 1m0s
[21:40:09.535] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:18:0)
[21:40:09.535] Timer tick, asking Buildbucket for the build status
[21:40:09.746] Build 8899950685941581424: status "STARTED", result "", failure_reason "", cancelation_reason ""
[21:40:09.746] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:19:0) after 1m0s
[21:41:09.799] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:19:0)
[21:41:09.799] Timer tick, asking Buildbucket for the build status
[21:41:10.685] Build 8899950685941581424: status "STARTED", result "", failure_reason "", cancelation_reason ""
[21:41:10.685] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:20:0) after 1m0s
[21:42:10.766] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:20:0)
[21:42:10.766] Timer tick, asking Buildbucket for the build status
[21:42:10.856] Build 8899950685941581424: status "STARTED", result "", failure_reason "", cancelation_reason ""
[21:42:10.856] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:21:0) after 1m0s
[21:43:10.971] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:21:0)
[21:43:10.971] Timer tick, asking Buildbucket for the build status
[21:43:11.356] Build 8899950685941581424: status "STARTED", result "", failure_reason "", cancelation_reason ""
[21:43:11.356] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:22:0) after 1m0s
[21:44:11.514] Handling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:22:0)
[21:44:11.514] Timer tick, asking Buildbucket for the build status
[21:44:11.705] Build 8899950685941581424: status "STARTED", result "", failure_reason "", cancelation_reason ""
[21:44:11.705] Scheduling timer "check-buildbucket-build-status" (dart/flutter-analyze:9065380748164473952:23:0) after 1m0s
[21:44:26.889] Received PubSub notification, asking Buildbucket for the build status
[21:44:27.241] Build 8899950685941581424: status "COMPLETED", result "SUCCESS", failure_reason "", cancelation_reason ""
[21:44:27.241] Buildbucket build:
{
  "build": {
    "bucket": "luci.dart.ci.sandbox",
    "canary_preference": "PROD",
    "completed_ts": "1570743866045371",
    "created_by": "project:dart",
    "created_ts": "1570742635743934",
    "id": "8899950685941581424",
    "parameters_json": "{\"builder_name\": \"flutter-analyze\", \"properties\": {\"$recipe_engine/scheduler\": {\"hostname\": \"luci-scheduler.appspot.com\", \"triggers\": [{\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://dart.googlesource.com/sdk\", \"revision\": \"b8943f70562a3a44bb116a6afd6bb78c06a732ae\"}, \"id\": \"https://dart.googlesource.com/sdk/+/refs/heads/master@b8943f70562a3a44bb116a6afd6bb78c06a732ae\", \"title\": \"b8943f70562a3a44bb116a6afd6bb78c06a732ae\", \"url\": \"https://dart.googlesource.com/sdk/+/b8943f70562a3a44bb116a6afd6bb78c06a732ae\"}, {\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://dart.googlesource.com/sdk\", \"revision\": \"0dd6ea13540588a0c8becc7db58019f0fb00c254\"}, \"id\": \"https://dart.googlesource.com/sdk/+/refs/heads/master@0dd6ea13540588a0c8becc7db58019f0fb00c254\", \"title\": \"0dd6ea13540588a0c8becc7db58019f0fb00c254\", \"url\": \"https://dart.googlesource.com/sdk/+/0dd6ea13540588a0c8becc7db58019f0fb00c254\"}]}, \"branch\": \"refs/heads/master\", \"repository\": \"https://dart.googlesource.com/sdk\", \"revision\": \"0dd6ea13540588a0c8becc7db58019f0fb00c254\"}}",
    "project": "dart",
    "result": "SUCCESS",
    "result_details_json": "{\"properties\": {\"$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\": \"b8943f70562a3a44bb116a6afd6bb78c06a732ae\"}, \"id\": \"https://dart.googlesource.com/sdk/+/refs/heads/master@b8943f70562a3a44bb116a6afd6bb78c06a732ae\", \"title\": \"b8943f70562a3a44bb116a6afd6bb78c06a732ae\", \"url\": \"https://dart.googlesource.com/sdk/+/b8943f70562a3a44bb116a6afd6bb78c06a732ae\"}, {\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://dart.googlesource.com/sdk\", \"revision\": \"0dd6ea13540588a0c8becc7db58019f0fb00c254\"}, \"id\": \"https://dart.googlesource.com/sdk/+/refs/heads/master@0dd6ea13540588a0c8becc7db58019f0fb00c254\", \"title\": \"0dd6ea13540588a0c8becc7db58019f0fb00c254\", \"url\": \"https://dart.googlesource.com/sdk/+/0dd6ea13540588a0c8becc7db58019f0fb00c254\"}]}, \"bot_id\": \"luci-dart-try-xenial-24-5107\", \"branch\": \"refs/heads/master\", \"buildername\": \"flutter-analyze\", \"buildnumber\": 4481, \"clobber\": \"true\", \"got_revision\": \"0dd6ea13540588a0c8becc7db58019f0fb00c254\", \"path_config\": \"generic\", \"recipe\": \"dart/neo\", \"repository\": \"https://dart.googlesource.com/sdk\", \"revision\": \"0dd6ea13540588a0c8becc7db58019f0fb00c254\"}, \"swarming\": {\"bot_dimensions\": {\"caches\": [\"builder_18b24cf22f24f2fcdcfd103b4c6fefbfe16c4a4fa516da42f721dfb895373dcd_v2\", \"builder_2c7d6ce28ef8579cea1301dda0f793dd7a5beb5efe16b3122cdf5ae235edacf5_v2\", \"builder_3170009eaa11bf3cb8a3725d29628023534d5d68a21a62d00f9f097997c4b90e_v2\", \"builder_3d4f0d2f99912213642a836ae9100fafdf334be97356eec3542a1d8dd9a5eac5_v2\", \"builder_635c0bb3820427a968ab7634a21d467f1fbfb282a832f78957d9cb848bd12e00_v2\", \"builder_7aaef51bac21ec83e44fc04634df913dff477d9aca94f4beb2ca5f7a2dfbeb2e_v2\", \"builder_b0f70dc86e1d0a6e3ffcc95c8ea25406997bbb2d50b410328d5542c81c91a3c4_v2\", \"builder_b6d607e70bef8705fab12252876356ad958454ddf5c764406542df6b6c6abfa8_v2\", \"builder_e1f1d36cd04fd7e3403dcadfdc2687cb256ff030c2137b3ab39a4dfaa7844b77_v2\", \"builder_e3ee2c8538bb506a0a204be44e8f0f03f96db7b7b70c008de3c4bb2bda345da9_v2\", \"builder_e5a3f2d3f0d3edd8baf540359db328fd0dba31da338f71d1c9b84818c5dafec8_v2\", \"git\", \"goma_v2\", \"swarming_module_cache_vpython\", \"vpython\"], \"cores\": [\"8\"], \"cpu\": [\"x86\", \"x86-64\", \"x86-64-Broadwell_GCE\", \"x86-64-avx2\"], \"gce\": [\"1\"], \"gpu\": [\"none\"], \"host_class\": [\"default\"], \"id\": [\"luci-dart-try-xenial-24-5107\"], \"image\": [\"chrome-xenial-19090600-ed917d8233f\"], \"inside_docker\": [\"0\"], \"kvm\": [\"1\"], \"locale\": [\"en_US.UTF-8\"], \"machine_type\": [\"n1-standard-8\"], \"os\": [\"Linux\", \"Ubuntu\", \"Ubuntu-16.04\"], \"pool\": [\"dart.tests\", \"luci.dart.try\"], \"python\": [\"2.7.12\"], \"server_version\": [\"4501-487d554\"], \"ssd\": [\"0\"], \"zone\": [\"us\", \"us-central\", \"us-central1\", \"us-central1-b\"]}}}",
    "service_account": "dart-luci-try-builder@dart-ci.iam.gserviceaccount.com",
    "started_ts": "1570743047578708",
    "status": "COMPLETED",
    "status_changed_ts": "1570743866504390",
    "tags": [
      "build_address:luci.dart.ci.sandbox/flutter-analyze/4481",
      "builder:flutter-analyze",
      "buildset:commit/git/0dd6ea13540588a0c8becc7db58019f0fb00c254",
      "buildset:commit/gitiles/dart.googlesource.com/sdk/+/0dd6ea13540588a0c8becc7db58019f0fb00c254",
      "gitiles_ref:refs/heads/master",
      "scheduler_invocation_id:9065380748164473952",
      "scheduler_job_id:dart/flutter-analyze",
      "swarming_hostname:chromium-swarm.appspot.com",
      "swarming_tag:log_location:logdog://logs.chromium.org/dart/buildbucket/cr-buildbucket.appspot.com/8899950685941581424/+/annotations",
      "swarming_tag:luci_project:dart",
      "swarming_tag:os:Linux",
      "swarming_tag:recipe_name:dart/neo",
      "swarming_tag:recipe_package:infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
      "swarming_task_id:47d0607a20b53410",
      "user_agent:luci-scheduler"
    ],
    "updated_ts": "1570743866541758",
    "url": "https://ci.chromium.org/b/8899950685941581424",
    "utcnow_ts": "1570743867228873"
  }
}
[21:44:27.241] Invocation finished in 20m33.002249753s with status SUCCEEDED