vx-builder 0.5.63 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b9912af828ec46ec4f3497a6ebb7dc4d6b5814d2
4
- data.tar.gz: 65a82851754e50452ac46b9de7e939801b247b72
3
+ metadata.gz: 9f6d28bd483799857d4da81a17615d136cbc6e3d
4
+ data.tar.gz: 91a0cb6651413827c40b6cef392f20f055c59dd4
5
5
  SHA512:
6
- metadata.gz: 8d988ef41bff1f865ab81fe8c0994fe3ab74d1744e473c5637ea3da9ab20a441832d6c591d645839eccd5aba005d573c1cf3a7773fa2ef52463067ed45c2eadc
7
- data.tar.gz: de7304226f18ea0098aee7141b1d91560c4afe820d57701a351784a3f17f9591d36886445bc1a89afd867249e690cf46f616845c0b7fd37ab1866aa3095fc880
6
+ metadata.gz: 109388549f3832dbc250e9acf46472882aec8b9825d159d4705190cde6bb44e9f36ab4fec59b942d25fb993a6e23c8ac180d773aef867ace3090f673d231d521
7
+ data.tar.gz: 87e2676cfe2f700a868df887de7b85345d5974649f4d4ccb7fc208a523fa9dafbe2ad9127db05444a50e8199b9c0a37ff22b47054452c6ce3c11ab388faf4de7
@@ -9,10 +9,10 @@ module Vx
9
9
  def call(env)
10
10
  rs = app.call env
11
11
 
12
- if env.task.cache_url_prefix && enabled?(env)
13
- env.stage("init").add_task "cache_fetch", "url" => cache_fetch_urls(env)
14
- env.stage("init").add_task "cache_add", "dir" => cache_directories(env)
15
- env.stage("teardown").add_task "cache_push", "url" => cache_push_url(env)
12
+ if env.task.cache_read_url && env.task.cache_write_url && enabled?(env)
13
+ env.stage("init").add_task "cache_fetch", "url" => cache_fetch_urls(env)
14
+ env.stage("init").add_task "cache_add", "dir" => cache_directories(env)
15
+ env.stage("teardown").add_task "cache_push", "url" => cache_push_url(env)
16
16
  end
17
17
 
18
18
  rs
@@ -29,21 +29,21 @@ module Vx
29
29
  end
30
30
 
31
31
  def cache_push_url(env)
32
- url_for(env, env.task.branch)
32
+ url_for(env, env.task.branch, 'w')
33
33
  end
34
34
 
35
35
  def cache_fetch_urls(env)
36
36
  urls = []
37
37
  branch = env.task.branch
38
38
  if branch != 'master'
39
- urls << url_for(env, branch)
39
+ urls << url_for(env, branch, 'r')
40
40
  end
41
- urls << url_for(env, 'master')
41
+ urls << url_for(env, 'master', 'r')
42
42
 
43
43
  urls
44
44
  end
45
45
 
46
- def url_for(env, branch)
46
+ def url_for(env, branch, mode)
47
47
  name = branch
48
48
 
49
49
  key =
@@ -53,7 +53,15 @@ module Vx
53
53
  env.cache_key.join("-").downcase.gsub(/[^a-z0-9_\-.]/, '-')
54
54
  end
55
55
 
56
- "#{env.task.cache_url_prefix}/#{name}/#{key}.tgz"
56
+ prefix =
57
+ case mode
58
+ when 'r'
59
+ env.task.cache_read_url
60
+ when 'w'
61
+ env.task.cache_write_url
62
+ end
63
+
64
+ "#{prefix}?file_name=#{name}/#{key}.tgz"
57
65
  end
58
66
 
59
67
  end
@@ -3,8 +3,9 @@ module Vx
3
3
  class Task
4
4
 
5
5
  attr_reader :name, :src, :sha, :ssh_keys, :branch, :pull_request_id,
6
- :cache_url_prefix, :job_id, :build_id, :build_number, :job_number,
7
- :project_host, :project_token
6
+ :job_id, :build_id, :build_number, :job_number,
7
+ :project_host, :project_token,
8
+ :cache_read_url, :cache_write_url
8
9
 
9
10
  def initialize(options = {})
10
11
  @name = options[:name]
@@ -15,11 +16,12 @@ module Vx
15
16
  @ssh_keys = options[:ssh_keys]
16
17
  @branch = options[:branch]
17
18
  @pull_request_id = options[:pull_request_id]
18
- @cache_url_prefix = options[:cache_url_prefix]
19
19
  @build_number = options[:build_number]
20
20
  @job_number = options[:job_number]
21
21
  @project_host = options[:project_host]
22
22
  @project_token = options[:project_token]
23
+ @cache_read_url = options[:cache_read_url]
24
+ @cache_write_url = options[:cache_write_url]
23
25
 
24
26
  validate!
25
27
  end
@@ -1,5 +1,5 @@
1
1
  module Vx
2
2
  module Builder
3
- VERSION = "0.5.63"
3
+ VERSION = "0.6.0"
4
4
  end
5
5
  end
@@ -21,7 +21,7 @@ git clone -q --depth=1 --branch=master https://github.com/vexor/vx-citool.git ~/
21
21
 
22
22
 
23
23
 
24
- echo LS0tCi0gbmFtZTogY2xvbmUKICB0YXNrczoKICAtIHNzaF9hZ2VudDoKICAgICAgZGVwbG95X2tleToKICAgICAgLSB8CiAgICAgICAgLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQogICAgICAgIE1JSUVwQUlCQUFLQ0FRRUFwTWthbSttaHdDZENRZHF0dTdVOXA1VlJGbWtyYmk5SGFBM3ZhZ3BoTXZ5cnlXcXgKICAgICAgICBDOXNZK2FuOGpDTlJVcGVseWpKOGY2YjYvVjVoNFdjbmx3cE92VkdHbnM0SE9ibllqODlHS29CRitRcFQyOG1wCiAgICAgICAgQ01pMGt6SE5TV01SWmcvZDl4M0FmMmNESWdKaGdHS2RLTGhPYitTSjJpUnpLQTZ5d215TlRyVUI0dEpocGdKLwogICAgICAgIFBBMWxHbFlYa0dhZDJLUkFmZzdtVGN1UXJxTEo0cWkyWGRnQUhjdElTTjl3VWRiRTF4NUhGUHl6dWt3S3VCQUUKICAgICAgICBoN202VlZySnpza0tOckJzdU9WU1p1UTZydjlUaXFXWFZwQVhncld2S3p0bGYzU05BdHRtQUJiNWQydVBPYTIrCiAgICAgICAgcmVDV0V6SGJXT0ZnTVFEUXNYc1MzcnFDM2Z6dzRWTUtSUXdYSVFJREFRQUJBb0lCQURnWk9wVFBrY0JmM1IrYwogICAgICAgIE9iOEljWWZtdm1jNXdJNVBUQ2p4YllzVkk0Zi9HdUNFRU9mdlcrNUszMjQ1NjhxSlUraWxEVnRMMW5DQlBDTkgKICAgICAgICBRZVFhbnptMlVuVW53Sy8zUS9HWlo5SzZQcGdNMndXYy9vMjkvak9LSmRBUkNQQk5BSXpMTlNocVFsZkdwYmpXCiAgICAgICAgV1podVBrMjdhTzY1ci9aNElvVXIvV05KSGU1QWt2NUZNZnNlQVoremxBSEEzMlFxTmdnT2VpdDY1R2lvMmNJdQogICAgICAgIFlES0k1TnIxaWlTcTNKTWZFWnZtYy81UWVkVTlVN0RJZU5Xd2ppOHBHekZrRjh4aHU2RXk5aHBHUjJVN2dFcVIKICAgICAgICArZHlTbndpOCtxYXNwb2Y4cmd1R2VTVVpWbW9UR21mWVVFbnoxWnBKVmFRaUFCa2FWWHdBRGFoaHZlOHRkMVRyCiAgICAgICAgN2gxYitRMENnWUVBMXZEcDdPa2xXeXZGaWVQWXU0cmxubWpWS052NmtiVVVMdE9peDl5S1diQXBZNmxqcFloUwogICAgICAgIHlpZ2lxVjZqaVZvckMxQ2xjWFBXcFdzSG9zZCtwNkRSYWEwTWlxRDJXSlBTWG5kQ29tR1JzT3JDZU83RHJMV2wKICAgICAgICBVQ1JIbDFPbGNSSGN1eFNxVkRIK0NDcVcrTkM0SnhVS2MyMk96SStrYUtUcnVqM3M5WGtlZklNQ2dZRUF4RU42CiAgICAgICAgQjd4QU5ZOWNlYjFYb2V2M1o3QVdJaExQUThHUFozS1NTbXoxWmRwMTFNTm91eFJKQnpEUzRrNjRRdjJuNDRKUAogICAgICAgIFUra2JYU2p2bkN5SVRDalRldkRJc0t4SHRPMHdPTEV3QjVMQ0J6cEpURXNqd0daY1RQMEFPdjZkcXdKd0xQcG0KICAgICAgICB5c2lUckxGQkg1U2RWc1RNdDhVSkZ4WjMzc0RXSFp2U28wcDIxSXNDZ1lCNjg4ck1rNzJqdnBFOFJKTHBEUlkyCiAgICAgICAgbkg4NjVVTWJjSHNBSWw0ZWQrRElWMFlGMVpMRDBReVN5WXl5V0FteWUxcmVHUjdhbkVudnpCN05GZE0wcm9DOAogICAgICAgIE01cFYvcWVNbWRxZjRSYkQ3bzQ1cHNEaURxcnVNK1pCeHM4UkdHOHVFK3F4TmF3Tmg1OXFLbnE4RUNFWGNpak4KICAgICAgICBTS0dFRUxNYWpTU3ZIOWRad0JRWll3S0JnUUNjQmhpSTlic0YyVVptOFlNdEVtM0lYRS84SG4vdkdYMXJlOFdZCiAgICAgICAgclM0WkhxYjEwYkw4cG8rM3k3U2FmSUkzbjNkTWdsZVdHWWJMZExPbnNDOWFmRXBEUGhBTmc2Z3R5VEhBbi92UwogICAgICAgIHlYUytValBiRnhFQTcxOEpSVWhkbmZTeDhtcERGMzJJVUJRMkFXUUlPeGtwMWFINXBnWW4rSkNxNFJwV3gzMlkKICAgICAgICBtcVlGS1FLQmdRQ2JFc3ZZbGZlV0pEaStDQkgremhma2ZXSVk5U2l5dUhFVVFhNGhOYmFTL0RrRE1ncU41OEN1CiAgICAgICAgOGdYR1NmdEVpVGNMYXQwYTBQNnZlYWNnUEt1aEFIZTFLN2g4NCtSMHJFL2N2MVFUQnBXMzhSUWdhYkxzK2V4eQogICAgICAgIGp5RjVSMU5ISS9MWHNEQk5haVIwNXNyWGRpU1p1bUwwYXdYN3JpQzREeklrNlpaWVJkYm5iUT09CiAgICAgICAgLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KICAgICAgLSB8CiAgICAgICAgLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQogICAgICAgIE1JSUVvUUlCQUFLQ0FRRUFwK3NJV2svWDYyQWE3RnVlWk9KelhqUkxSeXBLQW1VQyt3TEx2MlJzSlRxRnRMT3IKICAgICAgICBwRlVmT2NEdVhZQ1BXY2d4Y2JSRHp0OUxmVGJPZDUxUUluOUJ6S3l0bmxFQ1dXZVFzMC9ieTI1SzdiTFZKWWg4CiAgICAgICAgVk5tRm9oemlQY2w4R0wrZzBQUHdmeVphYUxlU1hpSXFZSjMvQ3d5OUNXN3hvZzhYb1dtVzgxbndpWGFpSWNwRQogICAgICAgIFVrdHE0OFZSYkdsellpV2FNeTJTdDQ4dVJhREtGYXREa3JjaFN0a0FrdFNmMGJvZmlONVhGUmlOZlE1cHQwRWUKICAgICAgICA1czNUWEdoTVl6UFNPMW1sODhieEJEQ2t2SjhWY2lBVExOU1o4S1RZdmJKR3JnUGJ2R3ljbFcxdjlTQkJjTVhyCiAgICAgICAgV2haUEw3NWgyNHpVS3d0bWdLMGZ2ejEzL2J2WGR4UGxPWW8vbHdJREFRQUJBb0lCQVFDRGdtaWRTcEVCYjloRwogICAgICAgIEtvOEgxZTZpNWZQYS9YelBHVXRYU1Y1SFBDQVNuQjNoWXlIWFp5ODRiU2lDSkZDZzhWQUFERDFiQkxpN2pUUHcKICAgICAgICByRXo1WjQ4aC9FOVJnWUtFZ0w3c0lHdzBpK0cwL2UwL0l3QzA5MU5ZbnFSMTNab0tTL0pvRTlUVDBEYlljb1Q0CiAgICAgICAgb210c0ZmR01OdUxLUTVDTTZxTUlNSWtmZDk0UjJZbmFiblo4bzZPVjZ0ZXZyM20zUFpXWEQ5QjlGOGRJZk5ZTAogICAgICAgIHljWUovZVFRK0o5OHU4VXFVVU9PdWdqbjROU0Mva3RkTzJmQVBiU0gzK1hLOFc3NUNudWgyWS9kYmpUcmFJanAKICAgICAgICBNZTVudlFhOGNQSE5Tb25DQ2VxQm9kbkRMcElKSjNBSWJRbWVxVXJVTVd4VTdieXBUdm9ENEhvTlBGaWloMkM3CiAgICAgICAgK3hjaVlERlJBb0dCQU5Nb2JRK2FNT1BMVTBFSy9Kd3lDVGpMVUxRZ3gwZWlvSyt2WGJCQmxycElIQWFXVy9CagogICAgICAgIG9RTUJUUENJa0JVcmwyZ244NU5jbWdCdDRGYUZldklFc1FvUXhsZ25NdndqNzNsdlExZkxKQ2tKam14bHJNMHYKICAgICAgICBnR2JLdGlVaGFhbzNUSnNqd3V2bERtUjJxUW5yV2VUOTVRbzZKYjROOGpVOWpDaVFlTVhXQTFzL0FvR0JBTXVUCiAgICAgICAgNFJXUG1UVVdES00ydGRabXU5N24rNktyQjRCVVE5NEwxQTdJSlkzbnFDdTdKYTA2NXlhbmpQa3d6cEw3bzRPUAogICAgICAgIFIzU01kRjYzbGRLYi9udk0ycEpXdUNYMERGMkhrUEJidWtPek90U1Qvc3V0R29nNFE2NnB6S0o0cUJRckdTMGMKICAgICAgICBzNEU4bXpnVUpDaTlGSllzQW0yTzhSYjZ0SFNaQTJ2ek9IVHZLejJwQW9HQVlhVVdHZHJ4dE1VM2NLS0dBaXpaCiAgICAgICAgT3R3Nks3SGt0V21zNk5FdGYrNDBwMXZsS2Q2cUVWWGhCU1M2MFpnMUdMVVp4TjZFc3FabHlNRUd0cnZ2Q0svRwogICAgICAgIHRxTGZOYkNhMFNKRkFXREVRWHI4ODhVcGlWTFRQK2N4ZDFkU040VmwrWUtzK0NqbllIS0IzMDlJQ0FBL2g3Y3AKICAgICAgICBEVHVxYkdMQ21JQW5xakoweHZlYWdiMENnWUFFaDJ1d2dSdFZkUUllOTI2Z01IVHBocHV3aU1HSDkxZnpMcXd2CiAgICAgICAgRUFEVjRWdDZiWlZ1L3lwNVQ2enhOa2JDT2xydTZGY2NucXRRR0NGN0tBRkhXODFaQ0JqY3Iwcy9JVzcyQ2ZSZwogICAgICAgIDRUSGozTThFVlB1TUlFUlJOSEhiQTNncHlyT3FyMExIRTBRWXdVbjBwaEE1THcxMnhvRlNrNDFFTXN0Q3NZeUYKICAgICAgICAvWFFtMFFKL1NRNmhKdk5RMGtyNFpyOExoZjV4TVViWFFlaWt2UFdTUFJkRGQ1NEhBRFY1VFVURzdKTWY1QXhJCiAgICAgICAgazB5WUgzSk9jRXZ6dGlKZGIzY1k2cWRWV1pUUXNrM0NCMnd5U0lTcEdCeFpBamlCeU5nS3lsMXIvVUwxbHluUAogICAgICAgIDdOR3JzYUxWYmR5ZnlaRkQzWjFheFJ1STNGZkdtYjJleEJkbUV1Y3lobXh3OEc3OHhnPT0KICAgICAgICAtLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQogICAgICAtIHwKICAgICAgICAtLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCiAgICAgICAgTUlJRXBBSUJBQUtDQVFFQTc2SStFNnUrSmRUdTgrWDRaMkQrMzhXUy9Dbjg0S2k2Y0pjVFZ1aSt0YWJrYXVmMwogICAgICAgIC9YS2JYQ3hKaGRQbTdud0RyaG8xRy9YYjl2N3hCNnNKMWFIcVdtVm1QejFrVmYrRW55eEVLdVJxRE1oTnBwTUIKICAgICAgICBOQnB5Y01VRDBtaE9UQ1Y3ejNVVUVLTzZxa3R6M3F2YTJleEJCcEhpR2hveGVKV1hxNE9rcUdqNUtKM1VHZXdXCiAgICAgICAgSnFkcStxcjJic3AyVnFZazRRTFZVS1QwSjBlTUgyQ1U0QUVORDBZcE9weHJEN0FPai9Kc2lnTHZmLytuK012KwogICAgICAgIDFpb3ViUnpzdE5URWZ4VytYcjlISEpVbFBmdlVGYVROQ3JNUFlTRis0Y0tpVE5tSWdnWmtIYmJScWlDbnVQbFUKICAgICAgICBmeENxa3B5Z1dyanlyaUdlbUxPQ2ZEVDBTeEZzUVRxcjdoSUdVd0lEQVFBQkFvSUJBSFE3VWJqZzJMNG81aTVQCiAgICAgICAgSVltak5uejdyQ3U3Z2ZqR1hvZzEveDlzalBRM0d4dnZvQTNEQlRCVUd1VmF2dXgySXFMVCsyYXdmaHp6MDUxUQogICAgICAgIGpOaWVUTG5EN1RCSGF0OTdyS3c0SUdoZG1rTFE5VGtTbk1iVS9TVk5xbWpvUnZJUVRGbDRCRjk5eXhER3dGRUYKICAgICAgICBNb1g1WGlEOXFablhrcDlXajlhVlo4eDMva0tBT3hOWjBrMHNmMGZLUE9wYkxrL3lsWExEazNHeXBQbUpGbENLCiAgICAgICAgMWdsc1Vod2pMeWxGMGl2SklBUmwyUmhRd1hvZXhZYUQ4bHJFc1JVTEVNeUhvTFpYL21LYnJoc3ZVeVg0YzlFMQogICAgICAgIHd0YzVaRDh0emRTNkVzVGpLajVXb05xekhFWkxUbU1WWUZSTno4MEllRUhMMjFWMjNuTnhzcEdQK2RyUzltdG4KICAgICAgICBuYVBqdnNFQ2dZRUEranB6NnhLcVdVd1NOTnFRQ1FBdGxRdisxTjFpQUVlbVIwbEs2L1RZcVB0aHBxcFdFTEsxCiAgICAgICAgQ0VEeUdrMzZ0THJ0d0Nuc3o3c0RGWWtyMDJMelY2c05YYXhsWEJQWmpkODVCS3MxeUpmVzFkeHU1RnNTNlVaOAogICAgICAgIGJKcFNGbzRzMS9KYm9mRk1WV3VVMjF2UDVJSEpjYnB1YWQ5VlBOQjFUbm1DVm50VlZkWlpIS2tDZ1lFQTlTazcKICAgICAgICBIRXphMnRIOHJTN2lVV3B2b0tMNjNobTVRRUFITVg2K3FiQ0s1ejg5ejYzR1BxV1FKR0kzdDE0QW5ONWpQMG9UCiAgICAgICAgaGhlMnJISXg3Zjc5OU1rQ2tzeS81bWVPdXo3WE9CaVJFUWxEUjVkTTdoRThzVldQbUN3ZVd5VGhjWEdjdDlZawogICAgICAgIE9SUTFFV1BFZWd5akhkcFVrRW5Ib0VMUEhXZUp1a1NUSnNadnpKc0NnWUVBN1ZXanZNTG5iK3NIR2JwMEF4VjQKICAgICAgICBKblpLTGZ3TWg5ZHRqdytsVUVmYmQrdDJvMjNNVStvc2FyZXU2ZVFzZGw4V1FiMkNMMFZobDN1VFpkdmtrckphCiAgICAgICAgNnc0bzFUeStqQ0c5SXdDQTh0R1JveWFBeDNiYWFRZkIzQUJDKzhHK0p0Um90U0Q1RmN3RVZFcXcxRHVGcGFqKwogICAgICAgIE1NenpPOHM4ZUVJbnJYOHRZVXo5R0lFQ2dZQWowMStnOWhZeFRlaFh3bmN1SUppcFo4ZXpOeDBjSjM4bG0zanYKICAgICAgICBRUzQ3TnNHb25LTlF1azhERWh0RVA0ZGxaUllweElCdjR2MDkyLzR4NGtab1JBdU5Pa0I4d2Z0WW40bEIyRTB5CiAgICAgICAgcVNEYzBGNWNsOFkvdjlvWkNiRng3a1RIbUN1bnJiSmphUEdNVmdEN09PZUpVRU4xUm1MV3A0eXVwbGU1RVpaVAogICAgICAgIFgwSXRLd0tCZ1FEYmFncy8wR2FKYXNmRzRnTlRwMHZwUnpYZUdoQ05zVlBtNzJWTm9kdjVmQVpHVTZWZ2ZqcHkKICAgICAgICAwUWxzSGw3YzE0OGZrdmpqM1R4cmlxUldtRW9zSTl2alZwdFRZamNjdEJEaGhrK2dENHVmb2txaGh0Y2tiZlJrCiAgICAgICAgRVFleWRleWJLTFc0OU1ld200Mm1qSk1tK0NBSXBPK1RWRllSKy9VWnhCWk4zV2hLZVBPWGlBPT0KICAgICAgICAtLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQogIC0gZ2l0X2Nsb25lOgogICAgICByZXBvOiBnaXRAZ2l0aHViLmNvbTp2ZXhvci92eC10ZXN0LXJlcG8uZ2l0CiAgICAgIGRlc3Q6ICJ+L3ZleG9yL3Z4LXRlc3QtcmVwbyIKICAgICAgYnJhbmNoOiB0ZXN0L3B1bGwtcmVxdWVzdAogICAgICBzaGE6IDhmNTNjMDc3MDcyNjc0OTcyZTIxYzgyYTI4NmFjYzA3ZmFkYTkxZjUKLSBuYW1lOiBpbml0CiAgY2hkaXI6ICJ+L3ZleG9yL3Z4LXRlc3QtcmVwbyIKICBlbnZpcm9ubWVudDoKICAgIENJOiAnMScKICAgIENJX0pPQl9JRDogMQogICAgQ0lfSk9CX05VTUJFUjogMTAwCiAgICBDSV9CVUlMRF9JRDogMTIKICAgIENJX0JVSUxEX05VTUJFUjogMTAxCiAgICBDSV9QUk9KRUNUX05BTUU6IHZleG9yL3Z4LXRlc3QtcmVwbwogICAgQ0lfQlVJTERfU0hBOiA4ZjUzYzA3NzA3MjY3NDk3MmUyMWM4MmEyODZhY2MwN2ZhZGE5MWY1CiAgICBDSV9CUkFOQ0g6IHRlc3QvcHVsbC1yZXF1ZXN0CiAgICBESVNQTEFZOiAiOjk5IgogICAgQ0lfUEFSQUxMRUxfSk9CUzogMwogICAgQ0lfUEFSQUxMRUxfSk9CX05VTUJFUjogMAogICAgZ2xvYmFsOiAnJwogICAgbWF0cml4OiAnJwogICAgUkFJTFNfRU5WOiB0ZXN0CiAgICBSQUNLX0VOVjogdGVzdAogICAgR0VNX0hPTUU6ICJ+Ly5ydWJ5Z2VtcyIKICAgIFRSQVZJU19QWVRIT05fVkVSU0lPTjogcHlfdmVyc2lvbgogIHRhc2tzOgogIC0gc2VydmljZXM6CiAgICAtIHJhYmJpdG1xLXNlcnZlcgogIC0gY2FjaGVfZmV0Y2g6CiAgICAgIHVybDoKICAgICAgLSBodHRwOi8vbG9jYWxob3N0OjMwMDEvdGVzdC9wdWxsLXJlcXVlc3Qvc2NhbGEtMi4xMC4zLXJ2bS0yLjAuMC1nZW1maWxlLW5vZGVqcy0wLjEwLXJ1c3QtMC4xMS4wLXB5dGhvbi0yLjcudGd6CiAgICAgIC0gaHR0cDovL2xvY2FsaG9zdDozMDAxL21hc3Rlci9zY2FsYS0yLjEwLjMtcnZtLTIuMC4wLWdlbWZpbGUtbm9kZWpzLTAuMTAtcnVzdC0wLjExLjAtcHl0aG9uLTIuNy50Z3oKICAtIGNhY2hlX2FkZDoKICAgICAgZGlyOgogICAgICAtICJ+Ly5jYWNoZSIKICAgICAgLSAifi8uc2J0IgogICAgICAtICJ+Ly5pdnkyIgogICAgICAtICJ+Ly5ydWJ5Z2VtcyIKICAgICAgLSBub2RlX21vZHVsZXMKICAgICAgLSBib3dlcl9jb21wb25lbnRzCiAgICAgIC0gIn4vLnBpcC1kb3dubG9hZHMiCi0gbmFtZTogYmVmb3JlX2luc3RhbGwKICB0YXNrczoKICAtIHNoZWxsOiBlY2hvIGJlZm9yZV9pbnN0YWxsCi0gbmFtZTogaW5zdGFsbAogIGVudmlyb25tZW50OgogICAgUEFUSDogIiR7UEFUSH06JHtQV0R9L25vZGVfbW9kdWxlcy9iaW4iCiAgdGFza3M6CiAgLSBzY2FsYToKICAgICAgYWN0aW9uOiBpbnN0YWxsCiAgICAgIHNjYWxhOiAyLjEwLjMKICAtIHJ1Ynk6CiAgICAgIGFjdGlvbjogaW5zdGFsbAogICAgICBydWJ5OiAyLjAuMAogIC0gcnVieTogYW5ub3VuY2UKICAtIHZ4dm06IG5vZGVqcyAwLjEwCiAgLSBzaGVsbDogbnBtIGNvbmZpZyBzZXQgc3BpbiBmYWxzZQogIC0gc2hlbGw6IG5vZGUgLS12ZXJzaW9uCiAgLSBzaGVsbDogbnBtIC0tdmVyc2lvbgogIC0gdnh2bTogcnVzdCAwLjExLjAKICAtIHNoZWxsOiBydXN0YyAtLXZlcnNpb24KICAtIHB5dGhvbjoKICAgICAgYWN0aW9uOiBpbnN0YWxsCiAgICAgIHB5dGhvbjogJzIuNycKICAtIHB5dGhvbjogdmlydHVhbGVudgogIC0gcHl0aG9uOiBhbm5vdW5jZQogIC0gc2hlbGw6IGVjaG8gaW5zdGFsbAotIG5hbWU6IGRhdGFiYXNlCiAgdGFza3M6CiAgLSBydWJ5OiByYWlsczpkYXRhYmFzZQotIG5hbWU6IGJlZm9yZV9zY3JpcHQKICB0YXNrczoKICAtIHNoZWxsOiBlY2hvIGJlZm9yZV9zY3JpcHQKLSBuYW1lOiBzY3JpcHQKICB0YXNrczoKICAtIHNoZWxsOiBSQUlMU19FTlY9dGVzdCBscyAtMSAmJiBlY2hvIERPTkUhCi0gbmFtZTogYWZ0ZXJfc3VjY2VzcwogIHRhc2tzOgogIC0gc2hlbGw6IGVjaG8gYWZ0ZXIgc3VjY2VzcwotIG5hbWU6IHRlYXJkb3duCiAgdGFza3M6CiAgLSBjYWNoZV9wdXNoOgogICAgICB1cmw6IGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMS90ZXN0L3B1bGwtcmVxdWVzdC9zY2FsYS0yLjEwLjMtcnZtLTIuMC4wLWdlbWZpbGUtbm9kZWpzLTAuMTAtcnVzdC0wLjExLjAtcHl0aG9uLTIuNy50Z3oK \
24
+ echo LS0tCi0gbmFtZTogY2xvbmUKICB0YXNrczoKICAtIHNzaF9hZ2VudDoKICAgICAga2V5OgogICAgICAtIHwKICAgICAgICAtLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCiAgICAgICAgTUlJRXBBSUJBQUtDQVFFQXBNa2FtK21od0NkQ1FkcXR1N1U5cDVWUkZta3JiaTlIYUEzdmFncGhNdnlyeVdxeAogICAgICAgIEM5c1krYW44akNOUlVwZWx5ako4ZjZiNi9WNWg0V2NubHdwT3ZWR0duczRIT2JuWWo4OUdLb0JGK1FwVDI4bXAKICAgICAgICBDTWkwa3pITlNXTVJaZy9kOXgzQWYyY0RJZ0poZ0dLZEtMaE9iK1NKMmlSektBNnl3bXlOVHJVQjR0SmhwZ0ovCiAgICAgICAgUEExbEdsWVhrR2FkMktSQWZnN21UY3VRcnFMSjRxaTJYZGdBSGN0SVNOOXdVZGJFMXg1SEZQeXp1a3dLdUJBRQogICAgICAgIGg3bTZWVnJKenNrS05yQnN1T1ZTWnVRNnJ2OVRpcVdYVnBBWGdyV3ZLenRsZjNTTkF0dG1BQmI1ZDJ1UE9hMisKICAgICAgICByZUNXRXpIYldPRmdNUURRc1hzUzNycUMzZnp3NFZNS1JRd1hJUUlEQVFBQkFvSUJBRGdaT3BUUGtjQmYzUitjCiAgICAgICAgT2I4SWNZZm12bWM1d0k1UFRDanhiWXNWSTRmL0d1Q0VFT2Z2Vys1SzMyNDU2OHFKVStpbERWdEwxbkNCUENOSAogICAgICAgIFFlUWFuem0yVW5VbndLLzNRL0daWjlLNlBwZ00yd1djL28yOS9qT0tKZEFSQ1BCTkFJekxOU2hxUWxmR3BialcKICAgICAgICBXWmh1UGsyN2FPNjVyL1o0SW9Vci9XTkpIZTVBa3Y1Rk1mc2VBWit6bEFIQTMyUXFOZ2dPZWl0NjVHaW8yY0l1CiAgICAgICAgWURLSTVOcjFpaVNxM0pNZkVadm1jLzVRZWRVOVU3REllTld3amk4cEd6RmtGOHhodTZFeTlocEdSMlU3Z0VxUgogICAgICAgICtkeVNud2k4K3Fhc3BvZjhyZ3VHZVNVWlZtb1RHbWZZVUVuejFacEpWYVFpQUJrYVZYd0FEYWhodmU4dGQxVHIKICAgICAgICA3aDFiK1EwQ2dZRUExdkRwN09rbFd5dkZpZVBZdTRybG5talZLTnY2a2JVVUx0T2l4OXlLV2JBcFk2bGpwWWhTCiAgICAgICAgeWlnaXFWNmppVm9yQzFDbGNYUFdwV3NIb3NkK3A2RFJhYTBNaXFEMldKUFNYbmRDb21HUnNPckNlTzdEckxXbAogICAgICAgIFVDUkhsMU9sY1JIY3V4U3FWREgrQ0NxVytOQzRKeFVLYzIyT3pJK2thS1RydWozczlYa2VmSU1DZ1lFQXhFTjYKICAgICAgICBCN3hBTlk5Y2ViMVhvZXYzWjdBV0loTFBROEdQWjNLU1NtejFaZHAxMU1Ob3V4UkpCekRTNGs2NFF2Mm40NEpQCiAgICAgICAgVStrYlhTanZuQ3lJVENqVGV2RElzS3hIdE8wd09MRXdCNUxDQnpwSlRFc2p3R1pjVFAwQU92NmRxd0p3TFBwbQogICAgICAgIHlzaVRyTEZCSDVTZFZzVE10OFVKRnhaMzNzRFdIWnZTbzBwMjFJc0NnWUI2ODhyTWs3Mmp2cEU4UkpMcERSWTIKICAgICAgICBuSDg2NVVNYmNIc0FJbDRlZCtESVYwWUYxWkxEMFF5U3lZeXlXQW15ZTFyZUdSN2FuRW52ekI3TkZkTTByb0M4CiAgICAgICAgTTVwVi9xZU1tZHFmNFJiRDdvNDVwc0RpRHFydU0rWkJ4czhSR0c4dUUrcXhOYXdOaDU5cUtucThFQ0VYY2lqTgogICAgICAgIFNLR0VFTE1halNTdkg5ZFp3QlFaWXdLQmdRQ2NCaGlJOWJzRjJVWm04WU10RW0zSVhFLzhIbi92R1gxcmU4V1kKICAgICAgICByUzRaSHFiMTBiTDhwbyszeTdTYWZJSTNuM2RNZ2xlV0dZYkxkTE9uc0M5YWZFcERQaEFOZzZndHlUSEFuL3ZTCiAgICAgICAgeVhTK1VqUGJGeEVBNzE4SlJVaGRuZlN4OG1wREYzMklVQlEyQVdRSU94a3AxYUg1cGdZbitKQ3E0UnBXeDMyWQogICAgICAgIG1xWUZLUUtCZ1FDYkVzdllsZmVXSkRpK0NCSCt6aGZrZldJWTlTaXl1SEVVUWE0aE5iYVMvRGtETWdxTjU4Q3UKICAgICAgICA4Z1hHU2Z0RWlUY0xhdDBhMFA2dmVhY2dQS3VoQUhlMUs3aDg0K1IwckUvY3YxUVRCcFczOFJRZ2FiTHMrZXh5CiAgICAgICAganlGNVIxTkhJL0xYc0RCTmFpUjA1c3JYZGlTWnVtTDBhd1g3cmlDNER6SWs2WlpZUmRibmJRPT0KICAgICAgICAtLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQogICAgICAtIHwKICAgICAgICAtLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCiAgICAgICAgTUlJRW9RSUJBQUtDQVFFQXArc0lXay9YNjJBYTdGdWVaT0p6WGpSTFJ5cEtBbVVDK3dMTHYyUnNKVHFGdExPcgogICAgICAgIHBGVWZPY0R1WFlDUFdjZ3hjYlJEenQ5TGZUYk9kNTFRSW45QnpLeXRubEVDV1dlUXMwL2J5MjVLN2JMVkpZaDgKICAgICAgICBWTm1Gb2h6aVBjbDhHTCtnMFBQd2Z5WmFhTGVTWGlJcVlKMy9Dd3k5Q1c3eG9nOFhvV21XODFud2lYYWlJY3BFCiAgICAgICAgVWt0cTQ4VlJiR2x6WWlXYU15MlN0NDh1UmFES0ZhdERrcmNoU3RrQWt0U2YwYm9maU41WEZSaU5mUTVwdDBFZQogICAgICAgIDVzM1RYR2hNWXpQU08xbWw4OGJ4QkRDa3ZKOFZjaUFUTE5TWjhLVFl2YkpHcmdQYnZHeWNsVzF2OVNCQmNNWHIKICAgICAgICBXaFpQTDc1aDI0elVLd3RtZ0swZnZ6MTMvYnZYZHhQbE9Zby9sd0lEQVFBQkFvSUJBUUNEZ21pZFNwRUJiOWhHCiAgICAgICAgS284SDFlNmk1ZlBhL1h6UEdVdFhTVjVIUENBU25CM2hZeUhYWnk4NGJTaUNKRkNnOFZBQUREMWJCTGk3alRQdwogICAgICAgIHJFejVaNDhoL0U5UmdZS0VnTDdzSUd3MGkrRzAvZTAvSXdDMDkxTllucVIxM1pvS1MvSm9FOVRUMERiWWNvVDQKICAgICAgICBvbXRzRmZHTU51TEtRNUNNNnFNSU1Ja2ZkOTRSMlluYWJuWjhvNk9WNnRldnIzbTNQWldYRDlCOUY4ZElmTllMCiAgICAgICAgeWNZSi9lUVErSjk4dThVcVVVT091Z2puNE5TQy9rdGRPMmZBUGJTSDMrWEs4Vzc1Q251aDJZL2RialRyYUlqcAogICAgICAgIE1lNW52UWE4Y1BITlNvbkNDZXFCb2RuRExwSUpKM0FJYlFtZXFVclVNV3hVN2J5cFR2b0Q0SG9OUEZpaWgyQzcKICAgICAgICAreGNpWURGUkFvR0JBTk1vYlErYU1PUExVMEVLL0p3eUNUakxVTFFneDBlaW9LK3ZYYkJCbHJwSUhBYVdXL0JqCiAgICAgICAgb1FNQlRQQ0lrQlVybDJnbjg1TmNtZ0J0NEZhRmV2SUVzUW9ReGxnbk12d2o3M2x2UTFmTEpDa0pqbXhsck0wdgogICAgICAgIGdHYkt0aVVoYWFvM1RKc2p3dXZsRG1SMnFRbnJXZVQ5NVFvNkpiNE44alU5akNpUWVNWFdBMXMvQW9HQkFNdVQKICAgICAgICA0UldQbVRVV0RLTTJ0ZFptdTk3bis2S3JCNEJVUTk0TDFBN0lKWTNucUN1N0phMDY1eWFualBrd3pwTDdvNE9QCiAgICAgICAgUjNTTWRGNjNsZEtiL252TTJwSld1Q1gwREYySGtQQmJ1a096T3RTVC9zdXRHb2c0UTY2cHpLSjRxQlFyR1MwYwogICAgICAgIHM0RThtemdVSkNpOUZKWXNBbTJPOFJiNnRIU1pBMnZ6T0hUdkt6MnBBb0dBWWFVV0dkcnh0TVUzY0tLR0FpeloKICAgICAgICBPdHc2SzdIa3RXbXM2TkV0Zis0MHAxdmxLZDZxRVZYaEJTUzYwWmcxR0xVWnhONkVzcVpseU1FR3RydnZDSy9HCiAgICAgICAgdHFMZk5iQ2EwU0pGQVdERVFYcjg4OFVwaVZMVFArY3hkMWRTTjRWbCtZS3MrQ2puWUhLQjMwOUlDQUEvaDdjcAogICAgICAgIERUdXFiR0xDbUlBbnFqSjB4dmVhZ2IwQ2dZQUVoMnV3Z1J0VmRRSWU5MjZnTUhUcGhwdXdpTUdIOTFmekxxd3YKICAgICAgICBFQURWNFZ0NmJaVnUveXA1VDZ6eE5rYkNPbHJ1NkZjY25xdFFHQ0Y3S0FGSFc4MVpDQmpjcjBzL0lXNzJDZlJnCiAgICAgICAgNFRIajNNOEVWUHVNSUVSUk5ISGJBM2dweXJPcXIwTEhFMFFZd1VuMHBoQTVMdzEyeG9GU2s0MUVNc3RDc1l5RgogICAgICAgIC9YUW0wUUovU1E2aEp2TlEwa3I0WnI4TGhmNXhNVWJYUWVpa3ZQV1NQUmREZDU0SEFEVjVUVVRHN0pNZjVBeEkKICAgICAgICBrMHlZSDNKT2NFdnp0aUpkYjNjWTZxZFZXWlRRc2szQ0Iyd3lTSVNwR0J4WkFqaUJ5TmdLeWwxci9VTDFseW5QCiAgICAgICAgN05HcnNhTFZiZHlmeVpGRDNaMWF4UnVJM0ZmR21iMmV4QmRtRXVjeWhteHc4Rzc4eGc9PQogICAgICAgIC0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCiAgICAgIC0gfAogICAgICAgIC0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KICAgICAgICBNSUlFcEFJQkFBS0NBUUVBNzZJK0U2dStKZFR1OCtYNFoyRCszOFdTL0NuODRLaTZjSmNUVnVpK3RhYmthdWYzCiAgICAgICAgL1hLYlhDeEpoZFBtN253RHJobzFHL1hiOXY3eEI2c0oxYUhxV21WbVB6MWtWZitFbnl4RUt1UnFETWhOcHBNQgogICAgICAgIE5CcHljTVVEMG1oT1RDVjd6M1VVRUtPNnFrdHozcXZhMmV4QkJwSGlHaG94ZUpXWHE0T2txR2o1S0ozVUdld1cKICAgICAgICBKcWRxK3FyMmJzcDJWcVlrNFFMVlVLVDBKMGVNSDJDVTRBRU5EMFlwT3B4ckQ3QU9qL0pzaWdMdmYvK24rTXYrCiAgICAgICAgMWlvdWJSenN0TlRFZnhXK1hyOUhISlVsUGZ2VUZhVE5Dck1QWVNGKzRjS2lUTm1JZ2daa0hiYlJxaUNudVBsVQogICAgICAgIGZ4Q3FrcHlnV3JqeXJpR2VtTE9DZkRUMFN4RnNRVHFyN2hJR1V3SURBUUFCQW9JQkFIUTdVYmpnMkw0bzVpNVAKICAgICAgICBJWW1qTm56N3JDdTdnZmpHWG9nMS94OXNqUFEzR3h2dm9BM0RCVEJVR3VWYXZ1eDJJcUxUKzJhd2ZoenowNTFRCiAgICAgICAgak5pZVRMbkQ3VEJIYXQ5N3JLdzRJR2hkbWtMUTlUa1NuTWJVL1NWTnFtam9SdklRVEZsNEJGOTl5eERHd0ZFRgogICAgICAgIE1vWDVYaUQ5cVpuWGtwOVdqOWFWWjh4My9rS0FPeE5aMGswc2YwZktQT3BiTGsveWxYTERrM0d5cFBtSkZsQ0sKICAgICAgICAxZ2xzVWh3akx5bEYwaXZKSUFSbDJSaFF3WG9leFlhRDhsckVzUlVMRU15SG9MWlgvbUticmhzdlV5WDRjOUUxCiAgICAgICAgd3RjNVpEOHR6ZFM2RXNUaktqNVdvTnF6SEVaTFRtTVZZRlJOejgwSWVFSEwyMVYyM25OeHNwR1ArZHJTOW10bgogICAgICAgIG5hUGp2c0VDZ1lFQStqcHo2eEtxV1V3U05OcVFDUUF0bFF2KzFOMWlBRWVtUjBsSzYvVFlxUHRocHFwV0VMSzEKICAgICAgICBDRUR5R2szNnRMcnR3Q25zejdzREZZa3IwMkx6VjZzTlhheGxYQlBaamQ4NUJLczF5SmZXMWR4dTVGc1M2VVo4CiAgICAgICAgYkpwU0ZvNHMxL0pib2ZGTVZXdVUyMXZQNUlISmNicHVhZDlWUE5CMVRubUNWbnRWVmRaWkhLa0NnWUVBOVNrNwogICAgICAgIEhFemEydEg4clM3aVVXcHZvS0w2M2htNVFFQUhNWDYrcWJDSzV6ODl6NjNHUHFXUUpHSTN0MTRBbk41alAwb1QKICAgICAgICBoaGUyckhJeDdmNzk5TWtDa3N5LzVtZU91ejdYT0JpUkVRbERSNWRNN2hFOHNWV1BtQ3dlV3lUaGNYR2N0OVlrCiAgICAgICAgT1JRMUVXUEVlZ3lqSGRwVWtFbkhvRUxQSFdlSnVrU1RKc1p2ekpzQ2dZRUE3Vldqdk1MbmIrc0hHYnAwQXhWNAogICAgICAgIEpuWktMZndNaDlkdGp3K2xVRWZiZCt0Mm8yM01VK29zYXJldTZlUXNkbDhXUWIyQ0wwVmhsM3VUWmR2a2tySmEKICAgICAgICA2dzRvMVR5K2pDRzlJd0NBOHRHUm95YUF4M2JhYVFmQjNBQkMrOEcrSnRSb3RTRDVGY3dFVkVxdzFEdUZwYWorCiAgICAgICAgTU16ek84czhlRUluclg4dFlVejlHSUVDZ1lBajAxK2c5aFl4VGVoWHduY3VJSmlwWjhlek54MGNKMzhsbTNqdgogICAgICAgIFFTNDdOc0dvbktOUXVrOERFaHRFUDRkbFpSWXB4SUJ2NHYwOTIvNHg0a1pvUkF1Tk9rQjh3ZnRZbjRsQjJFMHkKICAgICAgICBxU0RjMEY1Y2w4WS92OW9aQ2JGeDdrVEhtQ3VucmJKamFQR01WZ0Q3T09lSlVFTjFSbUxXcDR5dXBsZTVFWlpUCiAgICAgICAgWDBJdEt3S0JnUURiYWdzLzBHYUphc2ZHNGdOVHAwdnBSelhlR2hDTnNWUG03MlZOb2R2NWZBWkdVNlZnZmpweQogICAgICAgIDBRbHNIbDdjMTQ4Zmt2amozVHhyaXFSV21Fb3NJOXZqVnB0VFlqY2N0QkRoaGsrZ0Q0dWZva3FoaHRja2JmUmsKICAgICAgICBFUWV5ZGV5YktMVzQ5TWV3bTQybWpKTW0rQ0FJcE8rVFZGWVIrL1VaeEJaTjNXaEtlUE9YaUE9PQogICAgICAgIC0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCiAgLSBnaXRfY2xvbmU6CiAgICAgIHJlcG86IGdpdEBnaXRodWIuY29tOnZleG9yL3Z4LXRlc3QtcmVwby5naXQKICAgICAgZGVzdDogIn4vdmV4b3IvdngtdGVzdC1yZXBvIgogICAgICBicmFuY2g6IHRlc3QvcHVsbC1yZXF1ZXN0CiAgICAgIHNoYTogOGY1M2MwNzcwNzI2NzQ5NzJlMjFjODJhMjg2YWNjMDdmYWRhOTFmNQotIG5hbWU6IGluaXQKICBjaGRpcjogIn4vdmV4b3IvdngtdGVzdC1yZXBvIgogIGVudmlyb25tZW50OgogICAgQ0k6ICcxJwogICAgQ0lfSk9CX0lEOiAxCiAgICBDSV9KT0JfTlVNQkVSOiAxMDAKICAgIENJX0JVSUxEX0lEOiAxMgogICAgQ0lfQlVJTERfTlVNQkVSOiAxMDEKICAgIENJX1BST0pFQ1RfTkFNRTogdmV4b3IvdngtdGVzdC1yZXBvCiAgICBDSV9CVUlMRF9TSEE6IDhmNTNjMDc3MDcyNjc0OTcyZTIxYzgyYTI4NmFjYzA3ZmFkYTkxZjUKICAgIENJX0JSQU5DSDogdGVzdC9wdWxsLXJlcXVlc3QKICAgIERJU1BMQVk6ICI6OTkiCiAgICBDSV9QQVJBTExFTF9KT0JTOiAzCiAgICBDSV9QQVJBTExFTF9KT0JfTlVNQkVSOiAwCiAgICBnbG9iYWw6ICcnCiAgICBtYXRyaXg6ICcnCiAgICBSQUlMU19FTlY6IHRlc3QKICAgIFJBQ0tfRU5WOiB0ZXN0CiAgICBHRU1fSE9NRTogIn4vLnJ1YnlnZW1zIgogICAgVFJBVklTX1BZVEhPTl9WRVJTSU9OOiBweV92ZXJzaW9uCiAgdGFza3M6CiAgLSBzZXJ2aWNlczoKICAgIC0gcmFiYml0bXEtc2VydmVyCiAgLSBjYWNoZV9mZXRjaDoKICAgICAgdXJsOgogICAgICAtIGh0dHA6Ly9sb2NhbGhvc3Q6MzAwMS9yZWFkP2ZpbGVfbmFtZT10ZXN0L3B1bGwtcmVxdWVzdC9zY2FsYS0yLjEwLjMtcnZtLTIuMC4wLWdlbWZpbGUtbm9kZWpzLTAuMTAtcnVzdC0wLjExLjAtcHl0aG9uLTIuNy50Z3oKICAgICAgLSBodHRwOi8vbG9jYWxob3N0OjMwMDEvcmVhZD9maWxlX25hbWU9bWFzdGVyL3NjYWxhLTIuMTAuMy1ydm0tMi4wLjAtZ2VtZmlsZS1ub2RlanMtMC4xMC1ydXN0LTAuMTEuMC1weXRob24tMi43LnRnegogIC0gY2FjaGVfYWRkOgogICAgICBkaXI6CiAgICAgIC0gIn4vLmNhY2hlIgogICAgICAtICJ+Ly5zYnQiCiAgICAgIC0gIn4vLml2eTIiCiAgICAgIC0gIn4vLnJ1YnlnZW1zIgogICAgICAtIG5vZGVfbW9kdWxlcwogICAgICAtIGJvd2VyX2NvbXBvbmVudHMKICAgICAgLSAifi8ucGlwLWRvd25sb2FkcyIKLSBuYW1lOiBiZWZvcmVfaW5zdGFsbAogIHRhc2tzOgogIC0gc2hlbGw6IGVjaG8gYmVmb3JlX2luc3RhbGwKLSBuYW1lOiBpbnN0YWxsCiAgZW52aXJvbm1lbnQ6CiAgICBQQVRIOiAiJHtQQVRIfToke1BXRH0vbm9kZV9tb2R1bGVzL2JpbiIKICB0YXNrczoKICAtIHNjYWxhOgogICAgICBhY3Rpb246IGluc3RhbGwKICAgICAgc2NhbGE6IDIuMTAuMwogIC0gcnVieToKICAgICAgYWN0aW9uOiBpbnN0YWxsCiAgICAgIHJ1Ynk6IDIuMC4wCiAgLSBydWJ5OiBhbm5vdW5jZQogIC0gdnh2bTogbm9kZWpzIDAuMTAKICAtIHNoZWxsOiBucG0gY29uZmlnIHNldCBzcGluIGZhbHNlCiAgLSBzaGVsbDogbm9kZSAtLXZlcnNpb24KICAtIHNoZWxsOiBucG0gLS12ZXJzaW9uCiAgLSB2eHZtOiBydXN0IDAuMTEuMAogIC0gc2hlbGw6IHJ1c3RjIC0tdmVyc2lvbgogIC0gcHl0aG9uOgogICAgICBhY3Rpb246IGluc3RhbGwKICAgICAgcHl0aG9uOiAnMi43JwogIC0gcHl0aG9uOiB2aXJ0dWFsZW52CiAgLSBweXRob246IGFubm91bmNlCiAgLSBzaGVsbDogZWNobyBpbnN0YWxsCi0gbmFtZTogZGF0YWJhc2UKICB0YXNrczoKICAtIHJ1Ynk6IHJhaWxzOmRhdGFiYXNlCi0gbmFtZTogYmVmb3JlX3NjcmlwdAogIHRhc2tzOgogIC0gc2hlbGw6IGVjaG8gYmVmb3JlX3NjcmlwdAotIG5hbWU6IHNjcmlwdAogIHRhc2tzOgogIC0gc2hlbGw6IFJBSUxTX0VOVj10ZXN0IGxzIC0xICYmIGVjaG8gRE9ORSEKLSBuYW1lOiBhZnRlcl9zdWNjZXNzCiAgdGFza3M6CiAgLSBzaGVsbDogZWNobyBhZnRlciBzdWNjZXNzCi0gbmFtZTogdGVhcmRvd24KICB0YXNrczoKICAtIGNhY2hlX3B1c2g6CiAgICAgIHVybDogaHR0cDovL2xvY2FsaG9zdDozMDAxL3dyaXRlP2ZpbGVfbmFtZT10ZXN0L3B1bGwtcmVxdWVzdC9zY2FsYS0yLjEwLjMtcnZtLTIuMC4wLWdlbWZpbGUtbm9kZWpzLTAuMTAtcnVzdC0wLjExLjAtcHl0aG9uLTIuNy50Z3oK \
25
25
  | base64 --decode | ~/citool/bin/vx-citool -
26
26
 
27
27
  exit $?
@@ -2,7 +2,7 @@
2
2
  - name: clone
3
3
  tasks:
4
4
  - ssh_agent:
5
- deploy_key:
5
+ key:
6
6
  - |
7
7
  -----BEGIN RSA PRIVATE KEY-----
8
8
  MIIEpAIBAAKCAQEApMkam+mhwCdCQdqtu7U9p5VRFmkrbi9HaA3vagphMvyryWqx
@@ -117,8 +117,8 @@
117
117
  - rabbitmq-server
118
118
  - cache_fetch:
119
119
  url:
120
- - http://localhost:3001/test/pull-request/scala-2.10.3-rvm-2.0.0-gemfile-nodejs-0.10-rust-0.11.0-python-2.7.tgz
121
- - http://localhost:3001/master/scala-2.10.3-rvm-2.0.0-gemfile-nodejs-0.10-rust-0.11.0-python-2.7.tgz
120
+ - http://localhost:3001/read?file_name=test/pull-request/scala-2.10.3-rvm-2.0.0-gemfile-nodejs-0.10-rust-0.11.0-python-2.7.tgz
121
+ - http://localhost:3001/read?file_name=master/scala-2.10.3-rvm-2.0.0-gemfile-nodejs-0.10-rust-0.11.0-python-2.7.tgz
122
122
  - cache_add:
123
123
  dir:
124
124
  - "~/.cache"
@@ -169,4 +169,4 @@
169
169
  - name: teardown
170
170
  tasks:
171
171
  - cache_push:
172
- url: http://localhost:3001/test/pull-request/scala-2.10.3-rvm-2.0.0-gemfile-nodejs-0.10-rust-0.11.0-python-2.7.tgz
172
+ url: http://localhost:3001/write?file_name=test/pull-request/scala-2.10.3-rvm-2.0.0-gemfile-nodejs-0.10-rust-0.11.0-python-2.7.tgz
@@ -9,7 +9,8 @@ describe Vx::Builder::Task do
9
9
  its(:name) { should eq 'vexor/vx-test-repo' }
10
10
  its(:sha) { should eq '8f53c077072674972e21c82a286acc07fada91f5' }
11
11
  its(:ssh_keys) { should be }
12
- its(:cache_url_prefix){ should eq 'http://localhost:3001' }
12
+ its(:cache_read_url) { should eq 'http://localhost:3001/read' }
13
+ its(:cache_write_url) { should eq 'http://localhost:3001/write' }
13
14
  its(:job_id) { should eq 1 }
14
15
  its(:build_id) { should eq 12 }
15
16
  its(:pull_request_id) { should eq 1 }
@@ -14,7 +14,8 @@ def create(name, options = {})
14
14
  fixture("test_key1"),
15
15
  fixture("test_key2")],
16
16
  branch: options[:branch] || "test/pull-request",
17
- cache_url_prefix: "http://localhost:3001",
17
+ cache_read_url: "http://localhost:3001/read",
18
+ cache_write_url: "http://localhost:3001/write",
18
19
  pull_request_id: options[:pull_request_id],
19
20
  job_number: 100,
20
21
  build_number: 101,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vx-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.63
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Galinsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-07 00:00:00.000000000 Z
11
+ date: 2015-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: vx-common