shipitron 1.2.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
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