1
1
# Makeomatic deploy tools
2
2
3
3
Provides convenient deploy tools, which automate publishing of docker images, documentation & testing
4
+ ESM-only now
4
5
5
6
## Install
6
7
7
8
` npm i @makeomatic/deploy -D `
8
9
9
- ## Utility functions
10
-
11
- ``` js
12
- const Promise = require (' bluebird' );
13
- const { inspectPromise } = require (' @makeomatic/deploy' );
14
-
15
- // simple test cases that illustrate inspectPromise utility
16
- describe (' Promise verification' , () => {
17
- it (' rejects request' , () => {
18
- return Promise
19
- .reject (new Error (' some great error' ))
20
- .reflect ()
21
- .then (inspectPromise (false ))
22
- .then ((err ) => {
23
- assert .equal (err .message , ' some great error' );
24
- return null ;
25
- });
26
- });
27
-
28
- it (' promise does not reject' , () => {
29
- return Promise
30
- .resolve (' banana' )
31
- .reflect ()
32
- .then (inspectPromise ())
33
- .then ((response ) => {
34
- assert .equal (response, ' banana' );
35
- return null ;
36
- });
37
- });
38
- });
39
- ```
40
-
41
10
## Cli
42
11
43
12
``` bash
@@ -60,27 +29,39 @@ Options:
60
29
``` bash
61
30
bin/cli.js docker
62
31
32
+ manages docker lifecycle
33
+
63
34
Commands:
64
- build builds docker image for a project
65
- push pushes previously build docker images
66
- release performs build, tagging and push in one operation
67
- tag tags built docker image
35
+ cli.mjs docker build builds docker image for a project
36
+ cli.mjs docker push pushes previously build docker images
37
+ cli.mjs docker release performs build, tagging and push in one operation
38
+ cli.mjs docker tag tags built docker image
68
39
69
40
Options:
70
- --node, -n node version to use when building [default: " 7.8.0" ]
71
- --env, -E node environment to build for [default: " production" ]
72
- --project, -p project name where this is used
73
- [default: " makeomatic-deploy" ]
74
- --version, -v version of the project to build [default: " 1.5.0" ]
75
- --pkg package json path
76
- [default: " /Users/vitaly/projects/makeomatic-deploy/package.json" ]
77
- --help Show help [boolean]
78
- --repository, --repo docker repository to use [default: " makeomatic" ]
79
- --include_node, --in includes node version in the tag
41
+ -n, --node node version to use when building
42
+ [string] [default: " 20" ]
43
+ -E, --env node environment to build for
44
+ [default: " production" ]
45
+ -p, --project project name where this is used
46
+ [default: " deploy" ]
47
+ --docker_build_args, --dba docker build args
48
+ --docker_flags, --df docker build flags [array]
49
+ --repository, --repo docker repository to use
50
+ [default: " makeomatic" ]
51
+ -v, --version version of the project to build
52
+ [default: " 0.0.0-development" ]
53
+ --pkg package json path
54
+ [default: " /Users/vitaly/projects/@makeomatic/deploy/package.json" ]
55
+ --include_node, --in includes node version in the tag
80
56
[boolean] [default: true]
81
- --docker_file, -f path to docker file [string] [default: " ./Dockerfile" ]
82
- --extra_tags, -T list of additional tags for the image
57
+ --tag_latest, --tl adds :latest tag to the image
58
+ [boolean] [default: false]
59
+ -f, --docker_file path to docker file
60
+ [string] [default: " ./Dockerfile" ]
61
+ -T, --extra_tags list of additional tags for the image
83
62
[array] [default: []]
63
+ -c , --docker_context docker build context path [default: " ." ]
64
+ --help Show help [boolean]
84
65
` ` `
85
66
86
67
# # Test
@@ -91,61 +72,91 @@ cli.js test <command>
91
72
performs tests in docker
92
73
93
74
Commands:
94
- cli.js test auto-compose prepares docker-compose file based on config
95
- cli.js test compose installs compose on the system
96
- cli.js test init adds basic files for testing
97
- cli.js test run performs testing
75
+ cli.mjs test compose prepares docker-compose file based on config
76
+ cli.mjs test compose installs compose on the system
77
+ cli.mjs test run performs testing
98
78
99
79
Options:
100
- --node , -n node version to use when building
101
- [default: " 9.3.0 " ]
102
- --env , -E node environment to build for
80
+ -n , --node node version to use when building
81
+ [string] [default: " 20 " ]
82
+ -E , --env node environment to build for
103
83
[default: " production" ]
104
- --project , -p project name where this is used
84
+ -p , --project project name where this is used
105
85
[default: " deploy" ]
106
- --repository, --repo docker repository to use
86
+ --docker_build_args, --dba docker build args
87
+ --docker_flags, --df docker build flags [array]
88
+ --repository, --repo docker repository to use
107
89
[default: " makeomatic" ]
108
- --version , -v version of the project to build
90
+ -v , --version version of the project to build
109
91
[default: " 0.0.0-development" ]
110
- --pkg package json path
92
+ --pkg package json path
111
93
[default: " /Users/vitaly/projects/@makeomatic/deploy/package.json" ]
112
- --docker_compose docker-compose file for testing
94
+ --docker_compose docker-compose file for testing
113
95
[string] [default: " ./test/docker-compose.yml" ]
114
- --auto_compose [boolean] [default: false]
115
- --tester_flavour [string] [default: " tester" ]
116
- --extras any extras for tester docker container, will
117
- be merged [string] [default: {}]
118
- --services enable listed services
119
- [array] [choices: " redis" , " redisCluster" , " redisSentinel" , " postgres" ,
120
- " rabbitmq" ]
121
- --docker_compose_version, --dcv docker-compose version to use
96
+ --docker_compose_multi, --dcm docker-compose files that will be started
97
+ in provided order [array] [default: []]
98
+ --parallel run test suites in parallel
99
+ [number] [default: 1]
100
+ -s , --sort sort tests in alphabetical order and run
101
+ sequentially. disables ` parallel` mode
102
+ [boolean] [default: false]
103
+ --auto_compose [boolean] [default: false]
104
+ --auto_compose_version, --acv [string] [default: " 3" ]
105
+ --with_local_compose also include services defined in the dock
106
+ er_compose file. Senseless w/o auto_compo
107
+ se= true [boolean] [default: false]
108
+ --tester_flavour [string] [default: " tester" ]
109
+ --extras any extras for tester docker container, w
110
+ ill be merged [string] [default: {}]
111
+ --services enable listed services
112
+ [array] [choices: " redis" , " redisCluster" , " redisSentinel" , " postgres" , " rabbi
113
+ tmq" , " elasticsearch" , " cassandra" , " couchdb" ]
114
+ --docker_compose_version, --dcv docker-compose version to use
122
115
[default: " 1.11.2" ]
123
- --docker_compose_force, --dcf forces to install local copy of
124
- docker-compose in case of version mismatch
116
+ --docker_compose_force, --dcf forces to install local copy of docker-co
117
+ mpose in case of version mismatch
125
118
[boolean] [default: false]
126
- --tests , -t glob for test files
119
+ -t , --tests glob for test files
127
120
[string] [default: " ./test/suites/**/*.js" ]
128
- --no_cleanup , -C cleanup automatically
121
+ -C , --no_cleanup cleanup automatically
129
122
[boolean] [default: false]
130
- --wait_before_tests, --sleep how much time to wait after docker-compose up
131
- [number] [default: 0]
132
- --report_dir report dir for coverage
123
+ --wait_before_tests, --sleep how much time to wait after docker-compos
124
+ e up [number] [default: 0]
125
+ --report_dir report dir for coverage
133
126
[default: " ./coverage" ]
134
- --test_framework test framework to use [default: " mocha" ]
135
- --coverage whether to upload coverage or not
136
- [boolean] [default: false]
137
- --root binary root path on the tester
127
+ --test_framework test framework to use [default: " mocha" ]
128
+ --root binary root path on the tester
138
129
[default: " /src/node_modules/.bin" ]
139
- --rebuild , -r list modules to rebuild during testing
130
+ -r , --rebuild list modules to rebuild during testing
140
131
[array] [default: []]
141
- --on_fail, --fail arbitrary code to execute on test failure
142
- --custom_run custom run command for the tests
143
- --gyp run nody-gyp-rebuild before tests
132
+ --on_fail, --fail arbitrary code to execute on test failure
133
+ --custom_run custom run command for the tests
134
+ --gyp run nody-gyp-rebuild before tests
144
135
[boolean] [default: false]
145
- --arbitrary_exec arbitrary commands to exec in docker tester
146
- [array] [default: []]
147
- --pre pre commands to run [array] [default: []]
148
- --nycCoverage set to --no-nycCoverage to disable it
149
- [boolean] [default: true]
150
- --help Show help [boolean]
136
+ --arbitrary_exec arbitrary commands to exec in docker test
137
+ er [array] [default: []]
138
+ --pre pre commands to run [array] [default: []]
139
+ --test_args extra arguments for test framework
140
+ [string] [default: " " ]
141
+ --pull force pull docker containers
142
+ [boolean] [default: false]
143
+ --post_exec commands to exec in docker tester after a
144
+ ll tests finished [array] [default: []]
145
+ --http uses http exec instead of docker exec to
146
+ run tests [boolean] [default: false]
147
+ --mutagen-dir custom mutagen dir
148
+ [default: " /Users/vitaly/projects/@makeomatic/deploy" ]
149
+ --mutagen-working-dir custom mutagen working dir
150
+ --mutagen-volume-name shared mutagen volume name
151
+ [string] [default: " makeomatic-deploy-code" ]
152
+ --mutagen-volume-external set as external to avoid recreating each
153
+ time [boolean] [default: false]
154
+ --exec-user, --euser user to run setup commands with [number]
155
+ --test-user, --tuser user to run test commands with [number]
156
+ --in-one, --in_one runs all tests in 1 test runner
157
+ [boolean] [default: false]
158
+ --env-file, --env_file .env file for docker-compose [string]
159
+ --only-prepare creates containers but doesn' t run the te
160
+ sts [boolean] [default: false]
161
+ --help Show help [boolean]
151
162
```
0 commit comments