licensed 3.0.0 → 3.2.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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +19 -0
  3. data/.github/workflows/release.yml +4 -4
  4. data/.github/workflows/test.yml +180 -47
  5. data/.ruby-version +1 -1
  6. data/CHANGELOG.md +60 -1
  7. data/README.md +25 -79
  8. data/docker/Dockerfile.build-linux +1 -1
  9. data/docs/adding_a_new_source.md +11 -8
  10. data/docs/commands/README.md +59 -0
  11. data/docs/commands/cache.md +35 -0
  12. data/docs/commands/env.md +10 -0
  13. data/docs/commands/list.md +23 -0
  14. data/docs/commands/migrate.md +10 -0
  15. data/docs/commands/notices.md +12 -0
  16. data/docs/commands/status.md +74 -0
  17. data/docs/commands/version.md +3 -0
  18. data/docs/configuration/README.md +11 -0
  19. data/docs/configuration/allowed_licenses.md +17 -0
  20. data/docs/configuration/application_name.md +63 -0
  21. data/docs/configuration/application_source.md +64 -0
  22. data/docs/configuration/configuration_root.md +27 -0
  23. data/docs/configuration/configuring_multiple_apps.md +58 -0
  24. data/docs/configuration/dependency_source_enumerators.md +28 -0
  25. data/docs/configuration/ignoring_dependencies.md +19 -0
  26. data/docs/configuration/metadata_cache.md +106 -0
  27. data/docs/configuration/reviewing_dependencies.md +18 -0
  28. data/docs/configuration.md +9 -161
  29. data/docs/sources/swift.md +4 -0
  30. data/lib/licensed/cli.rb +2 -2
  31. data/lib/licensed/commands/cache.rb +19 -20
  32. data/lib/licensed/commands/command.rb +104 -72
  33. data/lib/licensed/commands/environment.rb +12 -11
  34. data/lib/licensed/commands/list.rb +0 -19
  35. data/lib/licensed/commands/notices.rb +0 -19
  36. data/lib/licensed/commands/status.rb +13 -15
  37. data/lib/licensed/configuration.rb +105 -12
  38. data/lib/licensed/report.rb +44 -0
  39. data/lib/licensed/reporters/cache_reporter.rb +48 -64
  40. data/lib/licensed/reporters/json_reporter.rb +19 -21
  41. data/lib/licensed/reporters/list_reporter.rb +45 -58
  42. data/lib/licensed/reporters/notices_reporter.rb +33 -46
  43. data/lib/licensed/reporters/reporter.rb +37 -104
  44. data/lib/licensed/reporters/status_reporter.rb +58 -56
  45. data/lib/licensed/reporters/yaml_reporter.rb +19 -21
  46. data/lib/licensed/sources/bundler/definition.rb +36 -0
  47. data/lib/licensed/sources/bundler/missing_specification.rb +1 -1
  48. data/lib/licensed/sources/bundler.rb +38 -86
  49. data/lib/licensed/sources/dep.rb +2 -2
  50. data/lib/licensed/sources/go.rb +3 -3
  51. data/lib/licensed/sources/gradle.rb +2 -2
  52. data/lib/licensed/sources/helpers/content_versioning.rb +2 -1
  53. data/lib/licensed/sources/npm.rb +4 -3
  54. data/lib/licensed/sources/nuget.rb +56 -27
  55. data/lib/licensed/sources/swift.rb +69 -0
  56. data/lib/licensed/sources.rb +1 -0
  57. data/lib/licensed/version.rb +1 -1
  58. data/lib/licensed.rb +1 -0
  59. data/licensed.gemspec +4 -4
  60. data/script/source-setup/go +1 -1
  61. data/script/source-setup/swift +22 -0
  62. metadata +48 -13
  63. data/docs/commands.md +0 -95
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 26f8098aaee2e88489ccdebc2a4a37a6da75bc2bb7c1179a94eb9c62bd6428ea
4
- data.tar.gz: f2bcc523cc918a383559164e953c3453f4b456f71ce4ea6edf6ff207adeae99e
3
+ metadata.gz: 157405d5c26fe8026b4c8d521a5753be821bb2727d9713f7732e2601699660e7
4
+ data.tar.gz: 1f02c3bf319500352632331f72dfc40cbfaf6a0d00350570223d3b37b2496ca7
5
5
  SHA512:
6
- metadata.gz: 5d31ba213998214f387fb053b1038c6010bfffc42babb0dcf502062a6effced42404a09f1d22741d60ab92a9723c64c6af5a0333f1576f1970c9a5adcc89f2cf
7
- data.tar.gz: b06150a91ba3d2b0364f1c4a8347fa55b1ebd4ecbf97524e267f613dfc9138a8ced44a308fc80d25238147d1a237cead91dc8e9ccb29cd0736195d977d0aa516
6
+ metadata.gz: fa9b3832cfda8a30f99c7718a6e4c9433145e37cb51070c5e1a59009ff5b29269353ddeb68480196bd1f1680bd8c01c4ddd3538bea2f7401fcddcdb542f62ada
7
+ data.tar.gz: ee5718fb34a1d23738849101b121db785fdc83d587d0f7750c2cc1e613f0c8a6ece707e427bb18473f04ef67569499db28e75ce80f14f0dde2cd09e18ed14053
@@ -0,0 +1,19 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: github-actions
9
+ directory: /
10
+ schedule:
11
+ interval: daily
12
+ - package-ecosystem: bundler
13
+ directory: /
14
+ schedule:
15
+ interval: weekly
16
+ - package-ecosystem: docker
17
+ directory: docker
18
+ schedule:
19
+ interval: weekly
@@ -23,7 +23,7 @@ jobs:
23
23
  steps:
24
24
  - id: get_version
25
25
  name: Get package version
26
- uses: actions/github-script@v3
26
+ uses: actions/github-script@v4.1
27
27
  with:
28
28
  github-token: ${{ secrets.GITHUB_TOKEN }}
29
29
  result-encoding: string
@@ -41,7 +41,7 @@ jobs:
41
41
 
42
42
  - id: get_url
43
43
  name: Get release upload url
44
- uses: actions/github-script@v3
44
+ uses: actions/github-script@v4.1
45
45
  with:
46
46
  github-token: ${{ secrets.GITHUB_TOKEN }}
47
47
  result-encoding: string
@@ -65,7 +65,7 @@ jobs:
65
65
 
66
66
  - id: get_ref
67
67
  name: Get checkout ref for custom build scripts
68
- uses: actions/github-script@v3
68
+ uses: actions/github-script@v4.1
69
69
  with:
70
70
  github-token: ${{ secrets.GITHUB_TOKEN }}
71
71
  result-encoding: string
@@ -210,4 +210,4 @@ jobs:
210
210
  gem push $GEM
211
211
  env:
212
212
  RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
213
- GEM: licensed-${{needs.vars.outputs.version}}.gem
213
+ GEM: licensed-${{needs.vars.outputs.version}}.gem
@@ -18,10 +18,13 @@ jobs:
18
18
  with:
19
19
  ruby-version: 2.6
20
20
  - run: bundle lock
21
- - uses: actions/cache@v1
21
+ - uses: actions/cache@v2
22
+ name: cache gem dependencies
22
23
  with:
23
24
  path: vendor/gems
24
- key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }}
25
+ key: ${{ runner.os }}-gem-2.6-${{ hashFiles('**/Gemfile.lock') }}
26
+ restore-keys: |
27
+ ${{ runner.os }}-gem-2.6-
25
28
  - name: Bootstrap
26
29
  run: script/bootstrap
27
30
  - name: Set up fixtures
@@ -33,7 +36,7 @@ jobs:
33
36
  runs-on: ubuntu-latest
34
37
  strategy:
35
38
  matrix:
36
- bundler: [ '~> 1.15.0', '~> 1.16.0', '~> 1.17.0', '~> 2.0.0' ]
39
+ bundler: [ '~> 1.17.0', '~> 2.0.0', '~> 2.1.0', '~> 2.2.0' ]
37
40
  steps:
38
41
  - uses: actions/checkout@v2
39
42
  - name: Set up Ruby
@@ -45,10 +48,13 @@ jobs:
45
48
  yes | gem uninstall bundler --all
46
49
  gem install bundler -v "${{ matrix.bundler }}"
47
50
  - run: bundle lock
48
- - uses: actions/cache@v1
51
+ - uses: actions/cache@v2
52
+ name: cache gem dependencies
49
53
  with:
50
54
  path: vendor/gems
51
- key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }}
55
+ key: ${{ runner.os }}-gem-2.6-${{ hashFiles('**/Gemfile.lock') }}
56
+ restore-keys: |
57
+ ${{ runner.os }}-gem-2.6-
52
58
  - name: Bootstrap
53
59
  run: script/bootstrap
54
60
  - name: Set up fixtures
@@ -60,8 +66,8 @@ jobs:
60
66
  runs-on: ubuntu-latest
61
67
  strategy:
62
68
  matrix:
63
- ghc: [ '8.2', '8.6', '8.8', '8.10' ]
64
- cabal: [ '2.4', '3.0', '3.2' ]
69
+ ghc: [ '8.6', '8.8', '8.10', '9.0' ]
70
+ cabal: [ '3.0', '3.2', '3.4' ]
65
71
  steps:
66
72
  - uses: actions/checkout@v2
67
73
  - name: Set up Ruby
@@ -74,10 +80,22 @@ jobs:
74
80
  ghc-version: ${{ matrix.ghc }}
75
81
  cabal-version: ${{ matrix.cabal }}
76
82
  - run: bundle lock
77
- - uses: actions/cache@v1
83
+ - name: cache cabal dependencies
84
+ uses: actions/cache@v2
85
+ with:
86
+ path: |
87
+ ~/.cabal/packages
88
+ ~/.cabal/store
89
+ key: ${{ runner.os }}-cabal-${{ matrix.ghc }}-${{ hashFiles('**/app.cabal') }}
90
+ restore-keys: |
91
+ ${{ runner.os }}-cabal-
92
+ - uses: actions/cache@v2
93
+ name: cache gem dependencies
78
94
  with:
79
95
  path: vendor/gems
80
- key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }}
96
+ key: ${{ runner.os }}-gem-2.6-${{ hashFiles('**/Gemfile.lock') }}
97
+ restore-keys: |
98
+ ${{ runner.os }}-gem-2.6-
81
99
  - name: Bootstrap
82
100
  run: script/bootstrap
83
101
  - name: Set up fixtures
@@ -89,11 +107,11 @@ jobs:
89
107
  runs-on: ubuntu-latest
90
108
  strategy:
91
109
  matrix:
92
- php: [ '7.3', '7.4' ]
110
+ php: [ '7.4', '8.0' ]
93
111
  steps:
94
112
  - uses: actions/checkout@v2
95
113
  - name: Setup php
96
- uses: nanasess/setup-php@v3.0.6
114
+ uses: nanasess/setup-php@v3.0.8
97
115
  with:
98
116
  php-version: ${{ matrix.php }}
99
117
  - name: Set up Ruby
@@ -101,10 +119,13 @@ jobs:
101
119
  with:
102
120
  ruby-version: 2.6
103
121
  - run: bundle lock
104
- - uses: actions/cache@v1
122
+ - uses: actions/cache@v2
123
+ name: cache gem dependencies
105
124
  with:
106
125
  path: vendor/gems
107
- key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }}
126
+ key: ${{ runner.os }}-gem-2.6-${{ hashFiles('**/Gemfile.lock') }}
127
+ restore-keys: |
128
+ ${{ runner.os }}-gem-2.6-
108
129
  - name: Bootstrap
109
130
  run: script/bootstrap
110
131
  - name: Set up fixtures
@@ -116,7 +137,7 @@ jobs:
116
137
  runs-on: ubuntu-latest
117
138
  strategy:
118
139
  matrix:
119
- ruby: [ 2.5, 2.6, 2.7 ]
140
+ ruby: [ 2.6, 2.7, 3.0 ]
120
141
  steps:
121
142
  - uses: actions/checkout@v2
122
143
  - name: Set up Ruby
@@ -126,10 +147,13 @@ jobs:
126
147
  - name: Set up Bundler
127
148
  run: gem install bundler
128
149
  - run: bundle lock
129
- - uses: actions/cache@v1
150
+ - uses: actions/cache@v2
151
+ name: cache gem dependencies
130
152
  with:
131
153
  path: vendor/gems
132
154
  key: ${{ runner.os }}-gem-${{ matrix.ruby }}-${{ hashFiles('**/Gemfile.lock') }}
155
+ restore-keys: |
156
+ ${{ runner.os }}-gem-${{ matrix.ruby }}-
133
157
  - name: Bootstrap
134
158
  run: script/bootstrap
135
159
  - name: Build and lint
@@ -142,7 +166,7 @@ jobs:
142
166
  steps:
143
167
  - uses: actions/checkout@v2
144
168
  - name: Setup go
145
- uses: actions/setup-go@v1
169
+ uses: actions/setup-go@v2
146
170
  with:
147
171
  go-version: 1.10.x
148
172
  - name: Set up Ruby
@@ -150,10 +174,13 @@ jobs:
150
174
  with:
151
175
  ruby-version: 2.6
152
176
  - run: bundle lock
153
- - uses: actions/cache@v1
177
+ - uses: actions/cache@v2
178
+ name: cache gem dependencies
154
179
  with:
155
180
  path: vendor/gems
156
- key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }}
181
+ key: ${{ runner.os }}-gem-2.6-${{ hashFiles('**/Gemfile.lock') }}
182
+ restore-keys: |
183
+ ${{ runner.os }}-gem-2.6-
157
184
  - name: Bootstrap
158
185
  run: script/bootstrap
159
186
  - name: Set up fixtures
@@ -165,11 +192,11 @@ jobs:
165
192
  runs-on: ubuntu-latest
166
193
  strategy:
167
194
  matrix:
168
- go: [ '1.10.x', '1.11.x', '1.12.x', '1.13.x', '1.14.x', '1.15.x' ]
195
+ go: [ '1.12.x', '1.13.x', '1.14.x', '1.15.x', '1.16.x' ]
169
196
  steps:
170
197
  - uses: actions/checkout@v2
171
198
  - name: Setup go
172
- uses: actions/setup-go@v1
199
+ uses: actions/setup-go@v2
173
200
  with:
174
201
  go-version: ${{ matrix.go }}
175
202
  - name: Set up Ruby
@@ -177,19 +204,40 @@ jobs:
177
204
  with:
178
205
  ruby-version: 2.6
179
206
  - run: bundle lock
180
- - uses: actions/cache@v1
207
+ - uses: actions/cache@v2
208
+ name: cache go dependencies
209
+ with:
210
+ path: |
211
+ ~/.cache/go-build
212
+ ~/go/pkg/mod
213
+ key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
214
+ restore-keys: |
215
+ ${{ runner.os }}-go-
216
+ - uses: actions/cache@v2
217
+ name: cache gem dependencies
181
218
  with:
182
219
  path: vendor/gems
183
- key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }}
220
+ key: ${{ runner.os }}-gem-2.6-${{ hashFiles('**/Gemfile.lock') }}
221
+ restore-keys: |
222
+ ${{ runner.os }}-gem-2.6-
184
223
  - name: Bootstrap
185
224
  run: script/bootstrap
186
225
  - name: Set up fixtures
187
226
  run: script/source-setup/go
188
227
  - name: Run tests
189
228
  run: script/test go
229
+ env:
230
+ GO111MODULE: "on"
190
231
 
191
232
  gradle:
192
233
  runs-on: ubuntu-latest
234
+ strategy:
235
+ matrix:
236
+ # TODO: the reporting plugin used to gather data is not yet fully compatible with
237
+ # gradle 7, which is needed for compatibility with Java 16. after compatibility issues
238
+ # are resolved, update this matrix list with '16'.
239
+ # possibly fixed by https://github.com/jk1/Gradle-License-Report/pull/166
240
+ java: [ '11' ]
193
241
  steps:
194
242
  - uses: actions/checkout@v2
195
243
  - name: Set up Ruby
@@ -197,10 +245,27 @@ jobs:
197
245
  with:
198
246
  ruby-version: 2.6
199
247
  - run: bundle lock
200
- - uses: actions/cache@v1
248
+ - name: Set up Java
249
+ uses: actions/setup-java@v2
250
+ with:
251
+ java-version: ${{ matrix.java }}
252
+ distribution: adopt
253
+ - uses: actions/cache@v2
254
+ name: cache gradle dependencies
255
+ with:
256
+ path: |
257
+ ~/.gradle/caches
258
+ ~/.gradle/wrapper
259
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
260
+ restore-keys: |
261
+ ${{ runner.os }}-gradle-
262
+ - uses: actions/cache@v2
263
+ name: cache gem dependencies
201
264
  with:
202
265
  path: vendor/gems
203
- key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }}
266
+ key: ${{ runner.os }}-gem-2.6-${{ hashFiles('**/Gemfile.lock') }}
267
+ restore-keys: |
268
+ ${{ runner.os }}-gem-2.6-
204
269
  - name: Bootstrap
205
270
  run: script/bootstrap
206
271
  - name: Gradle version
@@ -217,10 +282,13 @@ jobs:
217
282
  with:
218
283
  ruby-version: 2.6
219
284
  - run: bundle lock
220
- - uses: actions/cache@v1
285
+ - uses: actions/cache@v2
286
+ name: cache gem dependencies
221
287
  with:
222
288
  path: vendor/gems
223
- key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }}
289
+ key: ${{ runner.os }}-gem-2.6-${{ hashFiles('**/Gemfile.lock') }}
290
+ restore-keys: |
291
+ ${{ runner.os }}-gem-2.6-
224
292
  - name: Bootstrap
225
293
  run: script/bootstrap
226
294
  - name: Run tests
@@ -230,11 +298,11 @@ jobs:
230
298
  runs-on: ubuntu-latest
231
299
  strategy:
232
300
  matrix:
233
- otp: [21.x, 22.x, 23.x]
234
- elixir: [ 1.10.x, 1.11.x ]
301
+ otp: [22.x, 23.x, 24.x]
302
+ elixir: [ 1.11.x, 1.12.x ]
235
303
  steps:
236
304
  - uses: actions/checkout@v2
237
- - uses: erlef/setup-elixir@v1.6.0
305
+ - uses: erlef/setup-elixir@v1.9
238
306
  with:
239
307
  otp-version: ${{matrix.otp}}
240
308
  elixir-version: ${{matrix.elixir}}
@@ -243,10 +311,13 @@ jobs:
243
311
  with:
244
312
  ruby-version: 2.6
245
313
  - run: bundle lock
246
- - uses: actions/cache@v1
314
+ - uses: actions/cache@v2
315
+ name: cache gem dependencies
247
316
  with:
248
317
  path: vendor/gems
249
- key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }}
318
+ key: ${{ runner.os }}-gem-2.6-${{ hashFiles('**/Gemfile.lock') }}
319
+ restore-keys: |
320
+ ${{ runner.os }}-gem-2.6-
250
321
  - name: Bootstrap
251
322
  run: script/bootstrap
252
323
  - name: Set up fixtures
@@ -258,7 +329,7 @@ jobs:
258
329
  runs-on: ubuntu-latest
259
330
  strategy:
260
331
  matrix:
261
- node_version: [ 10, 12, 14, 15 ]
332
+ node_version: [ 12, 14, 16 ]
262
333
  steps:
263
334
  - uses: actions/checkout@v2
264
335
  - name: Setup node
@@ -270,10 +341,13 @@ jobs:
270
341
  with:
271
342
  ruby-version: 2.6
272
343
  - run: bundle lock
273
- - uses: actions/cache@v1
344
+ - uses: actions/cache@v2
345
+ name: cache gem dependencies
274
346
  with:
275
347
  path: vendor/gems
276
- key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }}
348
+ key: ${{ runner.os }}-gem-2.6-${{ hashFiles('**/Gemfile.lock') }}
349
+ restore-keys: |
350
+ ${{ runner.os }}-gem-2.6-
277
351
  - name: Bootstrap
278
352
  run: script/bootstrap
279
353
  - name: Set up fixtures
@@ -283,21 +357,27 @@ jobs:
283
357
 
284
358
  nuget:
285
359
  runs-on: ubuntu-latest
360
+ strategy:
361
+ matrix:
362
+ dotnet: [ '3.1.x', '5.x' ]
286
363
  steps:
287
364
  - uses: actions/checkout@v2
288
365
  - name: Setup dotnet
289
366
  uses: actions/setup-dotnet@v1
290
367
  with:
291
- dotnet-version: 3.1.202
368
+ dotnet-version: ${{ matrix.dotnet }}
292
369
  - name: Set up Ruby
293
370
  uses: ruby/setup-ruby@v1
294
371
  with:
295
372
  ruby-version: 2.6
296
373
  - run: bundle lock
297
- - uses: actions/cache@v1
374
+ - uses: actions/cache@v2
375
+ name: cache gem dependencies
298
376
  with:
299
377
  path: vendor/gems
300
- key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }}
378
+ key: ${{ runner.os }}-gem-2.6-${{ hashFiles('**/Gemfile.lock') }}
379
+ restore-keys: |
380
+ ${{ runner.os }}-gem-2.6-
301
381
  - name: Bootstrap
302
382
  run: script/bootstrap
303
383
  - name: Set up fixtures
@@ -309,11 +389,11 @@ jobs:
309
389
  runs-on: ubuntu-latest
310
390
  strategy:
311
391
  matrix:
312
- python: [ '2.x', '3.x' ]
392
+ python: [ '3.6', '3.7', '3.8', '3.9' ]
313
393
  steps:
314
394
  - uses: actions/checkout@v2
315
395
  - name: Setup python
316
- uses: actions/setup-python@v1
396
+ uses: actions/setup-python@v2
317
397
  with:
318
398
  python-version: ${{ matrix.python }}
319
399
  architecture: x64
@@ -322,10 +402,20 @@ jobs:
322
402
  with:
323
403
  ruby-version: 2.6
324
404
  - run: bundle lock
325
- - uses: actions/cache@v1
405
+ - uses: actions/cache@v2
406
+ name: cache pip dependencies
407
+ with:
408
+ path: ~/.cache/pip
409
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
410
+ restore-keys: |
411
+ ${{ runner.os }}-pip-
412
+ - uses: actions/cache@v2
413
+ name: cache gem dependencies
326
414
  with:
327
415
  path: vendor/gems
328
- key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }}
416
+ key: ${{ runner.os }}-gem-2.6-${{ hashFiles('**/Gemfile.lock') }}
417
+ restore-keys: |
418
+ ${{ runner.os }}-gem-2.6-
329
419
  - name: Bootstrap
330
420
  run: script/bootstrap
331
421
  - name: Install virtualenv
@@ -340,7 +430,7 @@ jobs:
340
430
  steps:
341
431
  - uses: actions/checkout@v2
342
432
  - name: Setup python
343
- uses: actions/setup-python@v1
433
+ uses: actions/setup-python@v2
344
434
  with:
345
435
  python-version: '3.x'
346
436
  architecture: x64
@@ -349,10 +439,13 @@ jobs:
349
439
  with:
350
440
  ruby-version: 2.6
351
441
  - run: bundle lock
352
- - uses: actions/cache@v1
442
+ - uses: actions/cache@v2
443
+ name: cache gem dependencies
353
444
  with:
354
445
  path: vendor/gems
355
- key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }}
446
+ key: ${{ runner.os }}-gem-2.6-${{ hashFiles('**/Gemfile.lock') }}
447
+ restore-keys: |
448
+ ${{ runner.os }}-gem-2.6-
356
449
  - name: Bootstrap
357
450
  run: script/bootstrap
358
451
  - name: Install pipenv
@@ -362,6 +455,43 @@ jobs:
362
455
  - name: Run tests
363
456
  run: script/test pipenv
364
457
 
458
+ swift:
459
+ runs-on: ubuntu-latest
460
+ strategy:
461
+ matrix:
462
+ swift: [ "5.4", "5.3" ]
463
+ steps:
464
+ - uses: actions/checkout@v2
465
+ - name: Setup Swift
466
+ uses: fwal/setup-swift@v1
467
+ with:
468
+ swift-version: ${{ matrix.swift }}
469
+ - name: Set up Ruby
470
+ uses: ruby/setup-ruby@v1
471
+ with:
472
+ ruby-version: 2.6
473
+ - run: bundle lock
474
+ - uses: actions/cache@v2
475
+ name: cache spm dependencies
476
+ with:
477
+ path: .build
478
+ key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
479
+ restore-keys: |
480
+ ${{ runner.os }}-spm-
481
+ - uses: actions/cache@v2
482
+ name: cache gem dependencies
483
+ with:
484
+ path: vendor/gems
485
+ key: ${{ runner.os }}-gem-2.6-${{ hashFiles('**/Gemfile.lock') }}
486
+ restore-keys: |
487
+ ${{ runner.os }}-gem-2.6-
488
+ - name: Bootstrap
489
+ run: script/bootstrap
490
+ - name: Set up fixtures
491
+ run: script/source-setup/swift
492
+ - name: Run tests
493
+ run: script/test swift
494
+
365
495
  yarn:
366
496
  runs-on: ubuntu-latest
367
497
  strategy:
@@ -383,13 +513,16 @@ jobs:
383
513
  with:
384
514
  ruby-version: 2.6
385
515
  - run: bundle lock
386
- - uses: actions/cache@v1
516
+ - uses: actions/cache@v2
517
+ name: cache gem dependencies
387
518
  with:
388
519
  path: vendor/gems
389
- key: ${{ runner.os }}-gem-2.6.x-${{ hashFiles('**/Gemfile.lock') }}
520
+ key: ${{ runner.os }}-gem-2.6-${{ hashFiles('**/Gemfile.lock') }}
521
+ restore-keys: |
522
+ ${{ runner.os }}-gem-2.6-
390
523
  - name: Bootstrap
391
524
  run: script/bootstrap
392
525
  - name: Set up fixtures
393
526
  run: script/source-setup/yarn
394
527
  - name: Run tests
395
- run: script/test yarn
528
+ run: script/test yarn