orchestration 0.5.2 → 0.5.3

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: a8525fb5a3f6bd07564ec80a6f2663f1ab3157f7e4ad7e3db411844e36ae42d1
4
- data.tar.gz: 7828198b463b1e40a0f4b085efe848b742aa04dded4278df485706c358eed618
3
+ metadata.gz: 90d0d9e479a7b4797751a7a6b457c613813b2c8d2df9a6b17bb11c8b26c379ff
4
+ data.tar.gz: 7812364e32a9f3289fea6e86591b46d055cfe35ab13244932bf23b8597b2f0c8
5
5
  SHA512:
6
- metadata.gz: 2ca10bebdc3fc34cda1491dfa694386b591c0f1122c1a2d4a1c16273a6f936cdf49aa7b97b9b91b1ab271ff41b0b881a9a736956ff5d3709c07ee42da96030ea
7
- data.tar.gz: 6c86b19c30c5265ed9ad37af22ffab8176c88e815918a62278b2cfe82d4ec9cb4f4237f2202e88423ea1580a112058231e5f5005a4e1c5cf63cf7809e105a3d3
6
+ metadata.gz: ee3ebbeb61d6be44d819067fb0dfcc4db27ee3a4c5c14510ca5b7313838ce853568365aebe4b7593550738834fadf5f34564c6db5bc9404669aa5f9b2e3dc4b7
7
+ data.tar.gz: ec9cfbd34b8909e7ff72887301423739c02ec96d86e2e6bece4f25cc27738fe4de6d8486d28e02e72103fadfe408b7b1cc4e61fc8b2b45060352e1ac1a45137f
data/README.md CHANGED
@@ -1,13 +1,5 @@
1
1
  # Orchestration
2
2
 
3
- ```
4
- I've got two tickets to the game
5
- It'd be great if I could take you to it this Sunday
6
- --Nickelback
7
- ```
8
-
9
- ## Overview
10
-
11
3
  _Orchestration_ aims to provide a convenient and consistent process for working with _Rails_ and _Docker_ without obscuring underlying components.
12
4
 
13
5
  At its core _Orchestration_ is simply a `Makefile` and a set of `docker-compose.yml` files with sensible, general-purpose default settings. Users are encouraged to tailor the generated build-out to suit their application; once the build-out has been generated it belongs to the application.
@@ -35,7 +27,7 @@ The below screenshot demonstrates _Orchestration_ being installed in a brand new
35
27
  Add _Orchestration_ to your Gemfile:
36
28
 
37
29
  ```ruby
38
- gem 'orchestration', '~> 0.5.2'
30
+ gem 'orchestration', '~> 0.5.3'
39
31
  ```
40
32
 
41
33
  Install:
@@ -143,7 +135,20 @@ Note that `git archive` is used to generate the build context. Any uncommitted c
143
135
  make build
144
136
  ```
145
137
 
146
- See [build environment](#build-environment) for more details.
138
+ The `include` option can also be passed to provide a manifest file. Any files listed in this file will also be built into the _Docker_ image. Files **must** be located within the project directory.
139
+
140
+ ```bash
141
+ make build include=manifest.txt
142
+ ```
143
+
144
+ ```bash
145
+ # manifest.txt
146
+ doc/api/swagger.json
147
+ doc/api/soap.xml
148
+ doc/api/doc.html
149
+ ```
150
+
151
+ See also [build environment](#build-environment) if you use gems hosted on private _GitHub_/_Bitbucket_ repositories.
147
152
 
148
153
  #### Push latest image
149
154
 
@@ -16,7 +16,7 @@ module Orchestration
16
16
  end
17
17
 
18
18
  def run
19
- return echo_missing unless @service.configuration.configured?
19
+ return unless @service.configuration.configured?
20
20
 
21
21
  echo_start
22
22
  success = attempt_connection
@@ -39,14 +39,6 @@ module Orchestration
39
39
  false
40
40
  end
41
41
 
42
- def echo_missing
43
- @terminal.write(
44
- @service_name.to_sym,
45
- "#{@service.configuration.error} (skipping)",
46
- :error
47
- )
48
- end
49
-
50
42
  def echo_start
51
43
  @terminal.write(@service_name.to_sym, '', :status)
52
44
  end
@@ -87,17 +87,19 @@ restore_env:=( \
87
87
 
88
88
  key_chars:=[a-zA-Z0-9_]
89
89
  censored:=**********
90
- censor=sed 's/\(^${key_chars}*$(1)${key_chars}*\)=\(.*\)$$/\1=${censored}/'
91
- censor_urls:=sed 's|\([a-zA-Z0-9_+]\+://.*:\).*\(@.*\)$$|\1${censored}\2|'
92
- format_env:=$(call censor,SECRET) | \
93
- $(call censor,PASSWORD) | \
94
- $(call censor,TOKEN) | \
95
- $(call censor,PRIVATE) | \
96
- $(call censor,KEY) | \
97
- ${censor_urls} | \
98
- sed 's/\(^[a-zA-Z0-9_]\+\)=/${blue}\1${reset}=/' | \
99
- sed 's/^/ /' | \
100
- sed 's/=\(.*\)$$/=${yellow}\1${reset}/'
90
+ censor=s/\(^${key_chars}*$(1)${key_chars}*\)=\(.*\)$$/\1=${censored}/
91
+ censor_urls:=s|\([a-zA-Z0-9_+]\+://.*:\).*\(@.*\)$$|\1${censored}\2|
92
+ format_env:=sed '$(call censor,SECRET); \
93
+ $(call censor,TOKEN); \
94
+ $(call censor,PRIVATE); \
95
+ $(call censor,KEY); \
96
+ $(censor_urls); \
97
+ /^\s*$$/d; \
98
+ /^\s*\#/d; \
99
+ s/\(^[a-zA-Z0-9_]\+\)=/${blue}\1${reset}=/; \
100
+ s/^/ /; \
101
+ s/=\(.*\)$$/=${yellow}\1${reset}/' | \
102
+ sort
101
103
 
102
104
  fail=( \
103
105
  $(call printraw,' ${cross}') ; \
@@ -74,7 +74,9 @@ else
74
74
  compose_project_name = ${project_base}
75
75
  endif
76
76
 
77
- compose_base=env HOST_UID=$(shell id -u) \
77
+ compose_base=env -i \
78
+ PATH=$(PATH) \
79
+ HOST_UID=$(shell id -u) \
78
80
  DOCKER_ORGANIZATION="${docker_organization}" \
79
81
  DOCKER_REPOSITORY="${docker_repository}" \
80
82
  COMPOSE_PROJECT_NAME="${compose_project_name}" \
@@ -107,7 +109,7 @@ ifndef network
107
109
  start: network := ${compose_project_name}_default
108
110
  endif
109
111
  start: _clean-logs
110
- @$(call print,'${yellow}Starting containers${reset} ...')
112
+ @$(call print,'${yellow}Starting ${cyan}${env}${yellow} containers${reset} ...')
111
113
  ifeq (${env},$(filter ${env},test development))
112
114
  @${compose} up --detach --force-recreate --renew-anon-volumes --remove-orphans ${services} ${log} || ${fail}
113
115
  @[ -n '${sidecar}' ] && \
@@ -138,7 +140,7 @@ start-<%= service %>:
138
140
  .PHONY: stop
139
141
  stop: network := ${compose_project_name}_default
140
142
  stop:
141
- @$(call print,'${yellow}Stopping containers${reset} ...')
143
+ @$(call print,'${yellow}Stopping ${cyan}${env}${yellow} containers${reset} ...')
142
144
  @if docker ps --format "{{.ID}}" | grep -q $(shell hostname) ; \
143
145
  then \
144
146
  ( docker network disconnect ${network} $(shell hostname) ${log} || : ) \
@@ -171,7 +173,7 @@ serve:
171
173
  then ( \
172
174
  $(call println,'${yellow}Environment${reset}: ${green}${env_file}${reset}') && \
173
175
  cat '${env_file}' | ${format_env} && \
174
- $(call println,'') \
176
+ $(call printrawln,'') \
175
177
  ) ; \
176
178
  fi
177
179
  ${rails}
@@ -184,7 +186,7 @@ console:
184
186
  then ( \
185
187
  $(call println,'${yellow}Environment${reset}: ${green}${env_file}${reset}') && \
186
188
  cat '${env_file}' | ${format_env} && \
187
- $(call println,'') \
189
+ $(call printrawln,'') \
188
190
  ) ; \
189
191
  fi
190
192
  ${rails} console
@@ -210,7 +212,7 @@ endif
210
212
  dump:
211
213
  ifndef verbose
212
214
  @$(call println)
213
- @$(call println,'${yellow}Captured${reset} ${green}stdout${reset} ${yellow}and${reset} ${red}stderr${reset} ${yellow}log data${reset}:')
215
+ @$(call println,'${yellow}Captured${reset} ${green}stdout${reset} ${yellow}and${reset} ${red}stderr${reset} ${yellow}log data [${cyan}${env}${yellow}]${reset}:')
214
216
  @$(call println)
215
217
  @echo
216
218
  @test -f '${stdout}' && ( \
@@ -316,7 +318,8 @@ wait-listener:
316
318
  ### Docker build commands ###
317
319
 
318
320
  .PHONY: build
319
- build: context = ${orchestration_dir}/.build/context.tar
321
+ build: build_dir = ${orchestration_dir}/.build
322
+ build: context = ${build_dir}/context.tar
320
323
  build: check-local-changes
321
324
  @$(call print,'${yellow}Preparing build context from${reset} ${cyan}${git_branch}:${git_version}${reset} ... ')
322
325
  @mkdir -p ${orchestration_dir}/.build ${log} || ${fail}
@@ -330,6 +333,16 @@ else
330
333
  @tar -cvf '${context}' . ${log} || ${fail}
331
334
  endif
332
335
  @$(call printrawln,'${green}complete.${reset} ${tick}')
336
+ ifdef include
337
+ @$(call print,'${yellow}Including files from:${reset} ${cyan}${include}${reset} ...')
338
+ @(while read line; do \
339
+ export line; \
340
+ include_dir="${build_dir}/$$(dirname "$${line}")/" && \
341
+ mkdir -p "$${include_dir}" && cp "$${line}" "$${include_dir}" \
342
+ && (cd '${orchestration_dir}/.build/' && tar rf 'context.tar' "$${line}"); \
343
+ done < '${include}') ${log} || ${fail}
344
+ @$(call printrawln,' ${green}complete.${reset} ${tick}')
345
+ endif
333
346
  ifdef sidecar
334
347
  # Assume we are in a line-buffered environment (e.g. Jenkins)
335
348
  @$(call println,'${yellow}Building image${reset} ...')
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Orchestration
4
- VERSION = '0.5.2'
4
+ VERSION = '0.5.3'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: orchestration
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bob Farrell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-23 00:00:00.000000000 Z
11
+ date: 2020-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: database_url