shipitron 1.2.0 → 1.4.0

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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/.buildkite/pipeline.yml +94 -0
  3. data/.dockerignore +1 -0
  4. data/.gitattributes +1 -0
  5. data/.gitignore +1 -0
  6. data/.rspec +1 -0
  7. data/Deskfile +15 -0
  8. data/Dockerfile +40 -15
  9. data/Dockerfile.release +29 -6
  10. data/Dockerfile.staging +70 -0
  11. data/Gemfile +2 -0
  12. data/README.md +53 -15
  13. data/docker-compose.yml +54 -0
  14. data/lib/shipitron.rb +19 -2
  15. data/lib/shipitron/cli.rb +42 -42
  16. data/lib/shipitron/client.rb +9 -0
  17. data/lib/shipitron/client/bootstrap_application.rb +1 -0
  18. data/lib/shipitron/client/create_ecs_services.rb +7 -7
  19. data/lib/shipitron/client/deploy_application.rb +2 -0
  20. data/lib/shipitron/client/ensure_deploy_not_running.rb +2 -1
  21. data/lib/shipitron/client/fetch_clusters.rb +1 -0
  22. data/lib/shipitron/client/force_deploy.rb +1 -0
  23. data/lib/shipitron/client/generate_deploy.rb +41 -0
  24. data/lib/shipitron/client/load_application_config.rb +17 -0
  25. data/lib/shipitron/client/load_templates.rb +1 -0
  26. data/lib/shipitron/client/register_ecs_task_definitions.rb +5 -5
  27. data/lib/shipitron/client/run_ecs_tasks.rb +101 -72
  28. data/lib/shipitron/docker_image.rb +4 -1
  29. data/lib/shipitron/find_docker_volume_name.rb +68 -0
  30. data/lib/shipitron/git_info.rb +57 -0
  31. data/lib/shipitron/mustache_yaml_parser.rb +12 -8
  32. data/lib/shipitron/s3_copy.rb +46 -0
  33. data/lib/shipitron/server/deploy_application.rb +2 -0
  34. data/lib/shipitron/server/docker/build_image.rb +4 -1
  35. data/lib/shipitron/server/docker/configure.rb +46 -10
  36. data/lib/shipitron/server/docker/push_image.rb +3 -0
  37. data/lib/shipitron/server/docker/run_build_script.rb +17 -10
  38. data/lib/shipitron/server/download_build_cache.rb +11 -3
  39. data/lib/shipitron/server/fetch_deploy.rb +50 -0
  40. data/lib/shipitron/server/git/clone_local_copy.rb +4 -5
  41. data/lib/shipitron/server/git/update_cache.rb +2 -1
  42. data/lib/shipitron/server/run_post_build.rb +40 -1
  43. data/lib/shipitron/server/transform_cli_args.rb +4 -0
  44. data/lib/shipitron/server/update_ecs_task_definitions.rb +2 -1
  45. data/lib/shipitron/server/upload_build_cache.rb +10 -9
  46. data/lib/shipitron/version.rb +1 -1
  47. data/scripts/docker-entrypoint.sh +37 -3
  48. data/scripts/release-entrypoint.sh +20 -0
  49. data/shipitron.gemspec +11 -8
  50. data/test.yml +5 -0
  51. metadata +78 -25
  52. data/build_dev.sh +0 -27
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9bd4d376f639bb5ebd80df8a467b8aaca8eac7f2d50ebb6a404683dbaea2fde5
4
- data.tar.gz: d368aa28072880ae2580ed73fca2c78d40328b497d21d3a1d02139ccdfd77af5
3
+ metadata.gz: ce2ad45258aa11acc35b0c3041aab0fe3f20bb56f076764120f1b6466233f310
4
+ data.tar.gz: 938b06da85c43614c316c7d63a755440e8d7d61e6396ee0bc574040fda9bd817
5
5
  SHA512:
6
- metadata.gz: 26eafd5c78aafa2946e78e400e0c132820ca9b7b57dbbf0846fce2e11f290db649c7257ffb76283fa2bd86176fe38fe322a79077836ef9afd1eaefa306b43a3d
7
- data.tar.gz: cf99dd7b011c3beb293b428418930f55aa0990a73027deda2c6c1b7e6d420db7b5584af89457acc0a0318553ebc0ed3bc53c3f18d49860c5c947647164f2ea9f
6
+ metadata.gz: 5a93f308e3065ada355022a5a18977d903e00ae56387e98218bf26557101ca8ccbb1a2d7c1950c6c2849b0bc47da860a57dccb6d0365216df99670a90245ce2c
7
+ data.tar.gz: 2a041845cb6bc87c29366de8e39702fb691bec9efb7a2e53df8673d30bbd9988edaa3147fe68a98c09fe6be80b81aa8a3094ded4fef464df23622c421ea63017
@@ -0,0 +1,94 @@
1
+ env:
2
+ BUILDKITE_PLUGIN_DOCKER_CACHE_S3_BUCKET: "outstand-buildkite-cache"
3
+ # BUILDKITE_PLUGIN_DOCKER_CACHE_VOLUME_DEBUG: "true"
4
+ BUILDKITE_PLUGIN_DOCKER_COMPOSE_SHELL: "false"
5
+ # BUILDKITE_PLUGIN_DOCKER_COMPOSE_UPLOAD_CONTAINER_LOGS: "always"
6
+ BUILDKITE_PLUGIN_DOCKER_COMPOSE_PULL_RETRIES: 5
7
+ BUILDKITE_PLUGIN_DOCKER_COMPOSE_PUSH_RETRIES: 5
8
+ PLUGIN_DOCKER_COMPOSE_VERSION: "17bac3aaee1360e39381b89bb45513b11838238e"
9
+ PLUGIN_DOCKER_CACHE_VERSION: "f3d8feb52a25c69c75565e9f0b80375eae51850a"
10
+
11
+ steps:
12
+ - label: ":docker: Build"
13
+ key: build
14
+ plugins:
15
+ - seek-oss/aws-sm#v2.2.1:
16
+ env:
17
+ DOCKER_LOGIN_PASSWORD: "/buildkite/docker_password"
18
+
19
+ - docker-login#v2.0.1:
20
+ username: outstandci
21
+
22
+ - ecr#v2.1.1:
23
+ login: true
24
+ region: "us-east-1"
25
+
26
+ - https://github.com/outstand/docker-compose-buildkite-plugin.git#${PLUGIN_DOCKER_COMPOSE_VERSION}:
27
+ build: specs
28
+ image-repository: 786715713882.dkr.ecr.us-east-1.amazonaws.com/ci-images
29
+ config:
30
+ - docker-compose.yml
31
+ - test.yml
32
+
33
+ - label: ":bundler: :rubygems:"
34
+ key: bundle_install
35
+ command: bundle install
36
+ depends_on: build
37
+ plugins:
38
+ - seek-oss/aws-sm#v2.2.1:
39
+ env:
40
+ DOCKER_LOGIN_PASSWORD: "/buildkite/docker_password"
41
+
42
+ - docker-login#v2.0.1:
43
+ username: outstandci
44
+
45
+ - ecr#v2.1.1:
46
+ login: true
47
+ region: "us-east-1"
48
+
49
+ - https://github.com/outstand/docker-compose-buildkite-plugin.git#${PLUGIN_DOCKER_COMPOSE_VERSION}:
50
+ run: specs
51
+ dependencies: false
52
+ config:
53
+ - docker-compose.yml
54
+ - test.yml
55
+
56
+ - https://github.com/outstand/docker-cache-buildkite-plugin.git#${PLUGIN_DOCKER_CACHE_VERSION}:
57
+ name: bundler-cache
58
+ keys:
59
+ - v1-bundler-cache-{{ arch }}-{{ checksum "shipitron.gemspec" }}-{{ checksum "Gemfile" }}
60
+ - v1-bundler-cache-{{ arch }}-
61
+ save: true
62
+ volumes:
63
+ - bundler-data
64
+
65
+ - label: ":ruby: Specs"
66
+ command: rspec spec
67
+ depends_on: bundle_install
68
+ plugins:
69
+ - seek-oss/aws-sm#v2.2.1:
70
+ env:
71
+ DOCKER_LOGIN_PASSWORD: "/buildkite/docker_password"
72
+ json-to-env:
73
+ - secret-id: "/buildkite/rails/env_vars"
74
+
75
+ - docker-login#v2.0.1:
76
+ username: outstandci
77
+
78
+ - ecr#v2.1.1:
79
+ login: true
80
+ region: "us-east-1"
81
+
82
+ - https://github.com/outstand/docker-compose-buildkite-plugin.git#${PLUGIN_DOCKER_COMPOSE_VERSION}:
83
+ run: specs
84
+ config:
85
+ - docker-compose.yml
86
+ - test.yml
87
+
88
+ - https://github.com/outstand/docker-cache-buildkite-plugin.git#${PLUGIN_DOCKER_CACHE_VERSION}:
89
+ name: bundler-cache
90
+ keys:
91
+ - v1-bundler-cache-{{ arch }}-{{ checksum "shipitron.gemspec" }}-{{ checksum "Gemfile" }}
92
+ - v1-bundler-cache-{{ arch }}-
93
+ volumes:
94
+ - bundler-data
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/.rspec CHANGED
@@ -1,3 +1,4 @@
1
1
  --color
2
2
  --require spec_helper
3
3
  --format Fivemat
4
+ --format RSpec::Buildkite::AnnotationFormatter
data/Deskfile ADDED
@@ -0,0 +1,15 @@
1
+ function bundle() {
2
+ dev run --rm shipitron bundle "$@"
3
+ }
4
+
5
+ function shipitron() {
6
+ dev run --rm shipitron "$@"
7
+ }
8
+
9
+ function rspec() {
10
+ dev run --rm specs rspec "$@"
11
+ }
12
+
13
+ function release_gem() {
14
+ dev run --rm release_gem
15
+ }
data/Dockerfile CHANGED
@@ -1,12 +1,7 @@
1
- FROM ruby:2.5.1-alpine3.7 as cache
2
- COPY cache/ /tmp/
3
- RUN cd /usr/local/bundle && \
4
- ([ -f /tmp/bundler-data.tar.gz ] && \
5
- tar -zxf /tmp/bundler-data.tar.gz && \
6
- rm /tmp/bundler-data.tar.gz) || true
1
+ FROM outstand/fixuid as fixuid
7
2
 
8
- FROM ruby:2.5.0-alpine3.7
9
- MAINTAINER Ryan Schlesinger <ryan@outstand.com>
3
+ FROM ruby:2.7.3-alpine
4
+ LABEL maintainer="Ryan Schlesinger <ryan@outstand.com>"
10
5
 
11
6
  RUN addgroup -S shipitron && \
12
7
  adduser -S -G shipitron shipitron && \
@@ -15,31 +10,61 @@ RUN addgroup -S shipitron && \
15
10
 
16
11
  RUN apk add --no-cache \
17
12
  ca-certificates \
18
- openssl \
13
+ openssl-dev \
19
14
  tini \
20
15
  su-exec \
21
16
  build-base \
22
17
  git \
18
+ git-lfs \
23
19
  openssh-client \
24
20
  perl \
25
21
  bash \
26
22
  curl \
27
23
  wget \
28
- jq
24
+ jq \
25
+ cmake
29
26
 
27
+ COPY --from=fixuid /usr/local/bin/fixuid /usr/local/bin/fixuid
28
+ RUN chmod 4755 /usr/local/bin/fixuid && \
29
+ USER=shipitron && \
30
+ GROUP=shipitron && \
31
+ mkdir -p /etc/fixuid && \
32
+ printf "user: $USER\ngroup: $GROUP\n" > /etc/fixuid/config.yml
33
+
34
+ ENV ECR_CREDENTIAL_HELPER_VERSION 0.5.0
35
+ RUN cd /usr/local/bin && \
36
+ wget https://amazon-ecr-credential-helper-releases.s3.us-east-2.amazonaws.com/${ECR_CREDENTIAL_HELPER_VERSION}/linux-amd64/docker-credential-ecr-login && \
37
+ chmod +x docker-credential-ecr-login
38
+
39
+ ENV BUILDKIT_VERSION v0.8.3
40
+ RUN cd /usr/local/bin && \
41
+ wget -nv https://github.com/moby/buildkit/releases/download/${BUILDKIT_VERSION}/buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz && \
42
+ tar --strip-components=1 -zxvf buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz bin/buildctl && \
43
+ chmod +x buildctl && \
44
+ rm -f buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz
45
+
46
+ USER shipitron
47
+ ENV BUILDX_VERSION v0.5.1
48
+ RUN cd /home/shipitron && \
49
+ wget -nv https://github.com/docker/buildx/releases/download/${BUILDX_VERSION}/buildx-${BUILDX_VERSION}.linux-amd64 && \
50
+ mkdir -p ~/.docker/cli-plugins && \
51
+ mv buildx-${BUILDX_VERSION}.linux-amd64 ~/.docker/cli-plugins/docker-buildx && \
52
+ chmod a+x ~/.docker/cli-plugins/docker-buildx
53
+
54
+ USER root
30
55
  ENV USE_BUNDLE_EXEC true
31
56
  ENV BUNDLE_GEMFILE /shipitron/Gemfile
32
57
 
58
+ ENV BUNDLER_VERSION 2.2.21
59
+ RUN gem install bundler -v ${BUNDLER_VERSION} -i /usr/local/lib/ruby/gems/$(ls /usr/local/lib/ruby/gems) --force
60
+
33
61
  WORKDIR /app
34
62
  COPY Gemfile shipitron.gemspec /shipitron/
35
63
  COPY lib/shipitron/version.rb /shipitron/lib/shipitron/
36
64
 
37
- COPY --from=cache /usr/local/bundle /usr/local/bundle
38
- RUN (bundle check || bundle install) && \
39
- git config --global push.default simple
65
+ RUN git config --global push.default simple
40
66
  COPY . /shipitron/
41
- RUN ln -s /shipitron/exe/shipitron /usr/local/bin/shipitron && \
42
- mkdir -p /home/shipitron/.ssh && \
67
+ RUN mkdir -p /home/shipitron/.ssh && \
43
68
  chown shipitron:shipitron /home/shipitron/.ssh && \
44
69
  chmod 700 /home/shipitron/.ssh
45
70
 
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.3-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,18 +18,41 @@ 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.5.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.8.3
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.5.1
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.2.0
48
+ ENV SHIPITRON_VERSION=1.4.0
26
49
 
27
50
  RUN gem install shipitron -v ${SHIPITRON_VERSION} && \
28
51
  mkdir -p /home/shipitron/.ssh && \
29
52
  chown shipitron:shipitron /home/shipitron/.ssh && \
30
53
  chmod 700 /home/shipitron/.ssh
31
54
 
32
- COPY scripts/docker-entrypoint.sh /docker-entrypoint.sh
55
+ COPY scripts/release-entrypoint.sh /docker-entrypoint.sh
33
56
 
34
57
  ENTRYPOINT ["/sbin/tini", "-g", "--", "/docker-entrypoint.sh"]
35
58
  CMD ["help"]
@@ -0,0 +1,70 @@
1
+ FROM ruby:2.7.3-alpine
2
+ LABEL maintainer="Ryan Schlesinger <ryan@outstand.com>"
3
+
4
+ RUN addgroup -S shipitron && \
5
+ adduser -S -G shipitron shipitron && \
6
+ addgroup -g 1101 docker && \
7
+ addgroup shipitron docker
8
+
9
+ RUN apk add --no-cache \
10
+ ca-certificates \
11
+ openssl-dev \
12
+ tini \
13
+ su-exec \
14
+ build-base \
15
+ git \
16
+ git-lfs \
17
+ openssh-client \
18
+ perl \
19
+ bash \
20
+ curl \
21
+ wget \
22
+ jq \
23
+ cmake
24
+
25
+ ENV ECR_CREDENTIAL_HELPER_VERSION 0.5.0
26
+ RUN cd /usr/local/bin && \
27
+ wget https://amazon-ecr-credential-helper-releases.s3.us-east-2.amazonaws.com/${ECR_CREDENTIAL_HELPER_VERSION}/linux-amd64/docker-credential-ecr-login && \
28
+ chmod +x docker-credential-ecr-login
29
+
30
+ ENV BUILDKIT_VERSION v0.8.3
31
+ RUN cd /usr/local/bin && \
32
+ wget -nv https://github.com/moby/buildkit/releases/download/${BUILDKIT_VERSION}/buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz && \
33
+ tar --strip-components=1 -zxvf buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz bin/buildctl && \
34
+ chmod +x buildctl && \
35
+ rm -f buildkit-${BUILDKIT_VERSION}.linux-amd64.tar.gz
36
+
37
+ USER shipitron
38
+ ENV BUILDX_VERSION v0.5.1
39
+ RUN cd /home/shipitron && \
40
+ wget -nv https://github.com/docker/buildx/releases/download/${BUILDX_VERSION}/buildx-${BUILDX_VERSION}.linux-amd64 && \
41
+ mkdir -p ~/.docker/cli-plugins && \
42
+ mv buildx-${BUILDX_VERSION}.linux-amd64 ~/.docker/cli-plugins/docker-buildx && \
43
+ chmod a+x ~/.docker/cli-plugins/docker-buildx
44
+
45
+ USER root
46
+ ENV USE_BUNDLE_EXEC true
47
+ ENV BUNDLE_GEMFILE /shipitron/Gemfile
48
+
49
+ ENV BUNDLER_VERSION 2.2.21
50
+ RUN gem install bundler -v ${BUNDLER_VERSION} -i /usr/local/lib/ruby/gems/$(ls /usr/local/lib/ruby/gems) --force
51
+
52
+ WORKDIR /shipitron
53
+ COPY Gemfile shipitron.gemspec /shipitron/
54
+ COPY lib/shipitron/version.rb /shipitron/lib/shipitron/
55
+ COPY exe/shipitron /shipitron/exe/shipitron
56
+ COPY .git/ /shipitron/
57
+
58
+ RUN bundle install
59
+
60
+ COPY . /shipitron/
61
+ RUN mkdir -p /home/shipitron/.ssh && \
62
+ chown shipitron:shipitron /home/shipitron/.ssh && \
63
+ chmod 700 /home/shipitron/.ssh
64
+
65
+ WORKDIR /app
66
+
67
+ COPY scripts/release-entrypoint.sh /docker-entrypoint.sh
68
+
69
+ ENTRYPOINT ["/sbin/tini", "-g", "--", "/docker-entrypoint.sh"]
70
+ CMD ["help"]
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+ gem 'irb'
5
+ gem 'rspec-buildkite', github: 'outstand/rspec-buildkite', branch: 'error-output'
data/README.md CHANGED
@@ -31,27 +31,65 @@ applications:
31
31
  - Add deploy ref key to `shipitron/<app name>/deploy_ref_key`
32
32
  - `docker run -it --rm -v shipitron.yml:/shipitron/config/shipitron.yml outstand/shipitron:<version> deploy <app>`
33
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
+
34
69
  ## Development
35
70
 
36
- - `docker volume create --name shipitron_fog`
37
- - `./build_dev.sh`
38
- - `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
39
- - `APP_PATH=/path/to/app`
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>` to run client side
41
- - `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
42
- - `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)
71
+ - `desk go`
72
+ - `dev build --pull shipitron`
73
+ - `rspec specs` to run specs
74
+ - Set the application path in the volumes section in `docker-compose.yml`.
75
+ - `shipitron deploy <app>` to run client side
76
+ - `shipitron deploy <app> --simulate-store-deploy` to save the deploy options to S3 and generate deploy id
77
+ - `dev run --rm -v /bin/docker:/bin/docker -v /var/run/docker.sock:/var/run/docker.sock shipitron server_deploy --deploy-id <deploy_id>` to run server side
43
78
 
44
79
  Running a dev version in production:
45
- - `docker push outstand/shipitron:dev`
46
- - Update config to use `shipitron_task: shipitron-dev`
47
- - `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`
80
+ - Ensure `SHIPITRON_STARTED_BY` env var is set for your `shipitron-staging` task def
81
+ - `docker build --pull -t outstand/shipitron:staging -f Dockerfile.staging .`
82
+ - `docker push outstand/shipitron:staging`
83
+ - Update config to use `shipitron_task: shipitron-staging` and `outstand/shipitron:staging`
84
+ - `shipitron deploy <app> --debug`
48
85
 
49
86
  To release a new version:
50
87
  - Update the version number in `version.rb` and `Dockerfile.release` and commit the result.
51
- - `./build_dev.sh`
52
- - `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`
53
- - `docker build -t outstand/shipitron:VERSION -f Dockerfile.release .`
54
- - `docker push outstand/shipitron:VERSION`
55
- - `docker tag outstand/shipitron:VERSION outstand/shipitron:latest`
88
+ - `dev build --pull shipitron`
89
+ - `release_gem`
90
+ - `VERSION=<version>`
91
+ - `docker build -t outstand/shipitron:$VERSION -f Dockerfile.release .`
92
+ - `docker push outstand/shipitron:$VERSION`
93
+ - `docker tag outstand/shipitron:$VERSION outstand/shipitron:latest`
56
94
  - `docker push outstand/shipitron:latest`
57
95
  - Update ECS task definition with new version