dpl 1.8.8.travis.1167.4 → 1.8.8.travis.1179.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDI5NmZlZDBlYTI5N2M0ZTkwYzM1YzIxODc3MDliMjhmY2RmMjgyNw==
4
+ M2U0NzVjOTM4MDE5ZjI4MDJlYTI1ODFiOGRhNjZmZTI3MjUyMWU3Yg==
5
5
  data.tar.gz: !binary |-
6
- MGQ2YTQ2YjE1ZjRkZWRiMzc4MjYwMmEwYWIyN2ZkMDJhMTI0ZjZjNg==
6
+ NWZlNjYzMjQ2ZjdhODI3MjYxZjE2YWUyNTdlM2VhNDcyOTZhNmQ3Ng==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MGY3NWQ5ZDVmNzcyM2I1Zjg2NGI3Mzk1M2VlMTA1NzU4MjMwMDc4OGRjYmNl
10
- MWEwNWUzZjg2OTllNmYxZDFlNDBmOTNiMzM3OWNlMjJmOGVjZjdlM2QxYzU0
11
- NzQyMzUwNDUzYjg3N2U4ODc2MTUwODg4NGRmYWE4N2QxOWFkYTY=
9
+ MTIxNWE5OWI2NTA5YmIzOGQ0YzRlMmJhYmQ2MmY5ZDMxN2Y2ZjQ0MTk5YTVm
10
+ OWQ4NWMwMTNiYzllZTZlODA1ZGY0Zjc2Y2ViYWNhY2VlYmFkMjA5YmMyMGY5
11
+ ZWVkNGFhOWVkNTA4NTg4NjlmMzY1NGE2ZjE3YzliMjIzMWRmZmE=
12
12
  data.tar.gz: !binary |-
13
- MWU3MjQ5ZWUxNzAwMmVmMGE4MDVlMjZjN2EzNGE0ZDZlMjNiYWM1ZWVlOGM1
14
- M2Y1OGY2YWMyZDc2OThmNjc0YTZjZDIyZjk1ZDE3Njc1YTdjYjVmMjA2MGFm
15
- YTU1NDZhNTJhMWIxZmRhOWQ5ODhkNWVhOGUyNWJjNTdhZTM0NjQ=
13
+ YTI2ZDMzYjY2OGMyNjY5OTRiYjA3ZDQwYTgyZjZjYjBlN2JkYTdmNDdjOWFl
14
+ YTA5Njg2M2FhZWU4YjBlYzI4NjYzMjA0OTM3ODUzMWE0OWVkZTlhMzYwNGY4
15
+ NDJjZmJmOGQ4NjYzNGViMTg3NjQwNzg3ZWQ3YTNiYWEyNDA3MGQ=
data/README.md CHANGED
@@ -27,6 +27,7 @@ Dpl supports the following providers:
27
27
  * [Elastic Beanstalk](#elastic-beanstalk)
28
28
  * [Engine Yard](#engine-yard)
29
29
  * [ExoScale](#exoscale)
30
+ * [Firebase](#firebase)
30
31
  * [Github Releases](#github-releases)
31
32
  * [Google App Engine (experimental)](#google-app-engine)
32
33
  * [Google Cloud Storage](#google-cloud-storage)
@@ -796,3 +797,14 @@ In order to use this provider, please make sure you have the [App Engine Admin A
796
797
  #### Example:
797
798
 
798
799
  dpl --provider=gae --project=example --no_promote=true
800
+
801
+ ### Firebase:
802
+
803
+ #### Options:
804
+
805
+ * **token**: Your Firebase CI access token (generate with `firebase login:ci`)
806
+ * **project**: Deploy to a different Firebase project than specified in your `firebase.json` (e.g. `myapp-staging`)
807
+
808
+ #### Examples:
809
+
810
+ dpl --provider=firebase --token=<token> --project=<project>
data/lib/dpl/provider.rb CHANGED
@@ -26,6 +26,7 @@ module DPL
26
26
  autoload :ElasticBeanstalk, 'dpl/provider/elastic_beanstalk'
27
27
  autoload :EngineYard, 'dpl/provider/engine_yard'
28
28
  autoload :ExoScale, 'dpl/provider/exoscale'
29
+ autoload :Firebase, 'dpl/provider/firebase'
29
30
  autoload :GAE, 'dpl/provider/gae'
30
31
  autoload :GCS, 'dpl/provider/gcs'
31
32
  autoload :Hackage, 'dpl/provider/hackage'
@@ -0,0 +1,26 @@
1
+ module DPL
2
+ class Provider
3
+ class Firebase < Provider
4
+ npm_g 'firebase-tools@^2.1', 'firebase'
5
+
6
+ def check_auth
7
+ raise Error, "must supply token option or FIREBASE_TOKEN environment variable" if !options[:token] && !context.env['FIREBASE_TOKEN']
8
+ end
9
+
10
+ def check_app
11
+ error "missing firebase.json" unless File.exist? "firebase.json"
12
+ end
13
+
14
+ def needs_key?
15
+ false
16
+ end
17
+
18
+ def push_app
19
+ command = "firebase deploy --non-interactive"
20
+ command << " -f #{options[:project]}" if options[:project]
21
+ command << " --token '#{options[:token]}'" if options[:token]
22
+ context.shell command
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+ require 'dpl/provider/firebase'
3
+
4
+ describe DPL::Provider::Firebase do
5
+ subject :provider do
6
+ described_class.new DummyContext.new, :token => 'abc123'
7
+ end
8
+
9
+ describe "#check_auth" do
10
+ it 'should require a token if no FIREBASE_TOKEN is set' do
11
+ provider.options.update(:token => nil)
12
+ expect{ provider.check_auth }.to raise_error("must supply token option or FIREBASE_TOKEN environment variable")
13
+ end
14
+
15
+ it 'should allow no token if FIREBASE_TOKEN is set' do
16
+ provider.options.update(:token => nil)
17
+ provider.context.env['FIREBASE_TOKEN'] = 'abc123'
18
+ expect{ provider.check_auth }.not_to raise_error
19
+ end
20
+ end
21
+
22
+ describe "#push_app" do
23
+ it 'should include the project specified' do
24
+ provider.options.update(:project => 'myapp-dev')
25
+ expect(provider.context).to receive(:shell).with("firebase deploy --non-interactive -f myapp-dev --token 'abc123'")
26
+ provider.push_app
27
+ end
28
+
29
+ it 'should default to no project override' do
30
+ expect(provider.context).to receive(:shell).with("firebase deploy --non-interactive --token 'abc123'")
31
+ provider.push_app
32
+ end
33
+ end
34
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dpl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.8.travis.1167.4
4
+ version: 1.8.8.travis.1179.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Haase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-30 00:00:00.000000000 Z
11
+ date: 2015-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -135,6 +135,7 @@ files:
135
135
  - lib/dpl/provider/elastic_beanstalk.rb
136
136
  - lib/dpl/provider/engine_yard.rb
137
137
  - lib/dpl/provider/exoscale.rb
138
+ - lib/dpl/provider/firebase.rb
138
139
  - lib/dpl/provider/gae.rb
139
140
  - lib/dpl/provider/gcs.rb
140
141
  - lib/dpl/provider/hackage.rb
@@ -182,6 +183,7 @@ files:
182
183
  - spec/provider/dotcloud_spec.rb
183
184
  - spec/provider/elastic_beanstalk_spec.rb
184
185
  - spec/provider/exoscale_spec.rb
186
+ - spec/provider/firebase_spec.rb
185
187
  - spec/provider/gae_spec.rb
186
188
  - spec/provider/gcs_spec.rb
187
189
  - spec/provider/hackage_spec.rb