devup 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +21 -2
- data/Gemfile.lock +4 -2
- data/README.md +79 -11
- data/demo.gif +0 -0
- data/devup.gemspec +2 -0
- data/exe/devup +1 -1
- data/lib/devup.rb +3 -5
- data/lib/devup/boot.rb +2 -0
- data/lib/devup/dotenv.rb +2 -0
- data/lib/devup/environment.rb +9 -4
- data/lib/devup/version.rb +1 -1
- metadata +20 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 16b7a8648ef05f7206cc02900450f8f303fc948a0976ac959472451eeef1988f
|
4
|
+
data.tar.gz: a58834288dcd48d1cde4e353f1a77fb40b15419751896bdd7680b71be64a7266
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 340f23ba29e0cd7e9c187f3ddb20d5e7c825503c5095fd4e3acd244ae2f714f89c2cfe636533207391292685244f4459b70af87a09ad82e7e8b3d9e70639aead
|
7
|
+
data.tar.gz: d596434a6a8450bf01b433a2f2e4c3abbed3f465046463954595badb82468fabd0f3fc6479d0fe9935dc1bbd48b246e11aabd723251b81b2d288ff7d103b822c
|
data/.travis.yml
CHANGED
@@ -1,11 +1,12 @@
|
|
1
|
+
env:
|
2
|
+
matrix:
|
3
|
+
- BUNDLER_VERSION=2.1.4
|
1
4
|
language: ruby
|
2
5
|
cache: bundler
|
3
6
|
rvm:
|
4
7
|
- 2.7.1
|
5
8
|
services:
|
6
9
|
- docker
|
7
|
-
env:
|
8
|
-
- BUNDLER_VERSION=2.1.4
|
9
10
|
before_install:
|
10
11
|
- gem install bundler -v $BUNDLER_VERSION
|
11
12
|
bundler_args: "--jobs=3 --retry=3"
|
@@ -18,3 +19,21 @@ deploy:
|
|
18
19
|
tags: true
|
19
20
|
repo: sergio-fry/devup
|
20
21
|
skip_cleanup: 'true'
|
22
|
+
|
23
|
+
jobs:
|
24
|
+
include:
|
25
|
+
- stage: test
|
26
|
+
name: RSpec
|
27
|
+
before_script:
|
28
|
+
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64
|
29
|
+
> ./cc-test-reporter
|
30
|
+
- chmod +x ./cc-test-reporter
|
31
|
+
- "./cc-test-reporter before-build"
|
32
|
+
script:
|
33
|
+
- bundle exec rake spec
|
34
|
+
after_script:
|
35
|
+
- "./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT"
|
36
|
+
- stage: test
|
37
|
+
name: Lint
|
38
|
+
script:
|
39
|
+
- bundle exec standardrb
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
devup (0.
|
4
|
+
devup (0.2.0)
|
5
|
+
dotenv
|
5
6
|
|
6
7
|
GEM
|
7
8
|
remote: https://rubygems.org/
|
@@ -10,6 +11,7 @@ GEM
|
|
10
11
|
byebug (11.1.3)
|
11
12
|
diff-lcs (1.3)
|
12
13
|
docile (1.3.2)
|
14
|
+
dotenv (2.7.5)
|
13
15
|
jaro_winkler (1.5.4)
|
14
16
|
json (2.3.0)
|
15
17
|
parallel (1.19.1)
|
@@ -42,7 +44,7 @@ GEM
|
|
42
44
|
rubocop-performance (1.5.2)
|
43
45
|
rubocop (>= 0.71.0)
|
44
46
|
ruby-progressbar (1.10.1)
|
45
|
-
simplecov (0.
|
47
|
+
simplecov (0.16.1)
|
46
48
|
docile (~> 1.1)
|
47
49
|
json (>= 1.8, < 3)
|
48
50
|
simplecov-html (~> 0.10.0)
|
data/README.md
CHANGED
@@ -1,28 +1,96 @@
|
|
1
|
-
#
|
1
|
+
# DevUp!
|
2
2
|
|
3
|
-
|
3
|
+
[![Travis (.com) branch](https://img.shields.io/travis/com/sergio-fry/devup/master)](https://travis-ci.com/github/sergio-fry/devup)
|
4
|
+
[![Gem](https://img.shields.io/gem/v/devup)](https://rubygems.org/gems/devup)
|
5
|
+
[![Code Climate coverage](https://img.shields.io/codeclimate/coverage/sergio-fry/devup)](https://codeclimate.com/github/sergio-fry/devup)
|
6
|
+
[![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability/sergio-fry/devup)](https://codeclimate.com/github/sergio-fry/devup)
|
7
|
+
[![Gem](https://img.shields.io/gem/dt/devup)](https://rubygems.org/gems/devup)
|
4
8
|
|
5
|
-
|
9
|
+
**DevUp!** is a tool to run dev dependencies. It builds ENV vars with dynamic exposed ports for services defined in a docker-compose.yml to access from application.
|
10
|
+
|
11
|
+
![demo](demo.gif)
|
6
12
|
|
7
13
|
## Installation
|
8
14
|
|
9
|
-
|
15
|
+
$ gem install devup
|
16
|
+
|
17
|
+
## Usage
|
18
|
+
|
19
|
+
|
20
|
+
Create a docker-compose.yml with app dependencies like:
|
21
|
+
|
22
|
+
```yaml
|
23
|
+
version: '3'
|
24
|
+
|
25
|
+
services:
|
26
|
+
postgres:
|
27
|
+
image: postgres
|
28
|
+
ports:
|
29
|
+
- "5432"
|
30
|
+
```
|
31
|
+
|
32
|
+
Add devup/dotenv to your Gemfile:
|
33
|
+
|
34
|
+
gem "devup"
|
35
|
+
|
36
|
+
For each service from docker-compose.yml **DevUp!** will export ENV variable like
|
37
|
+
|
38
|
+
POSTGRES_HOST=0.0.0.0
|
39
|
+
POSTGRES_PORT=5432
|
40
|
+
|
41
|
+
### Rails
|
42
|
+
|
43
|
+
|
44
|
+
Update your database.yml to use ENV:
|
45
|
+
|
46
|
+
```yaml
|
47
|
+
default: &default
|
48
|
+
adapter: postgresql
|
49
|
+
encoding: unicode
|
50
|
+
host: <%= ENV.fetch("POSTGRES_HOST") %>
|
51
|
+
port: <%= ENV.fetch("POSTGRES_PORT") %>
|
52
|
+
username: postgres
|
53
|
+
password:
|
54
|
+
|
55
|
+
development:
|
56
|
+
<<: *default
|
57
|
+
database: development
|
58
|
+
|
59
|
+
test:
|
60
|
+
<<: *default
|
61
|
+
database: test
|
62
|
+
```
|
63
|
+
|
64
|
+
|
65
|
+
You are ready to start rails
|
66
|
+
|
67
|
+
$ bundle exec rake db:create db:migrate
|
68
|
+
$ bundle exec rails server
|
69
|
+
|
70
|
+
|
71
|
+
### Without Rails
|
72
|
+
|
10
73
|
|
11
74
|
```ruby
|
12
|
-
|
75
|
+
require "devup"
|
76
|
+
require "sequel"
|
77
|
+
|
78
|
+
DB = Sequel.connect("postgres://postgres@#{ENV.fetch( "POSTGRES_HOST" )}:#{ENV.fetch("POSTGRES_PORT")}/database_name")
|
13
79
|
```
|
14
80
|
|
15
|
-
And then execute:
|
16
81
|
|
17
|
-
|
82
|
+
### Without Ruby (PHP, nodejs, Java, ...)
|
18
83
|
|
19
|
-
|
84
|
+
Start up services
|
20
85
|
|
21
|
-
$
|
86
|
+
$ devup
|
22
87
|
|
23
|
-
|
88
|
+
Load ENV vars from generated .env.services
|
89
|
+
|
90
|
+
$ source .env.services
|
91
|
+
|
92
|
+
Now you can run app
|
24
93
|
|
25
|
-
TODO: Write usage instructions here
|
26
94
|
|
27
95
|
## Development
|
28
96
|
|
data/demo.gif
ADDED
Binary file
|
data/devup.gemspec
CHANGED
data/exe/devup
CHANGED
data/lib/devup.rb
CHANGED
data/lib/devup/boot.rb
ADDED
data/lib/devup/dotenv.rb
ADDED
data/lib/devup/environment.rb
CHANGED
@@ -34,6 +34,10 @@ module Devup
|
|
34
34
|
}.flatten
|
35
35
|
end
|
36
36
|
|
37
|
+
def env
|
38
|
+
vars.reduce({}, :merge).map { |k, v| "export #{k}=#{v}" }.join("\n")
|
39
|
+
end
|
40
|
+
|
37
41
|
def up
|
38
42
|
compose.up
|
39
43
|
write_dotenv
|
@@ -61,11 +65,12 @@ module Devup
|
|
61
65
|
|
62
66
|
def dotenv
|
63
67
|
<<~DOTENV
|
64
|
-
|
65
|
-
#
|
66
|
-
|
68
|
+
####################################################
|
69
|
+
# This file is generated by devup command. #
|
70
|
+
# Home: https://github.com/sergio-fry/devup #
|
71
|
+
####################################################
|
67
72
|
# START
|
68
|
-
#{
|
73
|
+
#{env}
|
69
74
|
# END
|
70
75
|
|
71
76
|
DOTENV
|
data/lib/devup/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergei O. Udalov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-06-
|
12
|
-
dependencies:
|
11
|
+
date: 2020-06-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: dotenv
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
description:
|
14
28
|
email:
|
15
29
|
- sergei@udalovs.ru
|
@@ -31,10 +45,13 @@ files:
|
|
31
45
|
- Rakefile
|
32
46
|
- bin/console
|
33
47
|
- bin/setup
|
48
|
+
- demo.gif
|
34
49
|
- devup.gemspec
|
35
50
|
- exe/devup
|
36
51
|
- lib/devup.rb
|
52
|
+
- lib/devup/boot.rb
|
37
53
|
- lib/devup/compose.rb
|
54
|
+
- lib/devup/dotenv.rb
|
38
55
|
- lib/devup/environment.rb
|
39
56
|
- lib/devup/service.rb
|
40
57
|
- lib/devup/version.rb
|