shipitron 0.4.1 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 428064c728cfd00ba1807fa1a655c1649a78323ea98f85be6f71baf6ae939892
4
- data.tar.gz: facdb618cffd2c41256e40c436daf6fc6fb906073919959a9c21982dd0c95bee
3
+ metadata.gz: feb18a95f97617bac70d81fa89272203c5ee7aafc2e13f83f0f26bfd12bfbbd8
4
+ data.tar.gz: 66c40b51b8802ea914d40e8a5738066c1d3789c47ea92fcdb346e00bbf9de87c
5
5
  SHA512:
6
- metadata.gz: 88cf5a283cd744f88721e63f908c12964bfa2831fc51890d98dd5e28446c2e83a03c51bdec3cf2fa6c04acb5e234db4e3451a1e38c795d70e7ead705ac51b0db
7
- data.tar.gz: e2a23cbc284326a66f49d60f7823ed5151e702b63e0bc9c111564a48649bdce7f9e8f18dd07bf7e6bc947b0272e7dadabb984efda647e958cb84e1ceefd4a0b9
6
+ metadata.gz: 544be4870e87d518c4ac12cc0deb607921ca8f1972b970981d5e9a2ad6b00df43caed53cce5faed0627a088d1036ff8d59fd600780fed8261b2c0906b979abca
7
+ data.tar.gz: d935dfb8223048b941e5c77819b3e22ba9676c9f8df88ef0f97940efaf7db6772659de84e23e4755c7274032329b324c992909198d458739f10c254d2af51e4c
data/Dockerfile CHANGED
@@ -16,24 +16,7 @@ RUN addgroup -S shipitron && \
16
16
  ENV GOSU_VERSION 1.10
17
17
  ENV DUMB_INIT_VERSION 1.2.0
18
18
 
19
- RUN apk add --no-cache ca-certificates gnupg openssl && \
20
- mkdir -p /tmp/build && \
21
- cd /tmp/build && \
22
- gpg --keyserver pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 && \
23
- wget -O gosu "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64" && \
24
- wget -O gosu.asc "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64.asc" && \
25
- gpg --verify gosu.asc && \
26
- chmod +x gosu && \
27
- cp gosu /bin/gosu && \
28
- wget https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_amd64 && \
29
- wget https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/sha256sums && \
30
- grep dumb-init_${DUMB_INIT_VERSION}_amd64$ sha256sums | sha256sum -c && \
31
- chmod +x dumb-init_${DUMB_INIT_VERSION}_amd64 && \
32
- cp dumb-init_${DUMB_INIT_VERSION}_amd64 /bin/dumb-init && \
33
- cd /tmp && \
34
- rm -rf /tmp/build && \
35
- apk del gnupg && \
36
- rm -rf /root/.gnupg
19
+ RUN apk add --no-cache ca-certificates openssl tini su-exec
37
20
 
38
21
  RUN apk add --no-cache \
39
22
  build-base \
@@ -63,6 +46,5 @@ RUN ln -s /shipitron/exe/shipitron /usr/local/bin/shipitron && \
63
46
 
64
47
  COPY scripts/docker-entrypoint.sh /docker-entrypoint.sh
65
48
 
66
- ENV DUMB_INIT_SETSID 0
67
- ENTRYPOINT ["/docker-entrypoint.sh"]
49
+ ENTRYPOINT ["/sbin/tini", "-g", "--", "/docker-entrypoint.sh"]
68
50
  CMD ["help"]
@@ -40,7 +40,7 @@ RUN apk add --no-cache \
40
40
 
41
41
  WORKDIR /app
42
42
 
43
- ENV SHIPITRON_VERSION=0.4.1
43
+ ENV SHIPITRON_VERSION=1.0.0
44
44
 
45
45
  RUN gem install shipitron -v ${SHIPITRON_VERSION} && \
46
46
  mkdir -p /home/shipitron/.ssh && \
data/README.md CHANGED
@@ -36,14 +36,14 @@ applications:
36
36
  - `./build_dev.sh`
37
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
38
  - `APP_PATH=/path/to/app`
39
- - `docker run -it --rm -v $(pwd):/shipitron -v $APP_PATH:/app outstand/shipitron:dev deploy <app>` to run client side
40
- - `docker run -it --rm -v $(pwd):/shipitron -v $APP_PATH:/app outstand/shipitron:dev deploy <app> --simulate` to get the arguments for `server_deploy` below
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
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)
42
42
 
43
43
  Running a dev version in production:
44
44
  - `docker push outstand/shipitron:dev`
45
45
  - Update config to use `shipitron_task: shipitron-dev`
46
- - `docker run -it --rm -v $(pwd):/shipitron -v $APP_PATH:/app outstand/shipitron:dev deploy <app> --debug`
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`
47
47
 
48
48
  To release a new version:
49
49
  - Update the version number in `version.rb` and `Dockerfile.release` and commit the result.
@@ -6,7 +6,7 @@ require 'shipitron/smash'
6
6
 
7
7
  module Shipitron
8
8
  CONFIG_FILE = 'shipitron/config.yml'.freeze
9
- SECRETS_FILE = 'shipitron/secrets.yml'.freeze
9
+ SECRETS_FILE = '~/.config/shipitron/secrets.yml'.freeze
10
10
 
11
11
  class << self
12
12
  def config_file
@@ -18,7 +18,7 @@ module Shipitron
18
18
  end
19
19
 
20
20
  def config
21
- @config ||= Smash.load(config_file).merge(secrets)
21
+ @config ||= Smash.load(Pathname.new(config_file).expand_path.to_s).merge(secrets)
22
22
  rescue ArgumentError
23
23
  Logger.warn "Config file '#{config_file}' does not exist"
24
24
  @config = secrets
@@ -33,7 +33,7 @@ module Shipitron
33
33
  end
34
34
 
35
35
  def secrets
36
- @secrets ||= Smash.load(secrets_file)
36
+ @secrets ||= Smash.load(Pathname.new(secrets_file).expand_path.to_s)
37
37
  rescue ArgumentError
38
38
  Logger.warn "Secrets file '#{secrets_file}' does not exist"
39
39
  @secrets = Smash.new
@@ -11,7 +11,7 @@ module Shipitron
11
11
 
12
12
  desc 'deploy <app>', 'Deploys the app'
13
13
  option :config_file, default: 'shipitron/config.yml'
14
- option :secrets_file, default: 'shipitron/secrets.yml'
14
+ option :secrets_file, default: '~/.config/shipitron/secrets.yml'
15
15
  option :debug, type: :boolean, default: false
16
16
  option :simulate, type: :boolean, default: false
17
17
  def deploy(app)
@@ -49,7 +49,7 @@ module Shipitron
49
49
  option :ecs_service_templates, type: :array, default: []
50
50
  option :build_script, default: nil
51
51
  option :post_builds, type: :array
52
- option :secrets_file, default: 'shipitron/secrets.yml'
52
+ option :secrets_file, default: '~/.config/shipitron/secrets.yml'
53
53
  option :debug, type: :boolean, default: false
54
54
  def server_deploy
55
55
  setup(
@@ -93,7 +93,7 @@ module Shipitron
93
93
  option :service_count, type: :numeric, default: 0
94
94
  option :task_def_dir, default: 'shipitron/ecs_task_defs'
95
95
  option :service_dir, default: 'shipitron/ecs_services'
96
- option :secrets_file, default: 'shipitron/secrets.yml'
96
+ option :secrets_file, default: '~/.config/shipitron/secrets.yml'
97
97
  option :debug, type: :boolean, default: false
98
98
  def bootstrap(app)
99
99
  setup(
@@ -1,3 +1,3 @@
1
1
  module Shipitron
2
- VERSION = '0.4.1'
2
+ VERSION = '1.0.0'
3
3
  end
@@ -1,4 +1,4 @@
1
- #!/bin/dumb-init /bin/sh
1
+ #!/bin/sh
2
2
  set -e
3
3
 
4
4
  if [ -n "$USE_BUNDLE_EXEC" ]; then
@@ -8,7 +8,7 @@ else
8
8
  fi
9
9
 
10
10
  if ${BINARY} help "$1" 2>&1 | grep -q "shipitron $1"; then
11
- set -- gosu shipitron ${BINARY} "$@"
11
+ set -- su-exec shipitron ${BINARY} "$@"
12
12
 
13
13
  if [ -n "$FOG_LOCAL" ]; then
14
14
  chown -R shipitron:shipitron /fog
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shipitron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Schlesinger
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-29 00:00:00.000000000 Z
11
+ date: 2018-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -346,7 +346,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
346
346
  version: '0'
347
347
  requirements: []
348
348
  rubyforge_project:
349
- rubygems_version: 2.7.4
349
+ rubygems_version: 2.7.6
350
350
  signing_key:
351
351
  specification_version: 4
352
352
  summary: A deployment tool for use with Docker and ECS.