vx-builder 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -1
  3. data/lib/vx/builder/configuration.rb +1 -1
  4. data/lib/vx/builder/helper/vxvm_install.rb +19 -0
  5. data/lib/vx/builder/script_builder/base.rb +1 -0
  6. data/lib/vx/builder/script_builder/cache.rb +1 -1
  7. data/lib/vx/builder/script_builder/go.rb +5 -8
  8. data/lib/vx/builder/script_builder/prepare.rb +2 -2
  9. data/lib/vx/builder/script_builder/ruby.rb +5 -19
  10. data/lib/vx/builder/version.rb +1 -1
  11. data/lib/vx/builder.rb +2 -1
  12. data/spec/fixtures/integration/go/language/after_script.sh +4 -4
  13. data/spec/fixtures/integration/go/language/before_script.sh +25 -25
  14. data/spec/fixtures/integration/ruby/deploy/after_script.sh +15 -0
  15. data/spec/fixtures/integration/ruby/deploy/before_script.sh +70 -0
  16. data/spec/fixtures/integration/ruby/deploy/script.sh +8 -0
  17. data/spec/fixtures/integration/ruby/language/after_script.sh +5 -5
  18. data/spec/fixtures/integration/ruby/language/before_script.sh +23 -22
  19. data/spec/fixtures/integration/ruby/matrix/0.after_script.sh +5 -5
  20. data/spec/fixtures/integration/ruby/matrix/0.before_script.sh +23 -22
  21. data/spec/fixtures/integration/ruby/matrix/1.after_script.sh +5 -5
  22. data/spec/fixtures/integration/ruby/matrix/1.before_script.sh +23 -22
  23. data/spec/fixtures/integration/ruby/matrix/d.after_script.sh +4 -4
  24. data/spec/fixtures/integration/ruby/matrix/d.before_script.sh +23 -22
  25. data/spec/fixtures/vx_test_repo_insecure_key +27 -0
  26. data/spec/fixtures/vx_test_repo_insecure_key.pub +1 -0
  27. data/spec/integration/clojure_spec.rb +42 -0
  28. data/spec/integration/go_spec.rb +49 -17
  29. data/spec/integration/ruby_spec.rb +82 -78
  30. data/spec/lib/builder/script_builder/prepare_spec.rb +29 -27
  31. data/spec/lib/builder/task_spec.rb +2 -2
  32. data/spec/spec_helper.rb +2 -0
  33. data/spec/support/create.rb +5 -5
  34. metadata +14 -9
  35. data/spec/fixtures/insecure_private_key +0 -27
  36. data/spec/fixtures/integration/ruby/deploy/d.after_script.sh +0 -14
  37. data/spec/fixtures/integration/ruby/deploy/d.before_script.sh +0 -69
  38. data/spec/fixtures/integration/ruby/deploy/d.script.sh +0 -8
@@ -7,11 +7,11 @@ def create(name, options = {})
7
7
  Vx::Builder::Task.new(
8
8
  job_id: 1,
9
9
  build_id: 12,
10
- name: 'project/name',
11
- src: "git@github.com:dima-exe/ci-worker-test-repo.git",
12
- sha: "b665f90239563c030f1b280a434b3d84daeda1bd",
13
- deploy_key: fixture("insecure_private_key"),
14
- branch: "master",
10
+ name: 'vexor/vx-test-repo',
11
+ src: "git@github.com:vexor/vx-test-repo.git",
12
+ sha: options[:sha] || "8f53c077072674972e21c82a286acc07fada91f5",
13
+ deploy_key: fixture("vx_test_repo_insecure_key"),
14
+ branch: options[:branch] || "test/pull-request",
15
15
  cache_url_prefix: "http://example.com",
16
16
  pull_request_id: options[:pull_request_id],
17
17
  job_number: 100,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vx-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Galinsky
@@ -134,6 +134,7 @@ files:
134
134
  - lib/vx/builder/deploy_builder.rb
135
135
  - lib/vx/builder/helper/config.rb
136
136
  - lib/vx/builder/helper/trace_sh_command.rb
137
+ - lib/vx/builder/helper/vxvm_install.rb
137
138
  - lib/vx/builder/matrix_builder.rb
138
139
  - lib/vx/builder/script_builder.rb
139
140
  - lib/vx/builder/script_builder/base.rb
@@ -152,15 +153,14 @@ files:
152
153
  - lib/vx/builder/task.rb
153
154
  - lib/vx/builder/version.rb
154
155
  - spec/fixtures/clojure.yml
155
- - spec/fixtures/insecure_private_key
156
156
  - spec/fixtures/integration/go/language/after_script.sh
157
157
  - spec/fixtures/integration/go/language/before_script.sh
158
158
  - spec/fixtures/integration/go/language/config.yml
159
159
  - spec/fixtures/integration/go/language/script.sh
160
+ - spec/fixtures/integration/ruby/deploy/after_script.sh
161
+ - spec/fixtures/integration/ruby/deploy/before_script.sh
160
162
  - spec/fixtures/integration/ruby/deploy/config.yml
161
- - spec/fixtures/integration/ruby/deploy/d.after_script.sh
162
- - spec/fixtures/integration/ruby/deploy/d.before_script.sh
163
- - spec/fixtures/integration/ruby/deploy/d.script.sh
163
+ - spec/fixtures/integration/ruby/deploy/script.sh
164
164
  - spec/fixtures/integration/ruby/language/after_script.sh
165
165
  - spec/fixtures/integration/ruby/language/before_script.sh
166
166
  - spec/fixtures/integration/ruby/language/config.yml
@@ -180,6 +180,9 @@ files:
180
180
  - spec/fixtures/travis.yml
181
181
  - spec/fixtures/travis_bug_1.yml
182
182
  - spec/fixtures/travis_bug_2.yml
183
+ - spec/fixtures/vx_test_repo_insecure_key
184
+ - spec/fixtures/vx_test_repo_insecure_key.pub
185
+ - spec/integration/clojure_spec.rb
183
186
  - spec/integration/go_spec.rb
184
187
  - spec/integration/ruby_spec.rb
185
188
  - spec/lib/builder/build_configuration/cache_spec.rb
@@ -232,15 +235,14 @@ specification_version: 4
232
235
  summary: Write a gem summary
233
236
  test_files:
234
237
  - spec/fixtures/clojure.yml
235
- - spec/fixtures/insecure_private_key
236
238
  - spec/fixtures/integration/go/language/after_script.sh
237
239
  - spec/fixtures/integration/go/language/before_script.sh
238
240
  - spec/fixtures/integration/go/language/config.yml
239
241
  - spec/fixtures/integration/go/language/script.sh
242
+ - spec/fixtures/integration/ruby/deploy/after_script.sh
243
+ - spec/fixtures/integration/ruby/deploy/before_script.sh
240
244
  - spec/fixtures/integration/ruby/deploy/config.yml
241
- - spec/fixtures/integration/ruby/deploy/d.after_script.sh
242
- - spec/fixtures/integration/ruby/deploy/d.before_script.sh
243
- - spec/fixtures/integration/ruby/deploy/d.script.sh
245
+ - spec/fixtures/integration/ruby/deploy/script.sh
244
246
  - spec/fixtures/integration/ruby/language/after_script.sh
245
247
  - spec/fixtures/integration/ruby/language/before_script.sh
246
248
  - spec/fixtures/integration/ruby/language/config.yml
@@ -260,6 +262,9 @@ test_files:
260
262
  - spec/fixtures/travis.yml
261
263
  - spec/fixtures/travis_bug_1.yml
262
264
  - spec/fixtures/travis_bug_2.yml
265
+ - spec/fixtures/vx_test_repo_insecure_key
266
+ - spec/fixtures/vx_test_repo_insecure_key.pub
267
+ - spec/integration/clojure_spec.rb
263
268
  - spec/integration/go_spec.rb
264
269
  - spec/integration/ruby_spec.rb
265
270
  - spec/lib/builder/build_configuration/cache_spec.rb
@@ -1,27 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIEpAIBAAKCAQEAveiqzr0nxJA48fk/T7qFrODmdT94lvt7ontGLhqNT7Z+GbqL
3
- t45F4/5BxNgyMbSQfaJw1sGMunQfjKRdWfuKUQp0y6bNhAjtnCnoVel3SMBaXE2r
4
- 896GkhNXc1/lz1v/1T8blc/chVeKZvQT+hDvC/KECF/+vd7yL6NRloayZdv0ks7z
5
- CwoIeeTfEu2hd3rXDELgoiM+AAEciYe08VuytFjbONy28Ey3SGHURN418FJrJHDs
6
- 7B5x3P89glkSta1TY4JOQtoWuxza7ylS8G1k+ss+TDB+ET3sqjDe1mxosRAfqSA7
7
- apEZK3ALbZru3nYd26x+CE84dvH7GiKoBl0TSQIDAQABAoIBAEEAgnaBCDufod4x
8
- EhqYHWkvEbLQJtaG/ap/x2XAcN33+PGViH0rlYCUZq6Z0ZRx2YMnNrhLR4AKf0IE
9
- gG9sScuzaIbMcUvgQnRRY9UENHASZttxOooegLE/LY+wI1j2hHrZPvfoTfLWI+lZ
10
- Yf0WDrxoJgk30lnrFbp4jFSZhjaWmsm1XQ4htt9bfGOBle/gJ6UTr32wF0EyOpv4
11
- erci1RSUzyDWz0q7Tjaq6SHlwQ2JwcLG0vnrZq+YnMJUwjLhC4JAMZEKF/61KnsM
12
- zwR9nuOE2ZDI1xH5xAA+0pNkwzxWcqryoKBrOMatDa+7ZOJEobOiq+glqmoprov4
13
- gXXR2IECgYEA+wP1SZM7E0WntQyPgRiZ7D9TSioV+x51RPw9Puw8KG3TuGOLqaMz
14
- rMwscbToejiZFSv2lHGDbSfWsw76MYj+vK3RF5ed8Mxy3gSfVFxVzSD50efpJcVq
15
- kV6n/ua3AJYGVbneaj56BljxHbxVvcyXXFGnaml8ICPJ2jyR8RE1848CgYEAwa4S
16
- jgnmReY+Tuu7U0xd6Oo0X9tjkqkyyGq+stQ3I2OfYzmtQveFlWsfecnbCmEMylLy
17
- nGVxYSiRNcigMoZ7eurgdmGD/O4mDG80Dy4PJ7lF8/8Xx701V7YjgGnII2/Vwp1k
18
- vlR9xTJ5lVpANXqSYq1kwyeSPn1KLKt0E42VP6cCgYEA2l4OJCyOJuzgwbMkoET7
19
- mrdYSNul9akAkbvxt+yhRPaOSglndXMBwGB6hYzA9ZqJKg7t2yOJFwuiTnFIHJG2
20
- MgPwM1r1zoa9owFYbnZJOkNmsUHT5MUCOWakNS8Wos7gwfEJWVnyo9T6JUkzOgNi
21
- 5bAvOXZ8wiUAM/efapzzV2cCgYBbKtY/F/fV1VBlE9+EkUDvPzdSG9IeGhj2cBC9
22
- 2tjthppjOaYODLdLozYYvOSnWRGNN0hOSA37nv3jZEHMJrN/I4pvDu3zJCKy3bGS
23
- p6qolzSPavdFpRGz7N9/Ncvoql7jkfT3BoyBQ4YpwGbTBZRccKQqnLjhQ1aj+jzU
24
- a2PipwKBgQCCLuOrhO37UovMnmNrRzXnwu9C+VCB4oGf6QtjEehMx/J+6ehvSYub
25
- lLOxeZQHzVkC3I6rVMbK1qx0t8Qnb+5jHRAkR4x/JaTojpZYqngdLrtY4/qLKJq7
26
- 4aOLYjJyL3YB09g3r68wcnTUHbcZYj+Q7xT1Y/ntXNp3pdbYc47NUQ==
27
- -----END RSA PRIVATE KEY-----
@@ -1,14 +0,0 @@
1
-
2
- # after script init
3
- export CI=1
4
- export CI_JOB_ID=1
5
- export CI_JOB_NUMBER=100
6
- export CI_BUILD_ID=12
7
- export CI_BUILD_NUMBER=101
8
- export CI_PROJECT_NAME=project/name
9
- export CI_BUILD_SHA=b665f90239563c030f1b280a434b3d84daeda1bd
10
- export CI_BRANCH=master
11
- export VX_ROOT=$(pwd)
12
- cd ${VX_ROOT}/code/project/name
13
-
14
- # after script
@@ -1,69 +0,0 @@
1
-
2
- # init
3
- set -e
4
- export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
5
- export LC_ALL=en_US.UTF8
6
- export DEBIAN_FRONTEND=noninteractive
7
- export CI=1
8
- export CI_JOB_ID=1
9
- export CI_JOB_NUMBER=100
10
- export CI_BUILD_ID=12
11
- export CI_BUILD_NUMBER=101
12
- export CI_PROJECT_NAME=project/name
13
- export CI_BUILD_SHA=b665f90239563c030f1b280a434b3d84daeda1bd
14
- export CI_BRANCH=master
15
- echo \$\ export\ FOO
16
- export FOO
17
- export VX_ROOT=$(pwd)
18
- export PATH=$VX_ROOT/bin:$PATH
19
- mkdir -p $VX_ROOT/bin
20
- mkdir -p ${VX_ROOT}/data/project/name
21
- mkdir -p ${VX_ROOT}/code/project/name
22
- (echo LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBdmVpcXpyMG54SkE0OGZrL1Q3cUZyT0RtZFQ5NGx2dDdvbnRHTGhxTlQ3WitHYnFMCnQ0NUY0LzVCeE5neU1iU1FmYUp3MXNHTXVuUWZqS1JkV2Z1S1VRcDB5NmJOaEFqdG5Dbm9WZWwzU01CYVhFMnIKODk2R2toTlhjMS9sejF2LzFUOGJsYy9jaFZlS1p2UVQraER2Qy9LRUNGLyt2ZDd5TDZOUmxvYXlaZHYwa3M3egpDd29JZWVUZkV1MmhkM3JYREVMZ29pTStBQUVjaVllMDhWdXl0RmpiT055MjhFeTNTR0hVUk40MThGSnJKSERzCjdCNXgzUDg5Z2xrU3RhMVRZNEpPUXRvV3V4emE3eWxTOEcxaytzcytUREIrRVQzc3FqRGUxbXhvc1JBZnFTQTcKYXBFWkszQUxiWnJ1M25ZZDI2eCtDRTg0ZHZIN0dpS29CbDBUU1FJREFRQUJBb0lCQUVFQWduYUJDRHVmb2Q0eApFaHFZSFdrdkViTFFKdGFHL2FwL3gyWEFjTjMzK1BHVmlIMHJsWUNVWnE2WjBaUngyWU1uTnJoTFI0QUtmMElFCmdHOXNTY3V6YUliTWNVdmdRblJSWTlVRU5IQVNadHR4T29vZWdMRS9MWSt3STFqMmhIclpQdmZvVGZMV0krbFoKWWYwV0RyeG9KZ2szMGxuckZicDRqRlNaaGphV21zbTFYUTRodHQ5YmZHT0JsZS9nSjZVVHIzMndGMEV5T3B2NAplcmNpMVJTVXp5RFd6MHE3VGphcTZTSGx3UTJKd2NMRzB2bnJacStZbk1KVXdqTGhDNEpBTVpFS0YvNjFLbnNNCnp3UjludU9FMlpESTF4SDV4QUErMHBOa3d6eFdjcXJ5b0tCck9NYXREYSs3Wk9KRW9iT2lxK2dscW1vcHJvdjQKZ1hYUjJJRUNnWUVBK3dQMVNaTTdFMFdudFF5UGdSaVo3RDlUU2lvVit4NTFSUHc5UHV3OEtHM1R1R09McWFNegpyTXdzY2JUb2VqaVpGU3YybEhHRGJTZldzdzc2TVlqK3ZLM1JGNWVkOE14eTNnU2ZWRnhWelNENTBlZnBKY1ZxCmtWNm4vdWEzQUpZR1ZibmVhajU2QmxqeEhieFZ2Y3lYWEZHbmFtbDhJQ1BKMmp5UjhSRTE4NDhDZ1lFQXdhNFMKamdubVJlWStUdXU3VTB4ZDZPbzBYOXRqa3FreXlHcStzdFEzSTJPZll6bXRRdmVGbFdzZmVjbmJDbUVNeWxMeQpuR1Z4WVNpUk5jaWdNb1o3ZXVyZ2RtR0QvTzRtREc4MER5NFBKN2xGOC84WHg3MDFWN1lqZ0duSUkyL1Z3cDFrCnZsUjl4VEo1bFZwQU5YcVNZcTFrd3llU1BuMUtMS3QwRTQyVlA2Y0NnWUVBMmw0T0pDeU9KdXpnd2JNa29FVDcKbXJkWVNOdWw5YWtBa2J2eHQreWhSUGFPU2dsbmRYTUJ3R0I2aFl6QTlacUpLZzd0MnlPSkZ3dWlUbkZJSEpHMgpNZ1B3TTFyMXpvYTlvd0ZZYm5aSk9rTm1zVUhUNU1VQ09XYWtOUzhXb3M3Z3dmRUpXVm55bzlUNkpVa3pPZ05pCjViQXZPWFo4d2lVQU0vZWZhcHp6VjJjQ2dZQmJLdFkvRi9mVjFWQmxFOStFa1VEdlB6ZFNHOUllR2hqMmNCQzkKMnRqdGhwcGpPYVlPRExkTG96WVl2T1NuV1JHTk4waE9TQTM3bnYzalpFSE1Kck4vSTRwdkR1M3pKQ0t5M2JHUwpwNnFvbHpTUGF2ZEZwUkd6N045L05jdm9xbDdqa2ZUM0JveUJRNFlwd0diVEJaUmNjS1FxbkxqaFExYWoranpVCmEyUGlwd0tCZ1FDQ0x1T3JoTzM3VW92TW5tTnJSelhud3U5QytWQ0I0b0dmNlF0akVlaE14L0orNmVodlNZdWIKbExPeGVaUUh6VmtDM0k2clZNYksxcXgwdDhRbmIrNWpIUkFrUjR4L0phVG9qcFpZcW5nZExydFk0L3FMS0pxNwo0YU9MWWpKeUwzWUIwOWczcjY4d2NuVFVIYmNaWWorUTd4VDFZL250WE5wM3BkYlljNDdOVVE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo= | base64 --decode) > ${VX_ROOT}/data/project/name/key
23
- chmod 0600 ${VX_ROOT}/data/project/name/key
24
- export VX_PRIVATE_KEY=${VX_ROOT}/data/project/name/key
25
- (echo IyEvYmluL3NoCmV4ZWMgL3Vzci9iaW4vc3NoIC1BIC1vIExvZ0xldmVsPXF1aWV0IC1vIFN0cmljdEhvc3RLZXlDaGVja2luZz1ubyAtbyBVc2VyS25vd25Ib3N0c0ZpbGU9L2Rldi9udWxsIC1pICR7VlhfUk9PVH0vZGF0YS9wcm9qZWN0L25hbWUva2V5ICRACg== | base64 --decode) > ${VX_ROOT}/data/project/name/git_ssh
26
- chmod 0750 ${VX_ROOT}/data/project/name/git_ssh
27
- export GIT_SSH=${VX_ROOT}/data/project/name/git_ssh
28
- echo "$ git clone --depth=50 --branch=master git@github.com:dima-exe/ci-worker-test-repo.git ${VX_ROOT}/code/project/name"
29
- git clone --depth=50 --branch=master git@github.com:dima-exe/ci-worker-test-repo.git ${VX_ROOT}/code/project/name
30
- echo "$ git checkout -qf b665f90239563c030f1b280a434b3d84daeda1bd"
31
- ( cd ${VX_ROOT}/code/project/name && git checkout -qf b665f90239563c030f1b280a434b3d84daeda1bd )
32
- unset GIT_SSH
33
- echo "starting SSH Agent"
34
- eval "$(ssh-agent)" > /dev/null
35
- ssh-add $VX_PRIVATE_KEY 2> /dev/null
36
- cd ${VX_ROOT}/code/project/name
37
- echo "download latest version of vxvm"
38
- curl --fail --silent --show-error https://raw.githubusercontent.com/vexor/vx-packages/master/vxvm > $VX_ROOT/bin/vxvm
39
- chmod +x $VX_ROOT/bin/vxvm
40
- export CASHER_DIR=$HOME/.casher && ( mkdir -p $CASHER_DIR/bin && /usr/bin/curl https://raw2.github.com/dima-exe/casher/master/bin/casher -s -o $HOME/.casher/bin/casher && chmod +x $HOME/.casher/bin/casher ) || true
41
- test -f $HOME/.casher/bin/casher && /opt/rbenv/versions/1.9.3-p547/bin/ruby $HOME/.casher/bin/casher fetch http://example.com/master/rvm-1.9.3-gemfile.tgz || true
42
- test -f $HOME/.casher/bin/casher && /opt/rbenv/versions/1.9.3-p547/bin/ruby $HOME/.casher/bin/casher add ~/.rubygems || true
43
- unset CASHER_DIR
44
-
45
- # before install
46
- eval "$(rbenv init -)" || true
47
- rbenv shell $(rbenv versions | sed -e 's/^*/ /' | awk '{print $1}' | grep -v 'system' | grep '1.9.3' | tail -n1)
48
- echo \$\ export\ BUNDLE_GEMFILE\=\$\{PWD\}/Gemfile
49
- export BUNDLE_GEMFILE=${PWD}/Gemfile
50
- echo \$\ export\ GEM_HOME\=\~/.rubygems
51
- export GEM_HOME=~/.rubygems
52
-
53
- # announce
54
- echo \$\ ruby\ --version
55
- ruby --version
56
- echo \$\ gem\ --version
57
- gem --version
58
- echo \$\ bundle\ --version
59
- bundle --version
60
-
61
- # install
62
- echo \$\ bundle\ install\
63
- bundle install
64
- echo \$\ bundle\ clean\ --force
65
- bundle clean --force
66
-
67
- # before script
68
- echo \$\ echo\ before\ deploy
69
- echo before deploy
@@ -1,8 +0,0 @@
1
-
2
- # script
3
- echo \$\ cap\ staging\ deploy
4
- cap staging deploy
5
-
6
- # after success
7
- echo \$\ echo\ after\ deploy
8
- echo after deploy