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

Definition (rev cfef7f3bb152c9e5ff46ba7d7892416fd282a011)

buildbucket: <
  server: "cr-buildbucket.appspot.com"
  bucket: "luci.webrtc.ci"
  builder: "Android32 Builder arm"
>

Incoming triggers

Incoming properties

{
  "branch": "refs/heads/master",
  "repository": "https://webrtc.googlesource.com/src",
  "revision": "96213777303749c0522d635255a224665fbad342"
}

Incoming tags

  • buildset:commit/git/96213777303749c0522d635255a224665fbad342
  • buildset:commit/gitiles/webrtc.googlesource.com/src/+/96213777303749c0522d635255a224665fbad342
  • gitiles_ref:refs/heads/master

Debug log (UTC)

[10:03:18.225] New invocation is queued and will start shortly
[10:03:19.322] Starting the invocation (attempt 1)
[10:03:19.384] Preparing PubSub topic for "https://cr-buildbucket.appspot.com"
[10:03:19.384] PubSub topic is "projects/luci-scheduler/topics/scheduler.buildbucket.cr-buildbucket~appspot.gserviceaccount.com"
[10:03:19.385] Buildbucket request:
{
  "bucket": "luci.webrtc.ci",
  "client_operation_id": "9048481935130498352",
  "parameters_json": "{\"builder_name\":\"Android32 Builder arm\",\"properties\":{\"$recipe_engine/scheduler\":{\"hostname\":\"luci-scheduler.appspot.com\",\"triggers\":[{\"gitiles\":{\"ref\":\"refs/heads/master\",\"repo\":\"https://webrtc.googlesource.com/src\",\"revision\":\"96213777303749c0522d635255a224665fbad342\"},\"id\":\"https://webrtc.googlesource.com/src/+/refs/heads/master@96213777303749c0522d635255a224665fbad342\",\"title\":\"96213777303749c0522d635255a224665fbad342\",\"url\":\"https://webrtc.googlesource.com/src/+/96213777303749c0522d635255a224665fbad342\"}]},\"branch\":\"refs/heads/master\",\"repository\":\"https://webrtc.googlesource.com/src\",\"revision\":\"96213777303749c0522d635255a224665fbad342\"}}",
  "pubsub_callback": {
    "auth_token": "...",
    "topic": "projects/luci-scheduler/topics/scheduler.buildbucket.cr-buildbucket~appspot.gserviceaccount.com"
  },
  "tags": [
    "builder:Android32 Builder arm",
    "scheduler_invocation_id:9048481935130498352",
    "scheduler_job_id:webrtc/Android32 Builder arm",
    "user_agent:luci-scheduler",
    "buildset:commit/git/96213777303749c0522d635255a224665fbad342",
    "buildset:commit/gitiles/webrtc.googlesource.com/src/+/96213777303749c0522d635255a224665fbad342",
    "gitiles_ref:refs/heads/master"
  ]
}
[10:03:20.668] Buildbucket response:
{
  "build": {
    "bucket": "luci.webrtc.ci",
    "canary_preference": "PROD",
    "created_by": "project:webrtc",
    "created_ts": "1586858599534440",
    "id": "8883051873093424608",
    "parameters_json": "{\"builder_name\": \"Android32 Builder arm\", \"properties\": {\"$recipe_engine/scheduler\": {\"hostname\": \"luci-scheduler.appspot.com\", \"triggers\": [{\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://webrtc.googlesource.com/src\", \"revision\": \"96213777303749c0522d635255a224665fbad342\"}, \"id\": \"https://webrtc.googlesource.com/src/+/refs/heads/master@96213777303749c0522d635255a224665fbad342\", \"title\": \"96213777303749c0522d635255a224665fbad342\", \"url\": \"https://webrtc.googlesource.com/src/+/96213777303749c0522d635255a224665fbad342\"}]}, \"branch\": \"refs/heads/master\", \"repository\": \"https://webrtc.googlesource.com/src\", \"revision\": \"96213777303749c0522d635255a224665fbad342\"}}",
    "project": "webrtc",
    "result_details_json": "{\"properties\": {}}",
    "service_account": "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
    "status": "SCHEDULED",
    "status_changed_ts": "1586858600363842",
    "tags": [
      "build_address:luci.webrtc.ci/Android32 Builder arm/6820",
      "builder:Android32 Builder arm",
      "buildset:commit/git/96213777303749c0522d635255a224665fbad342",
      "buildset:commit/gitiles/webrtc.googlesource.com/src/+/96213777303749c0522d635255a224665fbad342",
      "gitiles_ref:refs/heads/master",
      "scheduler_invocation_id:9048481935130498352",
      "scheduler_job_id:webrtc/Android32 Builder arm",
      "swarming_hostname:chromium-swarm.appspot.com",
      "swarming_tag:log_location:logdog://logs.chromium.org/webrtc/buildbucket/cr-buildbucket.appspot.com/8883051873093424608/+/annotations",
      "swarming_tag:luci_project:webrtc",
      "swarming_tag:recipe_name:webrtc/standalone",
      "swarming_tag:recipe_package:infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
      "swarming_task_id:",
      "user_agent:luci-scheduler"
    ],
    "updated_ts": "1586858600363984",
    "url": "https://ci.chromium.org/b/8883051873093424608",
    "utcnow_ts": "1586858600649319"
  }
}
[10:03:20.668] Task URL: https://ci.chromium.org/b/8883051873093424608
[10:03:20.668] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:2:0) after 1m0s
[10:04:20.678] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:2:0)
[10:04:20.678] Timer tick, asking Buildbucket for the build status
[10:04:21.589] Build 8883051873093424608: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[10:04:21.589] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:3:0) after 1m0s
[10:05:21.616] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:3:0)
[10:05:21.617] Timer tick, asking Buildbucket for the build status
[10:05:21.759] Build 8883051873093424608: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[10:05:21.759] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:4:0) after 1m0s
[10:06:21.809] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:4:0)
[10:06:21.809] Timer tick, asking Buildbucket for the build status
[10:06:22.281] Build 8883051873093424608: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[10:06:22.281] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:5:0) after 1m0s
[10:07:22.296] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:5:0)
[10:07:22.296] Timer tick, asking Buildbucket for the build status
[10:07:22.413] Build 8883051873093424608: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[10:07:22.413] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:6:0) after 1m0s
[10:08:22.424] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:6:0)
[10:08:22.424] Timer tick, asking Buildbucket for the build status
[10:08:22.944] Build 8883051873093424608: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[10:08:22.944] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:7:0) after 1m0s
[10:09:23.018] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:7:0)
[10:09:23.018] Timer tick, asking Buildbucket for the build status
[10:09:23.163] Build 8883051873093424608: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[10:09:23.163] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:8:0) after 1m0s
[10:09:32.323] Received PubSub notification, asking Buildbucket for the build status
[10:09:32.412] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:10:23.275] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:8:0)
[10:10:23.275] Timer tick, asking Buildbucket for the build status
[10:10:23.417] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:10:23.417] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:10:0) after 1m0s
[10:11:23.449] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:10:0)
[10:11:23.449] Timer tick, asking Buildbucket for the build status
[10:11:23.604] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:11:23.604] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:11:0) after 1m0s
[10:12:23.881] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:11:0)
[10:12:23.881] Timer tick, asking Buildbucket for the build status
[10:12:24.019] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:12:24.019] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:12:0) after 1m0s
[10:13:24.104] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:12:0)
[10:13:24.104] Timer tick, asking Buildbucket for the build status
[10:13:24.318] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:13:24.318] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:13:0) after 1m0s
[10:14:24.391] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:13:0)
[10:14:24.391] Timer tick, asking Buildbucket for the build status
[10:14:24.841] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:14:24.841] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:14:0) after 1m0s
[10:15:24.852] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:14:0)
[10:15:24.852] Timer tick, asking Buildbucket for the build status
[10:15:25.201] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:15:25.201] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:15:0) after 1m0s
[10:16:25.306] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:15:0)
[10:16:25.306] Timer tick, asking Buildbucket for the build status
[10:16:25.406] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:16:25.406] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:16:0) after 1m0s
[10:17:25.509] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:16:0)
[10:17:25.509] Timer tick, asking Buildbucket for the build status
[10:17:25.665] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:17:25.665] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:17:0) after 1m0s
[10:18:25.720] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:17:0)
[10:18:25.720] Timer tick, asking Buildbucket for the build status
[10:18:25.863] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:18:25.863] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:18:0) after 1m0s
[10:19:25.885] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:18:0)
[10:19:25.885] Timer tick, asking Buildbucket for the build status
[10:19:26.055] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:19:26.055] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:19:0) after 1m0s
[10:20:26.084] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:19:0)
[10:20:26.084] Timer tick, asking Buildbucket for the build status
[10:20:26.252] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:20:26.252] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:20:0) after 1m0s
[10:21:26.309] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:20:0)
[10:21:26.309] Timer tick, asking Buildbucket for the build status
[10:21:26.451] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:21:26.451] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:21:0) after 1m0s
[10:22:26.469] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:21:0)
[10:22:26.469] Timer tick, asking Buildbucket for the build status
[10:22:26.690] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:22:26.690] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:22:0) after 1m0s
[10:23:26.834] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:22:0)
[10:23:26.834] Timer tick, asking Buildbucket for the build status
[10:23:28.276] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:23:28.276] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:23:0) after 1m0s
[10:24:28.369] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:23:0)
[10:24:28.369] Timer tick, asking Buildbucket for the build status
[10:24:28.732] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:24:28.732] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:24:0) after 1m0s
[10:25:28.875] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:24:0)
[10:25:28.875] Timer tick, asking Buildbucket for the build status
[10:25:29.005] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:25:29.005] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:25:0) after 1m0s
[10:26:29.289] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:25:0)
[10:26:29.289] Timer tick, asking Buildbucket for the build status
[10:26:29.393] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:26:29.393] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:26:0) after 1m0s
[10:27:29.437] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:26:0)
[10:27:29.437] Timer tick, asking Buildbucket for the build status
[10:27:29.578] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:27:29.578] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:27:0) after 1m0s
[10:28:29.592] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:27:0)
[10:28:29.593] Timer tick, asking Buildbucket for the build status
[10:28:30.219] Build 8883051873093424608: status "STARTED", result "", failure_reason "", cancelation_reason ""
[10:28:30.219] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder arm:9048481935130498352:28:0) after 1m0s
[10:28:32.276] Received PubSub notification, asking Buildbucket for the build status
[10:28:32.584] Build 8883051873093424608: status "COMPLETED", result "SUCCESS", failure_reason "", cancelation_reason ""
[10:28:32.584] Buildbucket build:
{
  "build": {
    "bucket": "luci.webrtc.ci",
    "canary_preference": "PROD",
    "completed_ts": "1586860111236967",
    "created_by": "project:webrtc",
    "created_ts": "1586858599534440",
    "id": "8883051873093424608",
    "parameters_json": "{\"builder_name\": \"Android32 Builder arm\", \"properties\": {\"$recipe_engine/scheduler\": {\"hostname\": \"luci-scheduler.appspot.com\", \"triggers\": [{\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://webrtc.googlesource.com/src\", \"revision\": \"96213777303749c0522d635255a224665fbad342\"}, \"id\": \"https://webrtc.googlesource.com/src/+/refs/heads/master@96213777303749c0522d635255a224665fbad342\", \"title\": \"96213777303749c0522d635255a224665fbad342\", \"url\": \"https://webrtc.googlesource.com/src/+/96213777303749c0522d635255a224665fbad342\"}]}, \"branch\": \"refs/heads/master\", \"repository\": \"https://webrtc.googlesource.com/src\", \"revision\": \"96213777303749c0522d635255a224665fbad342\"}}",
    "project": "webrtc",
    "result": "SUCCESS",
    "result_details_json": "{\"properties\": {\"$build/goma\": {\"server_host\": \"goma.chromium.org\", \"use_luci_auth\": true}, \"$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://webrtc.googlesource.com/src\", \"revision\": \"96213777303749c0522d635255a224665fbad342\"}, \"id\": \"https://webrtc.googlesource.com/src/+/refs/heads/master@96213777303749c0522d635255a224665fbad342\", \"title\": \"96213777303749c0522d635255a224665fbad342\", \"url\": \"https://webrtc.googlesource.com/src/+/96213777303749c0522d635255a224665fbad342\"}]}, \"binary_sizes\": {\"apks/AppRTCMobile.apk\": 3093162.0, \"libjingle_peerconnection_so.so\": 4329537.0}, \"bot_id\": \"luci-webrtc-ci-xenial-2-56dr\", \"branch\": \"refs/heads/master\", \"buildername\": \"Android32 Builder arm\", \"buildnumber\": 6820, \"got_revision\": \"96213777303749c0522d635255a224665fbad342\", \"got_revision_cp\": \"refs/heads/master@{#31059}\", \"isolate_server\": \"https://isolateserver.appspot.com\", \"mastername\": \"client.webrtc\", \"path_config\": \"generic\", \"recipe\": \"webrtc/standalone\", \"repository\": \"https://webrtc.googlesource.com/src\", \"revision\": \"96213777303749c0522d635255a224665fbad342\", \"swarm_hashes\": {\"low_bandwidth_audio_perf_test\": \"9675834cc4b9487eeaa8571a00207ef46bf97e01\", \"webrtc_perf_tests\": \"ebd0b0800ee0f40e72676053f8a4bb090c5d599b\"}}, \"swarming\": {\"bot_dimensions\": {\"caches\": [\"builder_0cd671f6f485fc3166b8a13bcda7c7c85f534360e51d98839e042fae0638f2a6_v2\", \"builder_41c976223e03b38ebd482b9c303091ece2ae69993972a467d60064b876d2ebf2_v2\", \"builder_678846aac254eab443b5ec61b02b8fa10d353066310df1873b58fcea7626587d_v2\", \"builder_a9e857c6f45aeca8cc1388c7c30c9ddfcf1f8acd0c8e85588eec9b6e05b9c136_v2\", \"builder_cd4d33579b11e7a69084e8598c51fb3312c4dc0339897950696e4b0a59553346_v2\", \"builder_ee30cfe615ad79242c90cf868fc3e32771e3342e63241239745f710a5c60d840_v2\", \"builder_ee80cf8bba7c81fee9e980afd619ea0acf20624840b3b5e7cf3f2ef0d6b70dc4_v2\", \"git\", \"goma_v2\", \"vpython\"], \"cores\": [\"8\"], \"cpu\": [\"x86\", \"x86-64\", \"x86-64-Broadwell_GCE\", \"x86-64-avx2\"], \"gce\": [\"1\"], \"gcp\": [\"webrtc-ci\"], \"gpu\": [\"none\"], \"id\": [\"luci-webrtc-ci-xenial-2-56dr\"], \"image\": [\"chrome-xenial-20041000-c83e5f50d12\"], \"inside_docker\": [\"0\"], \"kvm\": [\"1\"], \"locale\": [\"en_US.UTF-8\"], \"machine_type\": [\"n1-standard-8\"], \"os\": [\"Linux\", \"Ubuntu\", \"Ubuntu-16.04\"], \"pool\": [\"luci.webrtc.ci\"], \"python\": [\"2.7.12\"], \"server_version\": [\"4967-6d1ba8b\"], \"ssd\": [\"0\"], \"zone\": [\"us\", \"us-central\", \"us-central1\", \"us-central1-b\"]}}}",
    "service_account": "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
    "started_ts": "1586858970487862",
    "status": "COMPLETED",
    "status_changed_ts": "1586860111758514",
    "tags": [
      "build_address:luci.webrtc.ci/Android32 Builder arm/6820",
      "builder:Android32 Builder arm",
      "buildset:commit/git/96213777303749c0522d635255a224665fbad342",
      "buildset:commit/gitiles/webrtc.googlesource.com/src/+/96213777303749c0522d635255a224665fbad342",
      "gitiles_ref:refs/heads/master",
      "scheduler_invocation_id:9048481935130498352",
      "scheduler_job_id:webrtc/Android32 Builder arm",
      "swarming_hostname:chromium-swarm.appspot.com",
      "swarming_tag:log_location:logdog://logs.chromium.org/webrtc/buildbucket/cr-buildbucket.appspot.com/8883051873093424608/+/annotations",
      "swarming_tag:luci_project:webrtc",
      "swarming_tag:os:Linux",
      "swarming_tag:recipe_name:webrtc/standalone",
      "swarming_tag:recipe_package:infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
      "swarming_task_id:4b90f63183350810",
      "user_agent:luci-scheduler"
    ],
    "updated_ts": "1586860111775929",
    "url": "https://ci.chromium.org/b/8883051873093424608",
    "utcnow_ts": "1586860112538875"
  }
}
[10:28:32.584] Invocation finished in 25m14.376088355s with status SUCCEEDED