shipitron 1.1.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +1 -0
  3. data/.gitattributes +1 -0
  4. data/.gitignore +1 -0
  5. data/Dockerfile +28 -5
  6. data/Dockerfile.release +28 -5
  7. data/Gemfile +1 -0
  8. data/README.md +48 -9
  9. data/build_dev.sh +1 -1
  10. data/docker-compose.yml +24 -0
  11. data/lib/shipitron/cli.rb +10 -4
  12. data/lib/shipitron/client.rb +9 -0
  13. data/lib/shipitron/client/bootstrap_application.rb +1 -0
  14. data/lib/shipitron/client/create_ecs_services.rb +7 -7
  15. data/lib/shipitron/client/deploy_application.rb +1 -0
  16. data/lib/shipitron/client/ensure_deploy_not_running.rb +2 -1
  17. data/lib/shipitron/client/fetch_clusters.rb +1 -0
  18. data/lib/shipitron/client/force_deploy.rb +1 -0
  19. data/lib/shipitron/client/load_application_config.rb +4 -0
  20. data/lib/shipitron/client/load_templates.rb +1 -0
  21. data/lib/shipitron/client/register_ecs_task_definitions.rb +5 -5
  22. data/lib/shipitron/client/run_ecs_tasks.rb +14 -1
  23. data/lib/shipitron/docker_image.rb +4 -1
  24. data/lib/shipitron/find_docker_volume_name.rb +68 -0
  25. data/lib/shipitron/git_info.rb +57 -0
  26. data/lib/shipitron/mustache_yaml_parser.rb +12 -8
  27. data/lib/shipitron/s3_copy.rb +46 -0
  28. data/lib/shipitron/server/deploy_application.rb +3 -0
  29. data/lib/shipitron/server/docker/build_image.rb +4 -1
  30. data/lib/shipitron/server/docker/configure.rb +46 -10
  31. data/lib/shipitron/server/docker/push_image.rb +3 -0
  32. data/lib/shipitron/server/docker/run_build_script.rb +17 -10
  33. data/lib/shipitron/server/download_build_cache.rb +17 -4
  34. data/lib/shipitron/server/git/clone_local_copy.rb +3 -4
  35. data/lib/shipitron/server/git/update_cache.rb +1 -0
  36. data/lib/shipitron/server/run_post_build.rb +40 -1
  37. data/lib/shipitron/server/transform_cli_args.rb +6 -0
  38. data/lib/shipitron/server/update_ecs_task_definitions.rb +2 -1
  39. data/lib/shipitron/server/upload_build_cache.rb +14 -8
  40. data/lib/shipitron/version.rb +1 -1
  41. data/scripts/docker-entrypoint.sh +9 -0
  42. data/shipitron.gemspec +8 -6
  43. metadata +53 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8942009b3ccf99e9b14c8676e355c8a8cd22d7def515a2903daf6707e476a235
4
- data.tar.gz: 3f1d602aebc48bdc3fda47458da830626c964320b621d6d21cf0db08dfef50a1
3
+ metadata.gz: ffcd046204b230e7282508063bb33a58c1c68e73c4e7c8546ea15cfc48d6a2f7
4
+ data.tar.gz: 38ddb0adc7677e27c9afcee285d09358afb60df254994d456319bf904d518091
5
5
  SHA512:
6
- metadata.gz: 8e0a2d2d5575272eada04e2cb8b836a2a71a5139e992714bec2ba45ed83dd3d0b6c7821eb92e824c4f8bcba9805f707be1b56e65d95b3ad87b69b40403758f5e
7
- data.tar.gz: 45f1cdf8c7d940e0defc1ef6be4d65f772648b6c7e7d5d8759f3e19043e426d262a435a5e282eb7fd6872536041f02429d1c3822cc78979dbc444c9c53713c7c
6
+ metadata.gz: 28b568e8e1a5fa928beeeaf2ff1e00415671712c9415dacc317581d10d79bb320bbc05f07d9d1c7b528db4a5523f9568cb9dac33d2bc5607165b43d1896d3cc4
7
+ data.tar.gz: fcd1597703388b9bf8be61ab98e03faabbcf17bab98a06895344e14cb41f3ee412941fe2a27257425c3db646762130500e592150c53e35520939d04240f77fe6
data/.dockerignore CHANGED
@@ -2,3 +2,4 @@
2
2
  /pkg/
3
3
  Gemfile.lock
4
4
  /tmp/
5
+ /spec/fixtures/test_repo
data/.gitattributes ADDED
@@ -0,0 +1 @@
1
+ spec/fixtures/test_repo.tgz filter=lfs diff=lfs merge=lfs -text
data/.gitignore CHANGED
@@ -3,3 +3,4 @@
3
3
  Gemfile.lock
4
4
  /tmp/
5
5
  /cache/
6
+ /spec/fixtures/test_repo
data/Dockerfile CHANGED
@@ -1,12 +1,12 @@
1
- FROM ruby:2.5.1-alpine3.7 as cache
1
+ FROM ruby:2.7.2-alpine as cache
2
2
  COPY cache/ /tmp/
3
3
  RUN cd /usr/local/bundle && \
4
4
  ([ -f /tmp/bundler-data.tar.gz ] && \
5
5
  tar -zxf /tmp/bundler-data.tar.gz && \
6
6
  rm /tmp/bundler-data.tar.gz) || true
7
7
 
8
- FROM ruby:2.5.0-alpine3.7
9
- MAINTAINER Ryan Schlesinger <ryan@outstand.com>
8
+ FROM ruby:2.7.2-alpine
9
+ LABEL maintainer="Ryan Schlesinger <ryan@outstand.com>"
10
10
 
11
11
  RUN addgroup -S shipitron && \
12
12
  adduser -S -G shipitron shipitron && \
@@ -15,18 +15,41 @@ RUN addgroup -S shipitron && \
15
15
 
16
16
  RUN apk add --no-cache \
17
17
  ca-certificates \
18
- openssl \
18
+ openssl-dev \
19
19
  tini \
20
20
  su-exec \
21
21
  build-base \
22
22
  git \
23
+ git-lfs \
23
24
  openssh-client \
24
25
  perl \
25
26
  bash \
26
27
  curl \
27
28
  wget \
28
- jq
29
+ jq \
30
+ cmake
29
31
 
32
+ ENV ECR_CREDENTIAL_HELPER_VERSION 0.4.0
33
+ RUN cd /usr/local/bin && \
34
+ wget https://amazon-ecr-credential-helper-releases.s3.us-east-2.amazonaws.com/${ECR_CREDENTIAL_HELPER_VERSION}/linux-amd64/docker-credential-ecr-login && \
35
+ chmod +x docker-credential-ecr-login
36
+
37
+ ENV BUILDKIT_VERSION v0.7.2
38
+ RUN cd /usr/local/bin && \
39
+ wget -nv https://github.com/moby/buildkit/releases/download/${BUILDKIT_VERSION}/buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz && \
40
+ tar --strip-components=1 -zxvf buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz bin/buildctl && \
41
+ chmod +x buildctl && \
42
+ rm -f buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz
43
+
44
+ USER shipitron
45
+ ENV BUILDX_VERSION v0.4.2
46
+ RUN cd /home/shipitron && \
47
+ wget -nv https://github.com/docker/buildx/releases/download/${BUILDX_VERSION}/buildx-${BUILDX_VERSION}.linux-amd64 && \
48
+ mkdir -p ~/.docker/cli-plugins && \
49
+ mv buildx-${BUILDX_VERSION}.linux-amd64 ~/.docker/cli-plugins/docker-buildx && \
50
+ chmod a+x ~/.docker/cli-plugins/docker-buildx
51
+
52
+ USER root
30
53
  ENV USE_BUNDLE_EXEC true
31
54
  ENV BUNDLE_GEMFILE /shipitron/Gemfile
32
55
 
data/Dockerfile.release CHANGED
@@ -1,5 +1,5 @@
1
- FROM ruby:2.5.1-alpine3.7
2
- MAINTAINER Ryan Schlesinger <ryan@outstand.com>
1
+ FROM ruby:2.7.2-alpine
2
+ LABEL maintainer="Ryan Schlesinger <ryan@outstand.com>"
3
3
 
4
4
  RUN addgroup -S shipitron && \
5
5
  adduser -S -G shipitron shipitron && \
@@ -8,7 +8,7 @@ RUN addgroup -S shipitron && \
8
8
 
9
9
  RUN apk add --no-cache \
10
10
  ca-certificates \
11
- openssl \
11
+ openssl-dev \
12
12
  tini \
13
13
  su-exec \
14
14
  build-base \
@@ -18,11 +18,34 @@ RUN apk add --no-cache \
18
18
  bash \
19
19
  curl \
20
20
  wget \
21
- jq
21
+ jq \
22
+ cmake
23
+
24
+ ENV ECR_CREDENTIAL_HELPER_VERSION 0.4.0
25
+ RUN cd /usr/local/bin && \
26
+ wget https://amazon-ecr-credential-helper-releases.s3.us-east-2.amazonaws.com/${ECR_CREDENTIAL_HELPER_VERSION}/linux-amd64/docker-credential-ecr-login && \
27
+ chmod +x docker-credential-ecr-login
28
+
29
+ ENV BUILDKIT_VERSION v0.7.2
30
+ RUN cd /usr/local/bin && \
31
+ wget -nv https://github.com/moby/buildkit/releases/download/${BUILDKIT_VERSION}/buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz && \
32
+ tar --strip-components=1 -zxvf buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz bin/buildctl && \
33
+ chmod +x buildctl && \
34
+ rm -f buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz
35
+
36
+ USER shipitron
37
+ ENV BUILDX_VERSION v0.4.2
38
+ RUN cd /home/shipitron && \
39
+ wget -nv https://github.com/docker/buildx/releases/download/${BUILDX_VERSION}/buildx-${BUILDX_VERSION}.linux-amd64 && \
40
+ mkdir -p ~/.docker/cli-plugins && \
41
+ mv buildx-${BUILDX_VERSION}.linux-amd64 ~/.docker/cli-plugins/docker-buildx && \
42
+ chmod a+x ~/.docker/cli-plugins/docker-buildx
43
+
44
+ USER root
22
45
 
23
46
  WORKDIR /app
24
47
 
25
- ENV SHIPITRON_VERSION=1.1.0
48
+ ENV SHIPITRON_VERSION=1.3.2
26
49
 
27
50
  RUN gem install shipitron -v ${SHIPITRON_VERSION} && \
28
51
  mkdir -p /home/shipitron/.ssh && \
data/Gemfile CHANGED
@@ -1,3 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+ gem 'irb'
data/README.md CHANGED
@@ -9,6 +9,7 @@ applications:
9
9
  dummy-app:
10
10
  repository: git@github.com:outstand/dummy-app
11
11
  cache_bucket: bucket
12
+ build_cache_location: tmp/build-cache.tar.gz
12
13
  image_name: outstand/dummy-app
13
14
  build_script: shipitron/build.sh
14
15
  post_builds:
@@ -30,25 +31,63 @@ applications:
30
31
  - Add deploy ref key to `shipitron/<app name>/deploy_ref_key`
31
32
  - `docker run -it --rm -v shipitron.yml:/shipitron/config/shipitron.yml outstand/shipitron:<version> deploy <app>`
32
33
 
34
+ ### New shipitron config file keys:
35
+
36
+ - registry (specifies an alternate docker registry):
37
+ ```yaml
38
+ ---
39
+ applications:
40
+ foobar:
41
+ registry: 12345.dkr.ecr.us-east-1.amazonaws.com
42
+ ```
43
+
44
+ - skip_push (shipitron will skip pushing the docker images; use if the build script takes care of this):
45
+ ```yaml
46
+ ---
47
+ applications:
48
+ foobar:
49
+ skip_push: true
50
+ ```
51
+ Additionally, the build script will receive the named tag in use as `$2`.
52
+
53
+ ### Containerized tool support
54
+ Shipitron now supports starting other containers as part of the build process. We're using this to use the aws cli to transfer files to/from s3. Shipitron's task definition needs to have a task scoped docker volume added with the name `shipitron-home`. This volume will be mounted at `/home/shipitron` and should be shared with any new containers:
55
+
56
+ ```
57
+ shipitron_home_volume = FindDockerVolumeName.call!(
58
+ container_name: 'shipitron',
59
+ volume_search: /shipitron-home/
60
+ ).volume_name
61
+
62
+ docker run ... -v #{shipitron_home_volume}:/home/shipitron ...
63
+ ```
64
+
65
+ This allows the containers to share data with each other. ECS will automatically clean up the task scoped container.
66
+
67
+ If a containerized tool requires access to AWS resources, be sure to pass the `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` to it so it can inherit any task roles.
68
+
33
69
  ## Development
34
70
 
35
- - `docker volume create --name shipitron_fog`
36
71
  - `./build_dev.sh`
37
- - `docker run -it --rm -v $(pwd):/shipitron -v shipitron_fog:/fog -e FOG_LOCAL=true -w /shipitron outstand/shipitron:dev rspec spec` to run specs
38
- - `APP_PATH=/path/to/app`
39
- - `docker run -it --rm -v $(pwd):/shipitron -v $HOME/.config/shipitron:/home/shipitron/.config/shipitron -v $APP_PATH:/app outstand/shipitron:dev deploy <app>` to run client side
40
- - `docker run -it --rm -v $(pwd):/shipitron -v $HOME/.config/shipitron:/home/shipitron/.config/shipitron -v $APP_PATH:/app outstand/shipitron:dev deploy <app> --simulate` to get the arguments for `server_deploy` below
41
- - `docker run -it --rm --dns 10.10.10.2 -v $(pwd):/shipitron -v $APP_PATH:/app -v /bin/docker:/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v shipitron_fog:/fog -e FOG_LOCAL=true -e CONSUL_HOST=consul outstand/shipitron:dev server_deploy --name dummy-app --repository git@github.com:outstand/dummy-app --bucket outstand-shipitron --image-name outstand/dummy-app --region us-east-1 --cluster-name us-east-1-prod-blue --ecs-task-defs dummy-app --ecs-services dummy-app --build-script shipitron/build.sh --post-builds 'ecs_task:dummy-app,container_name:dummy-app,command:echo postbuild' --ecs-task-def-templates LS0tCmZhbWlseTogZHVtbXktYXBwCmNvbnRhaW5lcl9kZWZpbml0aW9uczoKICAtIG5hbWU6IGR1bW15LWFwcAogICAgaW1hZ2U6IG91dHN0YW5kL2R1bW15LWFwcDp7e3RhZ319CiAgICBtZW1vcnk6IDEyOAogICAgZXNzZW50aWFsOiB0cnVlCiAgICBwb3J0X21hcHBpbmdzOgogICAgICAtIGNvbnRhaW5lcl9wb3J0OiA4MAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gbmFtZTogU0VSVklDRV84MF9OQU1FCiAgICAgICAgdmFsdWU6IGR1bW15Cg== --ecs-service-templates LS0tCmNsdXN0ZXI6IHt7Y2x1c3Rlcn19CnNlcnZpY2VfbmFtZTogZHVtbXktYXBwCnRhc2tfZGVmaW5pdGlvbjogZHVtbXktYXBwe3tyZXZpc2lvbn19CmRlc2lyZWRfY291bnQ6IHt7Y291bnR9fQojcm9sZToge3tyb2xlfX0KZGVwbG95bWVudF9jb25maWd1cmF0aW9uOgogIG1heGltdW1fcGVyY2VudDogMjAwCiAgbWluaW11bV9oZWFsdGh5X3BlcmNlbnQ6IDUwCg== --debug` to run server side (dummy-app is an example)
72
+ - `dev run --rm shipitron_specs` to run specs
73
+ - Set the application path in the volumes section in `docker-compose.yml`.
74
+ - `dev run --rm shipitron deploy <app>` to run client side
75
+ - `dev run --rm shipitron deploy <app> --simulate` to get the arguments for `server_deploy` below
76
+ - `dev run --rm -v /bin/docker:/bin/docker -v /var/run/docker.sock:/var/run/docker.sock shipitron server_deploy --name dummy-app --repository git@github.com:outstand/dummy-app --bucket outstand-shipitron --image-name outstand/dummy-app --region us-east-1 --cluster-name us-east-1-prod-blue --ecs-task-defs dummy-app --ecs-services dummy-app --build-script shipitron/build.sh --post-builds 'ecs_task:dummy-app,container_name:dummy-app,command:echo postbuild' --ecs-task-def-templates LS0tCmZhbWlseTogZHVtbXktYXBwCmNvbnRhaW5lcl9kZWZpbml0aW9uczoKICAtIG5hbWU6IGR1bW15LWFwcAogICAgaW1hZ2U6IG91dHN0YW5kL2R1bW15LWFwcDp7e3RhZ319CiAgICBtZW1vcnk6IDEyOAogICAgZXNzZW50aWFsOiB0cnVlCiAgICBwb3J0X21hcHBpbmdzOgogICAgICAtIGNvbnRhaW5lcl9wb3J0OiA4MAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gbmFtZTogU0VSVklDRV84MF9OQU1FCiAgICAgICAgdmFsdWU6IGR1bW15Cg== --ecs-service-templates LS0tCmNsdXN0ZXI6IHt7Y2x1c3Rlcn19CnNlcnZpY2VfbmFtZTogZHVtbXktYXBwCnRhc2tfZGVmaW5pdGlvbjogZHVtbXktYXBwe3tyZXZpc2lvbn19CmRlc2lyZWRfY291bnQ6IHt7Y291bnR9fQojcm9sZToge3tyb2xlfX0KZGVwbG95bWVudF9jb25maWd1cmF0aW9uOgogIG1heGltdW1fcGVyY2VudDogMjAwCiAgbWluaW11bV9oZWFsdGh5X3BlcmNlbnQ6IDUwCg== --debug` to run server side (dummy-app is an example)
42
77
 
43
78
  Running a dev version in production:
79
+ - Update `Shipitron::Client::STARTED_BY`
44
80
  - `docker push outstand/shipitron:dev`
45
81
  - Update config to use `shipitron_task: shipitron-dev`
46
- - `docker run -it --rm -v $(pwd):/shipitron -v $HOME/.config/shipitron:/home/shipitron/.config/shipitron -v $APP_PATH:/app outstand/shipitron:dev deploy <app> --debug`
82
+ - `dev run --rm shipitron deploy <app> --debug`
47
83
 
48
84
  To release a new version:
49
85
  - Update the version number in `version.rb` and `Dockerfile.release` and commit the result.
50
86
  - `./build_dev.sh`
51
87
  - `docker run -it --rm -v ~/.gitconfig:/root/.gitconfig -v ~/.gitconfig.user:/root/.gitconfig.user -v ~/.ssh/id_rsa:/root/.ssh/id_rsa -v ~/.gem:/root/.gem -w /shipitron outstand/shipitron:dev rake release`
52
- - `docker build -t outstand/shipitron:VERSION -f Dockerfile.release .`
53
- - `docker push outstand/shipitron:VERSION`
88
+ - `VERSION=<version>`
89
+ - `docker build -t outstand/shipitron:$VERSION -f Dockerfile.release .`
90
+ - `docker push outstand/shipitron:$VERSION`
91
+ - `docker tag outstand/shipitron:$VERSION outstand/shipitron:latest`
92
+ - `docker push outstand/shipitron:latest`
54
93
  - Update ECS task definition with new version
data/build_dev.sh CHANGED
@@ -20,7 +20,7 @@ trap cleanup EXIT
20
20
  build_args=''
21
21
  mkdir -p ${bundler_data_dir}
22
22
 
23
- docker build -t ${build_image} -f ${dockerfile} ${build_args} .
23
+ docker build --pull -t ${build_image} -f ${dockerfile} ${build_args} .
24
24
 
25
25
  docker run -t --cidfile=${bundler_data_dir}/cidfile -w /usr/local/bundle ${build_image} tar -zcf /tmp/bundler-data.tar.gz .
26
26
  tar_container=$(cat ${bundler_data_dir}/cidfile)
@@ -0,0 +1,24 @@
1
+ version: '3.8'
2
+ services:
3
+ shipitron:
4
+ image: outstand/shipitron:dev
5
+ volumes:
6
+ - ~/dev/pages:/app # Set this to the application to be shipitron'd
7
+ - shipitron-home:/home/shipitron
8
+ - ~/.config/shipitron:/home/shipitron/.config/shipitron
9
+ - .:/shipitron
10
+ shipitron_specs:
11
+ image: outstand/shipitron:dev
12
+ command: rspec spec
13
+ environment:
14
+ FOG_LOCAL: 'true'
15
+ working_dir: /shipitron
16
+ volumes:
17
+ - fog:/fog
18
+ - shipitron-home:/home/shipitron
19
+ - ~/.config/shipitron:/home/shipitron/.config/shipitron
20
+ - .:/shipitron
21
+
22
+ volumes:
23
+ fog:
24
+ shipitron-home:
data/lib/shipitron/cli.rb CHANGED
@@ -27,7 +27,7 @@ module Shipitron
27
27
  )
28
28
 
29
29
  if result.failure?
30
- result.errors.each do |error|
30
+ result.error_messages.each do |error|
31
31
  Logger.fatal error
32
32
  end
33
33
  Logger.fatal 'Deploy failed.'
@@ -50,7 +50,7 @@ module Shipitron
50
50
  )
51
51
 
52
52
  if result.failure?
53
- result.errors.each do |error|
53
+ result.error_messages.each do |error|
54
54
  Logger.fatal error
55
55
  end
56
56
  Logger.fatal 'Deploy failed.'
@@ -62,9 +62,12 @@ module Shipitron
62
62
  option :name, required: true
63
63
  option :repository, required: true
64
64
  option :repository_branch, default: 'master'
65
+ option :registry, default: nil
65
66
  option :bucket, required: true
67
+ option :build_cache_location, default: 'tmp/build-cache.tar.gz'
66
68
  option :image_name, required: true
67
69
  option :named_tag, default: 'latest'
70
+ option :skip_push, type: :boolean, default: false
68
71
  option :region, required: true
69
72
  option :clusters, type: :array, required: true
70
73
  option :ecs_task_defs, type: :array, required: true
@@ -85,9 +88,12 @@ module Shipitron
85
88
  application: options[:name],
86
89
  repository_url: options[:repository],
87
90
  repository_branch: options[:repository_branch],
91
+ registry: options[:registry],
88
92
  s3_cache_bucket: options[:bucket],
93
+ build_cache_location: options[:build_cache_location],
89
94
  image_name: options[:image_name],
90
95
  named_tag: options[:named_tag],
96
+ skip_push: options[:skip_push],
91
97
  region: options[:region],
92
98
  clusters: options[:clusters],
93
99
  ecs_task_defs: options[:ecs_task_defs],
@@ -104,7 +110,7 @@ module Shipitron
104
110
  )
105
111
 
106
112
  if result.failure?
107
- result.errors.each do |error|
113
+ result.error_messages.each do |error|
108
114
  Logger.fatal error
109
115
  end
110
116
  Logger.fatal 'Deploy failed.'
@@ -135,7 +141,7 @@ module Shipitron
135
141
  )
136
142
 
137
143
  if result.failure?
138
- result.errors.each do |error|
144
+ result.error_messages.each do |error|
139
145
  Logger.fatal error
140
146
  end
141
147
  Logger.fatal 'Bootstrap failed.'
@@ -0,0 +1,9 @@
1
+ require 'shipitron'
2
+
3
+ module Shipitron
4
+ module Client
5
+ STARTED_BY = 'shipitron'
6
+ # Use this for testing.
7
+ # STARTED_BY = 'shipitron-dev'
8
+ end
9
+ end
@@ -1,4 +1,5 @@
1
1
  require 'shipitron'
2
+ require 'shipitron/client'
2
3
  require 'shipitron/client/register_ecs_task_definitions'
3
4
  require 'shipitron/client/create_ecs_services'
4
5
 
@@ -1,4 +1,5 @@
1
1
  require 'shipitron'
2
+ require 'shipitron/client'
2
3
  require 'shipitron/ecs_client'
3
4
  require 'shipitron/mustache_yaml_parser'
4
5
  require 'securerandom'
@@ -29,13 +30,12 @@ module Shipitron
29
30
 
30
31
  service_def = Smash.load(
31
32
  path.to_s,
32
- parser: MustacheYamlParser.new(
33
- context: {
34
- cluster: cluster_name,
35
- revision: nil, # ECS will default to latest ACTIVE
36
- count: service_count
37
- }
38
- )
33
+ parser: MustacheYamlParser,
34
+ context: {
35
+ cluster: cluster_name,
36
+ revision: nil, # ECS will default to latest ACTIVE
37
+ count: service_count
38
+ }
39
39
  ).merge(
40
40
  client_token: SecureRandom.uuid
41
41
  )
@@ -1,4 +1,5 @@
1
1
  require 'shipitron'
2
+ require 'shipitron/client'
2
3
  require 'shipitron/client/load_application_config'
3
4
  require 'shipitron/client/load_templates'
4
5
  require 'shipitron/client/fetch_clusters'
@@ -1,4 +1,5 @@
1
1
  require 'shipitron'
2
+ require 'shipitron/client'
2
3
  require 'shipitron/ecs_client'
3
4
 
4
5
  # Note: This is a best effort client side check to make sure there
@@ -21,7 +22,7 @@ module Shipitron
21
22
  begin
22
23
  response = ecs_client(region: cluster.region).list_tasks(
23
24
  cluster: cluster.name,
24
- started_by: 'shipitron',
25
+ started_by: Shipitron::Client::STARTED_BY,
25
26
  max_results: 1,
26
27
  desired_status: status
27
28
  )
@@ -1,4 +1,5 @@
1
1
  require 'shipitron'
2
+ require 'shipitron/client'
2
3
  require 'resolv'
3
4
 
4
5
  module Shipitron
@@ -1,4 +1,5 @@
1
1
  require 'shipitron'
2
+ require 'shipitron/client'
2
3
  require 'shipitron/ecs_client'
3
4
  require 'shipitron/client/load_application_config'
4
5
  require 'shipitron/client/fetch_clusters'
@@ -1,4 +1,5 @@
1
1
  require 'shipitron'
2
+ require 'shipitron/client'
2
3
  require 'shipitron/post_build'
3
4
 
4
5
  module Shipitron
@@ -11,7 +12,9 @@ module Shipitron
11
12
  def call
12
13
  context.repository_url = config.repository
13
14
  context.repository_branch = config.repository_branch
15
+ context.registry = config.registry
14
16
  context.s3_cache_bucket = config.cache_bucket
17
+ context.build_cache_location = config.build_cache_location
15
18
  context.image_name = config.image_name
16
19
  context.named_tag = begin
17
20
  if config.named_tag.nil?
@@ -20,6 +23,7 @@ module Shipitron
20
23
  config.named_tag
21
24
  end
22
25
  end
26
+ context.skip_push = config.skip_push
23
27
  context.build_script = config.build_script
24
28
  context.post_builds = begin
25
29
  if config.post_builds.nil?
@@ -1,4 +1,5 @@
1
1
  require 'shipitron'
2
+ require 'shipitron/client'
2
3
 
3
4
  module Shipitron
4
5
  module Client
@@ -1,4 +1,5 @@
1
1
  require 'shipitron'
2
+ require 'shipitron/client'
2
3
  require 'shipitron/ecs_client'
3
4
  require 'shipitron/mustache_yaml_parser'
4
5
 
@@ -26,11 +27,10 @@ module Shipitron
26
27
 
27
28
  task_def = Smash.load(
28
29
  path.to_s,
29
- parser: MustacheYamlParser.new(
30
- context: {
31
- tag: 'latest'
32
- }
33
- )
30
+ parser: MustacheYamlParser,
31
+ context: {
32
+ tag: 'latest'
33
+ }
34
34
  )
35
35
 
36
36
  begin