fastlane-plugin-queue 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cdacfd6b25670d732c568e5dc5241b3a13e8fe61
4
- data.tar.gz: cad53d3beab7cd475c7e8ef71856783d7ac15e8f
3
+ metadata.gz: c36627e6703a57cc76bb125bd462e447f224423c
4
+ data.tar.gz: 4c378df9a8f633ee3dcd1886a09d7741b2cc044f
5
5
  SHA512:
6
- metadata.gz: f78af491b790c137cdeb17e3f6cd1423309113bc4e09143c02a0bd9df17a23ac54523bb1938aedb2f98f780585dea8295ac41bac128b2d89bc1b32d55a32a567
7
- data.tar.gz: 99cbe8c10c7cd7e2920b58ab3a6338e96f64dde1af8f15230834b05bfea8e576ef42b2ba2721dda188425252bedb5b42e6490f5ae9f42e7c5e0001c1ac2e077c
6
+ metadata.gz: 69772ce2bb0382c246cc4468d521d041c652acf25407bab25d3830b07102c15976e66e347d68bbe9ca36003e26994eec101e0456f9e3459865b185c6985b2f13
7
+ data.tar.gz: 1d6f6b2e7fe2fa98e4236639a56d7af0598e6595344ba831db852203fa68d8c13e5df2f9418264741091345b533178f03de4f6ab043de680ba5fd303a9a48106
data/README.md CHANGED
@@ -11,13 +11,14 @@ Easily queue up `fastlane` jobs using [Resque](https://github.com/resque/resque)
11
11
  - Manage queue using `resque`'s web interface
12
12
  - View queued, running, and failed jobs
13
13
  - Retry failed jobs
14
+ - Custom web interface for starting `fastlane` jobs
14
15
 
15
16
  ### Planned Features
16
17
  - Configure any `resque` settings
17
18
  - Ex: port, redis connection settings, plugins
18
- - Custom web interface for starting `fastlane` jobs
19
19
  - Allow different `dotenv` settings per job
20
20
 
21
+ ![Screenshot - Overview](screenshots/screenshot_app.png)
21
22
  ![Screenshot - Overview](screenshots/screenshot_overview.png)
22
23
 
23
24
  ## Getting Started
@@ -10,7 +10,13 @@ module Fastlane
10
10
  Process.fork do
11
11
  require 'vegas'
12
12
  require 'resque/server'
13
- Vegas::Runner.new(Resque::Server, 'fastlane-plugin-queue-resque-web')
13
+ Vegas::Runner.new(Resque::Server, 'fastlane-plugin-queue-resque-web', {port: 5678, skip_launch: true})
14
+ end
15
+
16
+ Process.fork do
17
+ require 'vegas'
18
+ require 'resque/server'
19
+ Vegas::Runner.new(App, 'fastlane-plugin-queue-app', {port: 5679})
14
20
  end
15
21
 
16
22
  # Starts a blocking worker
@@ -23,13 +23,30 @@ module Fastlane
23
23
  end
24
24
 
25
25
  # Shut down our web server
26
- begin
27
- require 'vegas'
28
- require 'resque/server'
29
- Vegas::Runner.new(Resque::Server, 'fastlane-plugin-queue-resque-web', {}, ["--kill"])
30
- rescue StandardError
31
- UI.warning("Nothing to stop")
26
+ Process.fork do
27
+ begin
28
+ require 'vegas'
29
+ require 'resque/server'
30
+ Vegas::Runner.new(Resque::Server, 'fastlane-plugin-queue-resque-web', {}, ["--kill"])
31
+ puts "killed resque"
32
+ rescue StandardError
33
+ UI.warning("Nothing to stop")
34
+ end
35
+ end
36
+
37
+ Process.fork do
38
+ begin
39
+ require 'vegas'
40
+ require 'resque/server'
41
+ Vegas::Runner.new(App, 'fastlane-plugin-queue-app', {}, ["--kill"])
42
+ puts "killed app"
43
+ rescue StandardError
44
+ UI.warning("Nothing to stop")
45
+ end
32
46
  end
47
+
48
+ # Sleeping because we need time to kill these proceses ^ :-|
49
+ sleep 5
33
50
  end
34
51
 
35
52
  def self.description
@@ -0,0 +1,115 @@
1
+ require 'sinatra/base'
2
+ require 'resque'
3
+
4
+ STYLESHEET = <<-STYLESHEET
5
+ <style>
6
+ p {
7
+ text-align: center;
8
+ font-family: arial, sans-serif;
9
+ font-size: 18px;
10
+ }
11
+ a {
12
+ font-family: arial, sans-serif;
13
+ font-size: 22px;
14
+ color: #000000;
15
+ }
16
+ a:hover {
17
+ color: #999999;
18
+ }
19
+ textarea {
20
+ width: 100%;
21
+ font-family: arial, sans-serif;
22
+ font-size: 22px;
23
+ padding: 10px;
24
+ }
25
+ form {
26
+ text-align: center;
27
+ }
28
+ input[type="submit"] {
29
+ margin-top: 20px;
30
+
31
+ -webkit-border-radius: 28;
32
+ -moz-border-radius: 28;
33
+ border-radius: 28px;
34
+ font-family: Arial;
35
+ color: #ffffff;
36
+ font-size: 20px;
37
+ background: #34b2d9;
38
+ padding: 10px 20px 10px 20px;
39
+ text-decoration: none;
40
+ border-width: 1px;
41
+ border-style: solid;
42
+ }
43
+ input[type="submit"]:hover {
44
+ background: #3cb0fd;
45
+ background-image: -webkit-linear-gradient(top, #3cb0fd, #3498db);
46
+ background-image: -moz-linear-gradient(top, #3cb0fd, #3498db);
47
+ background-image: -ms-linear-gradient(top, #3cb0fd, #3498db);
48
+ background-image: -o-linear-gradient(top, #3cb0fd, #3498db);
49
+ background-image: linear-gradient(to bottom, #3cb0fd, #3498db);
50
+ text-decoration: none;
51
+ }
52
+ #main {
53
+ max-width: 600px;
54
+ margin: auto;
55
+ text-align: center;
56
+ }
57
+ #instructions-title {
58
+ font-size: 22px;
59
+ font-weight: bold;
60
+ margin-bottom: 10px;
61
+ }
62
+ #instructions {
63
+ font-size: 16px;
64
+ color: #999999;
65
+ margin-top: 0px;
66
+ padding-top: 0px;
67
+ }
68
+ </style>
69
+ STYLESHEET
70
+
71
+ FASTLANE_IMAGE = ""
72
+
73
+ class App < Sinatra::Base
74
+ get '/' do
75
+ info = Resque.info
76
+ out = "<html><head><title>Resque Demo</title>#{STYLESHEET}</head><body>"
77
+
78
+ out << '<div id="main">'
79
+ out << '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAR4AAABkCAYAAABQB1/FAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAEcVJREFUeNrsXTFz47YShm9SvSZK8Sbl0X1mTkr7kjE9k/6kX2DpF1hu3yssFUlr+RdY/gXS9Z6RPLm0MW/GvXllJkV0Tdo8rLiwYQgkQYoUSen7ZjB3tkmCXAAfdheLhRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl46jOL/fnj8KX/7RlafGvAlnCf/+6/hcAABBPoWRzLks34bKVLHNZxpKEQjQjAIB48hKOJ/+5kcXPeOuECWiF5gQAEE8W0uky6bRyPoJMrx60HwAA8biSTp9JJ8msUj6ddgI50XXH0HwAAMSTRjpEJIsYMpnKcm06kvke8gH1bZqPvL6DZgUAEE8S8TywFmOaTYO0lSsmoJksnvEn8veM0LQAAOJxNbGIbE5dzSX5DNKUHizkcwx/DwDUF19VWPe55XcDk3T+9b9/iKBOmFyImD78/fPRkv5G10ry6TH56KB7oPUAADSeV5oKkchTkokkCafNGlHb8oiJJJ8L7Xk34rXPh4IMj9G8AFBPvKmoXhuZTDXSIRNqFnMdYSiv0TWaa+PvHpMbAAAgnljiCQ2fTF+IVOK4ZIIS7Ig2/UIgHgAA8SQiNH5+n4PAAgetCgCAGuCrhr//s1YjtZ5TNCcAQOPJAjOA0DX6+B2aEABAPK7YMIs4Jkfhg+NzyMm8UL4eAACagaqW04ko/jJ+bS6n01YK3/GRpCEN/v75aL6vDfXDD//R96mtPn78DTmJssuQTPMWZHegGg8HCZokcW5oPT3LNXFm2Hr5XZLV1T5pP0Q2ssxk+UdEQZILLg/ydwt038zoy3IFMRyuqSViyGOhyEdqLytZiHxo0+eYy0AWCgw8jSGgIT2Dgw/3QcNR5ELf+42cqY9UkT9foPsCTcXOV7V4c2dcRLLHv1+qX0jyIbXYVI2XklyO+TlmpsI2k89Y3jtpcNvQzLyUJNOz/fHQzQVJzGSWn0g5YDVz74nn7tFncvD4N+GaFH76zmkQ8MbQK2FPg5EpmRdpRHS9JJihRX2m55PZRXu8BnxtkwYVvb/P2h4AHCDxRGRzxppFK+aauSSfXgLhtGK0E4XcqSxIq5EEs4zRoqi+tvz7QG0sjQObZ/St7wxi/UyaR9r9BaMNrQY4TOK5e0wjCx33KaaVLW+OGti9bU+NIHNMEscpaz59i/mmTK+RhXDo+kuRvMWCtmeQ1kR7wiZN06AAoG54E0M6RBZPjqRDmMeQDg30h5hBTfd0ijqqhp3R5HwmzWsVQx5EQJ7ScGR5YHL1HKpoMUE9yfu66DoAUCTxRKSzEPG5jYkollxCEfl4QoNwaHf4ggeqiXXMjSScXhn5kTmWpyOEldDIlHqgZXf+xjyrX2rpfoTuAwBFmFqReWUjHWVmTE2SsWg5SSdGOKU1LYB86B07TA6XFuIYxtwaMqF+5p+/Zq3PizO/Gr5yBgA1IB47YaxXmxwIR5kicYN6Iglnp7En5NPRHM9J5hR9G/mAppa/Xchn+PxtvvE3WjkLdux4BoA9MrWi1auuhXROHUhHmWfDGNOqt2vS0chnyaZX3HaK9d9jSOf5GbKQ89qm3dygGwFAfo3nzEYYknRWGsH0+To1889ZW+jHmFZLJp1KV4ESYn4CJpQ1fvm11zJMq+C/P87m2nMueEtGX3uGRytjScRVNXiPEhXzXDJqn/Djx9/CEupsa3XqfSooq859laVRvy9ex9JVWbdqz0DWnWmMH2kaz1+GIMeSdEYa6Zh5jdNQy2NmOF5nxt/aYX8QkU5f2IMb134pSUCB9owno+GJwDo5G/NKbDq5W8KI4DaRFrHLA0RNFJ7WQXWowRPyJHK9TefljqnHfIViM8mbr3VaqnOcVKd8Zt8yKQr+ppYQ8f5CU0Z5o513IUvuB5/kPdOY+i8T5OprffVWlmlWItiiTfW6KavExKXurzQzyxxwU410hhlIJxQFxOaUqP1QzA+RRFsjHT/BZFoTlbymI8ln9UzKr6+npXlPPS8jPsnyxfjdW673PmdnGXFHDfhdl3GDgDu16lxP8ucLee0kY30qR7bP/WbAda4StCG9zgkT0CqmP8XJwcsroxrKsm32A5ar8psS0ZG7Ym6TE8u0y9efy58H8rrllprdjd6m8nnzlPY857qJdEfpGs/dY98YSLRE3tGIx5zh40AvNmjaMcKSVFy+byyJZ6RpPaaG2CsqLQfPMgveDJqVABb8LbEdJeF+tSJJM+aF4z3KvxdwnWGOb50xwZy6ztR5tJcs9+xalpxt4F4NWK3+Fte/zNAHFFkNbBpUhnfP3KasoV7xvb249nyjzRymf8ecWVJRVmxOyaTTdvy+9xYTzJyxqsaM/z3OOlDYNJmLKABzyJ3PpZPf8Cx8msdM4wF1zANsVqOusVNZxpAeoZNFc6GBzkRHWudNjrr7/O3jPG3KRNfh9lzwt8QSzyHDNX9PrVNt8GzeTpplMhDBVLjlrRmy/LZaseT3pUHqc8c/RFnqUNef5q2fCWDM5NNy/G7lchhkNbeNutfaq0HgVuIJUwajy8eHDSUe14YNakw6LbavLwpa2aAO67EZlQTyZVwX4cjkDbFTYT9h9hBkqQ/+7rakxzIdcf8eOn630nSmBbTnismnzUTuRDxtcfeomx8uL3LbRNbh1SqXDrZMMT+rNDFJS1gV0WG0GSsQCXv1tGXlItPNXnNHbR2SLA2ciy1XFy3E50Lma59OmlM4B/mQNnzO/cUgnp++W1oGTt94+SBFG2jy1oE0U2HFMliDN5p6NdKIzgomADUZvU34u6cNrKI6alADs7YKWSrQFh2/4LFE39JiTSpNyxoULUwmcGrXyzgfz0YOZKX1sMP4NEbzISGdNs2pbGg984TOtrZXtaV0ITb3f60q3jZBA/VDwc/8JKo5jXUp3JP875ssafAXFoOjaR1BikzPuN6y3CW3psb3JsFUimy+aOPomnxkIUb8hkmIyOaItkI0mXQ0+JaZoicJ59gIHvTFZkxTZadbaL6DXWtcgVF/kc8ND0yWuhZ5W1JbvU3w7fTLdJUos1VfYXshnsjcmlvYf6H7e5iAllTEnuCXX3u27IoX+nYJJh0V9Wyzo6vC2gwscpbMMJOGGXwXrs+9KMq/0hRZ6vWXlHXyc4LGRe0XbhNsmMHke2/TeATbeCsL+TxI8hkZDucI9Lvob/0Gc89GjI4kndAgna6wpwyZ5IxYLmqghkU6BDW4nNJKs+R5CVrPIcqyKk3rRIidKBGfhOa7e0080YZQ29Exz9n3JMFQWXB5EFGmwnWY9h6ZWR80wvH4cMGZhXRoj9beHTOjJZtPG6gj1noWSc7LQ4arLCskHnq3+x3UE8QTT0Q+gYg/t0rZoT6X9ivNyKYR1d/MskUuz1OISQnydA8HiieSM1CaOOUZk8iHSr/i5fAmy/JLBa/pid341AJNJjHJ3ol87h4pjN2WPD0JZI40bVnd3Pkc6s5kMqMo2ZdBsjTQevuQ9F3TVHw2Cbr8fRPhsKytoo61XcwUD0LRsnPWHJdNTYGxa1lWRIxiB/6ddT+R9T0TXfwpE5HZNZAEdM1mVNeBuc8aSDzdFG1H+TLaIjlTYd06lNJMvzY6vSfsjsal0uKoI9qiTVM6Ft1P912wTE944qIYEpWuYd40EqpCljvWdkQVZnL6uVqR6TVgElI5R3ThX22YWykZC2tuZtmWFYmMVg0gnD5PEm2hJd0ybPixhTAKndlEFO9FZaClTFgTEZMQ1XmfZ/PlIclyh1jUj3g2SUgxeoS7x6sGm1uJZpZubgm3bSNVDRI9udl6wNflMEB+j+fIdo7leM/m2A2T+m1dBm2dZVliGx3Vm3jsmBvmSpPMLRczq+6mgMqHQ+9+UWEMimsnV1HiAyYh6i/klCbi6VX5/k2TZZNRRFoMM7y8raKd98TMqjtm7DsZNG2gEAnJQukwVP6Wp4pjghory5x4tdLUNOKZO2gSjTWzaq7t9EUB+XDqYI7Jok4CWVSxHL8vsswod0WuDSSeaPXLJJ/3DZC733QzS0TOz2lJs/PXFXwPDXr6livIcqdaT+laJmlVujZbVAbCDxsaT43NLWlmeRZhN9HMKmMntf7suE404hzBZczA44o05kpkWQOEwn1Lxzbo6xNKUcTTNHPLfLdVA82ssndS+wl/K9P/sRRR7E/7QGRZNe539H4nunyLIZ7mmVtne2BmtQw7vciBmDZpBGV1Vi3AsHUgsqwa1Pe9Mole2692X7TG0xhzK8bM+iAA09+xSlHPxb7sSq9YlpWCiX4pyt3kTWbWSg8YLZJ4mmJudRtmg6cNfq/g2ckXL4e4JXXWsIz2VWS244DCymRZE6wzBJaxrK4lz7/Wf18c8TTH3LIdh3spNaEH1oYaAW3w+wV3EoomJgfvF4fOel7C0ndX7Dg9RA1kWXVfmvL3l7GaeMmm7KQc4olwX2dzK8bM0rWeBw4sbArmYjP/8zYDZcFmgUvk+UTrWEUNVs82OyZoKd6eyLIOGLDW0y+wPelZ6kTTVSHEM/n+j66jueXXRbKcVbDDQrap8us805J8mpJPhgZoa9vdz8ZxvU6HyGlHlwyL6KzauU6BY+pT0oq8As2DymRZE61HbQa/Kag9++LlcMANXniTk3SITGby3wdZ2pq5FVrU5FqZW7RsLstUFkpg1RP245qvGtJZQh78l7Khhzk7CE0gD/xjRxsoqzSNggliyp31Jq/Zxb4Q9Q69DANlWVRbVS3LGplcinyu8rQn3UP3aqRjnUSOchLPwtBkBsPfv40quHscGp0hSqf6srO9EjBZruR7Bob5pTYGmkKmI22WVbwrD8SF665h7vA3TPq3aRoDdyi1QdNnP8REn51Zk3hiYlHBldZk5Dy7XWmag9NRKfze5/wOc5tKnnK/ajuV70ev0zPlwNrMCZ0JXjdZckDmfRk5n12+29L/Zjx2qT1T8yhxW5AM+nzfIGmB4CjHAFZC1DGWA3rExGP7u7LJLyQBzXdINi2xmUVR5Yuhd14lkA9pRYMmEI82AIY8kFviJRmV7th8y76stiaH2FMreRBean6xZVzn1eo/Ey/pNMOYd/B4kK74Pa/zrmLxoL7k5+laxca7ug7AKmRZJ+KJaU+Vj+iTcemJeEmIFrAMUk3lPMRj02iO1SDm0yZuEh4xluQz2hHpLES8MzmQ79zRNJ+R6VyUxHMkGggmrrY2OHS/yBfu9MsS61cDkjrjO4PQqfN+Lvsd9kWWNZGBSubWYqLRx/4nbtNMKW7zEM9MvI7fmMoBPGDSabG2k2YbHqsshUwQZawkvRfph9U/a2q84vVUF3MLAPYZeRKBmaSiL6G75GUWbPoorUfZk1XgTL0HrXhJ8jF36vpC7M/BhQBQFxQRx6OrV57jPe8Mda0qeAnfAgBAjYknD+oa2wDiAYCGEI+v/d91xeo+h5a0C6LBpkcA2AHy+HjMlAgvXu7oIMClSI5WDuV1U+1nM8BwPvz92962Hzb5/o++SF5dI4xTiCdAFwGAemg85n4s/1X0chR5GiSYWD2NHEjb6aY8Pxc4oHGacMn0OehRrFe1iKhaIB4AqCHxyME6F5s+mhtN61nJQvExFH6+1AppF8dGBLNNIykswJCX+QcGgaz3pDyHALzA3CAY8N4uAAAKRt4tEyPLQJ1aBnPSM4h0+ts8wwRrLbRE3pOkscpwn+1dBrSnC10EAOpDPHGBgnPWJlYp995YTCy6pyPvzaxl8G5yfWvE+txqF/KJIR066uYY3QMAakQ8TCC+sJ+5rPat3OobMtkPpDaR2YIMB7rPJSPxzGKIjMy9uY2A5D3m3hkdiFgGgDoSD5NJX6SvHLngQpJO7oRJCTvMFZbiZW8NBS/6CdfCxAKAOhOPRj5XIv+pALk1nYzk4/QuIB0AKB9bBxAyaXRE9j1NdH2nCNIh8LlYed6DELJ5BdIBgCZoPIb2Q1qHSuzkxQxwIgby/yzL+iip/VD9KkdLGuGMQTgA0GDiMUjITHcRJK12lURAnnhJ1qRjnYCqaaeHAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQW/xfgAEA/NRW1+Xxj70AAAAASUVORK5CYII=" />'
80
+ out << "<p>"
81
+ out << "There are #{info[:pending]} pending and "
82
+ out << "#{info[:processed]} processed jobs across #{info[:queues]} queue(s)"
83
+ out << "</p>"
84
+ out << "<p>"
85
+ out << '<a id="view-rescue" target="_blank">Manage Queue</a>'
86
+ out << "</p>"
87
+ out << '<form method="POST">'
88
+ out << '<textarea rows="10" name="runs" placeholder="fastlane ios build"></textarea>'
89
+ out << '<input type="submit" value="Queue Job(s)"/>'
90
+ out << '</form>'
91
+ out << '<p id="instructions-title">'
92
+ out << 'Instructions'
93
+ out << '</p>'
94
+ out << '<p id="instructions">'
95
+ out << 'Enter one fastlane command per line<br/>'
96
+ out << 'Example: "fastlane ios build environment:staging"<br/>'
97
+ out << '</p>'
98
+ out << '</div>'
99
+
100
+ out << "</body>"
101
+ out << "<script>"
102
+ out << 'document.getElementById("view-rescue").href = window.location.protocol + "//" + window.location.hostname + ":5678";'
103
+ out << "</script>"
104
+ out << "</html>"
105
+ out
106
+ end
107
+
108
+ post '/' do
109
+ runs = params[:runs]
110
+ runs.split("\n").each do |run|
111
+ Resque.enqueue(Job, {run: run})
112
+ end
113
+ redirect "/"
114
+ end
115
+ end
@@ -14,6 +14,11 @@ class Job
14
14
 
15
15
  if run
16
16
  args = run.split(' ')
17
+
18
+ if args.first == "fastlane"
19
+ args.shift
20
+ end
21
+
17
22
  Fastlane::CommandLineHandler.handle(args, MockOptions.new)
18
23
  else
19
24
  platform = nil if platform.to_s.size == 0
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Queue
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-queue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Holtz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-29 00:00:00.000000000 Z
11
+ date: 2017-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: resque
@@ -137,7 +137,7 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  description:
140
- email: josh@rokkincat.com
140
+ email: me@joshholtz.com
141
141
  executables: []
142
142
  extensions: []
143
143
  extra_rdoc_files: []
@@ -148,11 +148,12 @@ files:
148
148
  - lib/fastlane/plugin/queue/actions/queue_action.rb
149
149
  - lib/fastlane/plugin/queue/actions/queue_start_action.rb
150
150
  - lib/fastlane/plugin/queue/actions/queue_stop_action.rb
151
+ - lib/fastlane/plugin/queue/helper/app.rb
151
152
  - lib/fastlane/plugin/queue/helper/job.rb
152
153
  - lib/fastlane/plugin/queue/helper/queue_helper.rb
153
154
  - lib/fastlane/plugin/queue/version.rb
154
155
  - lib/tasks/resque.rake
155
- homepage:
156
+ homepage: https://github.com/joshdholtz/fastlane-plugin-queue
156
157
  licenses:
157
158
  - MIT
158
159
  metadata: {}