{"id":13839815,"url":"https://github.com/buildkite-plugins/ecs-deploy-buildkite-plugin","last_synced_at":"2025-12-27T01:54:43.115Z","repository":{"id":26147039,"uuid":"107481723","full_name":"buildkite-plugins/ecs-deploy-buildkite-plugin","owner":"buildkite-plugins","description":"🚀 Deploy ECS services","archived":false,"fork":false,"pushed_at":"2024-09-17T16:12:57.000Z","size":199,"stargazers_count":22,"open_issues_count":2,"forks_count":26,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-09-17T20:25:37.651Z","etag":null,"topics":["aws","aws-ecs","buildkite","buildkite-plugin","ecs","ecs-service"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/buildkite-plugins.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-19T01:16:15.000Z","updated_at":"2024-09-17T16:12:59.000Z","dependencies_parsed_at":"2024-09-17T19:54:21.817Z","dependency_job_id":"3cd74b9b-f33f-4262-858e-8ff6d99fe695","html_url":"https://github.com/buildkite-plugins/ecs-deploy-buildkite-plugin","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buildkite-plugins%2Fecs-deploy-buildkite-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buildkite-plugins%2Fecs-deploy-buildkite-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buildkite-plugins%2Fecs-deploy-buildkite-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buildkite-plugins%2Fecs-deploy-buildkite-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/buildkite-plugins","download_url":"https://codeload.github.com/buildkite-plugins/ecs-deploy-buildkite-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225700116,"owners_count":17510439,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","aws-ecs","buildkite","buildkite-plugin","ecs","ecs-service"],"created_at":"2024-08-04T17:00:35.748Z","updated_at":"2025-12-27T01:54:43.061Z","avatar_url":"https://github.com/buildkite-plugins.png","language":"Shell","funding_links":[],"categories":["Plugins"],"sub_categories":[],"readme":"# ECS Deploy Buildkite Plugin [![Build status](https://badge.buildkite.com/02dd9bd7d4b4a6f3d80c198d7307e24bff9ae7e39ff1854bed.svg?branch=master)](https://buildkite.com/buildkite/plugins-ecs-deploy)\n\nA [Buildkite plugin](https://buildkite.com/docs/agent/v3/plugins) for deploying to [Amazon ECS](https://aws.amazon.com/ecs/).\n\n* Requires both `aws` and `jq` cli tools to be installed\n* Registers a new task definition based on a given JSON file ([`register-task-definition`](http://docs.aws.amazon.com/cli/latest/reference/ecs/register-task-definition.html))\n* Updates the ECS service to use the new task definition ([`update-service`](http://docs.aws.amazon.com/cli/latest/reference/ecs/update-service.html))\n* Waits for the service to stabilize ([`wait services-stable`](http://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html))\n\n## Example\n\n```yml\nsteps:\n  - label: \":ecs: :rocket:\"\n    concurrency_group: \"my-service-deploy\"\n    concurrency: 1\n    plugins:\n      - ecs-deploy#v3.1.0:\n          cluster: \"my-ecs-cluster\"\n          service: \"my-service\"\n          container-definitions: \"examples/hello-world.json\"\n          task-family: \"hello-world\"\n          image: \"${ECR_REPOSITORY}/hello-world:${BUILDKITE_BUILD_NUMBER}\"\n```\n\n## Options\n\n### Required\n\n#### `cluster`\n\nThe name of the ECS cluster.\n\nExample: `\"my-cluster\"`\n\n#### `container-definitions`\n\n_Experimental:_ Since version 3.0.0 you can skip this parameter and the container definitions will be obtained off the existing (latest) task definition. If this does not work for you, please open an issue in this repository.\n\nThe file path to the ECS container definition JSON file. This JSON file must be an array of objects, each corresponding to one of the images you defined in the `image` parameter.\n\nExample: `\"ecs/containers.json\"`\n```json\n[\n    {\n        \"essential\": true,\n        \"image\": \"amazon/amazon-ecs-sample\",\n        \"memory\": 100,\n        \"name\": \"sample\",\n        \"portMappings\": [\n            {\n                \"containerPort\": 80,\n                \"hostPort\": 80\n            }\n        ]\n    },\n    {\n        \"essential\": true,\n        \"image\": \"amazon/amazon-ecs-sample\",\n        \"memory\": 100,\n        \"name\": \"sample\",\n        \"portMappings\": [\n            {\n                \"containerPort\": 80,\n                \"hostPort\": 80\n            }\n        ]\n    }\n]\n```\n\n#### `image`\n\nThe Docker image to deploy. This can be an array to substitute multiple images in a single container definition.\n\nExamples:\n`\"012345.dkr.ecr.us-east-1.amazonaws.com/my-service:123\"`\n\n```yaml\nimage:\n  - \"012345.dkr.ecr.us-east-1.amazonaws.com/my-service:123\"\n  - \"012345.dkr.ecr.us-east-1.amazonaws.com/nginx:123\"\n```\n\n#### `service`\n\nThe name of the ECS service.\n\nExample: `\"my-service\"`\n\n#### `task-family`\n\nThe name of the task family.\n\nExample: `\"my-task\"`\n\n### Optional\n\n#### `env` (array)\n\nAn array of environment variables to add to *every* image's task definition in the `NAME=VALUE` format\n\n#### `execution-role`\n\nThe Execution Role ARN used by ECS to pull container images and secrets.\n\nExample: `\"arn:aws:iam::012345678910:role/execution-role\"`\n\nRequires the `iam:PassRole` permission for the execution role.\n\n#### `region`\n\nThe region we deploy the ECS Service to.\n\n#### `task-cpu` (integer)\n\nCPU Units to assign to the task (1024 constitutes a whole CPU). Example: `256` (1/4 of a CPU).\n\n#### `task-ephemeral-storage` (integer)\n\nAmount of GBs to assign in ephemeral storage to the task. Example: `25`.\n\n#### `task-ipc-mode`\n\nIPC resource namespace to use in the task. If specified, should be one of `host`, `task` or `none`.\n\n#### `task-memory` (integer)\n\nAmount of memory (in Mbs) to allocate for the task. Example: `1024` (1Gb).\n\n#### `task-network-mode`\n\nDocker networking mode for the containers running in the task. If specified, should be one of `bridge`, `host`, `awsvpc` or `none`.\n\n#### `task-pid-mode`\n\nProcess namespace to use for containers in the task. If specified, should be one of `host` or `task`.\n\n#### `task-role-arn`\n\nAn IAM ECS Task Role to assign to tasks.\n\nRequires the `iam:PassRole` permission for the ARN specified.\n\n## AWS Roles\n\nAt a minimum this plugin requires the following AWS permissions to be granted to the agent running this step:\n\n```yml\nPolicy:\n  Statement:\n  - Action:\n    - ecr:DescribeImages\n    - ecs:DescribeServices\n    - ecs:DescribeTaskDefinition\n    - ecs:RegisterTaskDefinition\n    - ecs:UpdateService\n    Effect: Allow\n    Resource: '*'\n```\n\n## Developing\n\nTo run testing, shellchecks and plugin linting use use `bk run` with the [Buildkite CLI](https://github.com/buildkite/cli).\n\n```bash\nbk run\n```\n\nOr if you want to run just the tests, you can use the docker [Plugin Tester](https://github.com/buildkite-plugins/buildkite-plugin-tester):\n\n```bash\ndocker run --rm -ti -v \"${PWD}\":/plugin buildkite/plugin-tester:latest\n```\n\n## License\n\nMIT (see [LICENSE](LICENSE))\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuildkite-plugins%2Fecs-deploy-buildkite-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbuildkite-plugins%2Fecs-deploy-buildkite-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuildkite-plugins%2Fecs-deploy-buildkite-plugin/lists"}