danger-spm_version_updates 0.1.2 → 0.1.3
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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/danger-spm_version_updates.gemspec +1 -1
- data/lib/spm_version_updates/gem_version.rb +1 -1
- data/lib/spm_version_updates/git.rb +56 -0
- data/lib/spm_version_updates/plugin.rb +14 -102
- data/lib/spm_version_updates/xcode.rb +67 -0
- metadata +4 -29
- data/.editorconfig +0 -15
- data/.github/workflows/docs.yml +0 -43
- data/.github/workflows/lint_and_test.yml +0 -32
- data/.github/workflows/push_gem.yml +0 -26
- data/.github/workflows/readme.yml +0 -21
- data/.gitignore +0 -136
- data/.idea/.gitignore +0 -8
- data/.idea/danger-plugin-spm-version-updates.iml +0 -130
- data/.idea/misc.xml +0 -4
- data/.idea/modules.xml +0 -8
- data/.idea/vcs.xml +0 -6
- data/.markdownlint.jsonc +0 -6
- data/.reek.yml +0 -129
- data/.rubocop.yml +0 -508
- data/spec/spec_helper.rb +0 -61
- data/spec/spm_version_updates_spec.rb +0 -194
- data/spec/support/fixtures/Branch.xcodeproj/project.pbxproj +0 -80
- data/spec/support/fixtures/Branch.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +0 -265
- data/spec/support/fixtures/ExactVersion.xcodeproj/project.pbxproj +0 -80
- data/spec/support/fixtures/ExactVersion.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +0 -265
- data/spec/support/fixtures/NoResolvedVersion.xcodeproj/project.pbxproj +0 -80
- data/spec/support/fixtures/NoResolvedVersion.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +0 -256
- data/spec/support/fixtures/UpToNextMajor.xcodeproj/project.pbxproj +0 -80
- data/spec/support/fixtures/UpToNextMajor.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +0 -265
- data/spec/support/fixtures/VersionRange.xcodeproj/project.pbxproj +0 -81
- data/spec/support/fixtures/VersionRange.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +0 -265
- data/spec/support/fixtures/github_pr.json +0 -268
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45434b8470d53708ee3261e6415b61eb6ca22dd4c3bd2080cbb0f28014c48276
|
4
|
+
data.tar.gz: c41a9d67f408fdaeaec72bdca65a8b0abefd998c0e852d9ce1f4c4ed76bda79c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 949714767a85ebbf99c10aa1e8b424344a54a0cd3d8c7e1dcaae759b3f656a92f45b6df6adf9bf90468448f80636025ec659758c9309bf1a3c723f2c24ccfe18
|
7
|
+
data.tar.gz: 75e265f2a49a1efddae3c0272818ef67e2254739ce100bf3551306e670fe0e7e9fc5b608a49e91aa7b218bde1a92ae2d856ee87bd8e58276d4d01d53e18932ee
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -45,7 +45,7 @@ spm_version_updates.report_above_maximum = true
|
|
45
45
|
# Whether to report pre-release versions, default false
|
46
46
|
spm_version_updates.report_pre_releases = true
|
47
47
|
|
48
|
-
# A list of
|
48
|
+
# A list of repository URLs for packages to ignore entirely
|
49
49
|
spm_version_updates.ignore_repos = ["https://github.com/pointfreeco/swift-snapshot-testing"]
|
50
50
|
```
|
51
51
|
|
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.license = "MIT"
|
16
16
|
spec.required_ruby_version = ">= 3.0"
|
17
17
|
|
18
|
-
spec.files =
|
18
|
+
spec.files = Dir['lib/*'] + Dir['lib/**/*'] + Dir['*']
|
19
19
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
spec.metadata["rubygems_mfa_required"] = "true"
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Git
|
4
|
+
# Removes protocol and trailing .git from a repo URL
|
5
|
+
# @param [String] repo_url
|
6
|
+
# The URL of the repository
|
7
|
+
# @return [String]
|
8
|
+
def self.trim_repo_url(repo_url)
|
9
|
+
repo_url.split("://").last.gsub(/\.git$/, "")
|
10
|
+
end
|
11
|
+
|
12
|
+
# Extract a readable name for the repo given the url, generally org/repo
|
13
|
+
# @return [String]
|
14
|
+
def self.repo_name(repo_url)
|
15
|
+
match = repo_url.match(%r{([\w-]+/[\w-]+)(.git)?$})
|
16
|
+
|
17
|
+
if match
|
18
|
+
match[1] || match[0]
|
19
|
+
else
|
20
|
+
repo_url
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# Call git to list tags
|
25
|
+
# @param [String] repo_url
|
26
|
+
# The URL of the dependency's repository
|
27
|
+
# @return [Array<Semantic::Version>]
|
28
|
+
def self.version_tags(repo_url)
|
29
|
+
versions = `git ls-remote -t #{repo_url}`
|
30
|
+
.split("\n")
|
31
|
+
.map { |line| line.split("/tags/").last }
|
32
|
+
.filter_map { |line|
|
33
|
+
begin
|
34
|
+
Semantic::Version.new(line)
|
35
|
+
rescue ArgumentError
|
36
|
+
nil
|
37
|
+
end
|
38
|
+
}
|
39
|
+
versions.sort!
|
40
|
+
versions.reverse!
|
41
|
+
versions
|
42
|
+
end
|
43
|
+
|
44
|
+
# Call git to find the last commit on a branch
|
45
|
+
# @param [String] repo_url
|
46
|
+
# The URL of the dependency's repository
|
47
|
+
# @param [String] branch_name
|
48
|
+
# The name of the branch on which to find the last commit
|
49
|
+
# @return [String]
|
50
|
+
def self.branch_last_commit(repo_url, branch_name)
|
51
|
+
`git ls-remote -h #{repo_url}`
|
52
|
+
.split("\n")
|
53
|
+
.find { |line| line.split("\trefs/heads/")[1] == branch_name }
|
54
|
+
.split("\trefs/heads/")[0]
|
55
|
+
end
|
56
|
+
end
|
@@ -1,7 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "semantic"
|
4
|
-
|
4
|
+
require_relative "git"
|
5
|
+
require_relative "xcode"
|
5
6
|
|
6
7
|
module Danger
|
7
8
|
# A Danger plugin for checking if there are versions upgrades available for SPM dependencies
|
@@ -25,38 +26,42 @@ module Danger
|
|
25
26
|
# @return [Boolean]
|
26
27
|
attr_accessor :report_pre_releases
|
27
28
|
|
28
|
-
# A list of
|
29
|
+
# A list of repository URLs for packages to ignore entirely
|
29
30
|
# @return [Array<String>]
|
30
31
|
attr_accessor :ignore_repos
|
31
32
|
|
32
33
|
# A method that you can call from your Dangerfile
|
33
34
|
# @param [String] xcodeproj_path
|
34
35
|
# The path to your Xcode project
|
36
|
+
# @raise [XcodeprojPathMustBeSet] if the xcodeproj_path is blank
|
35
37
|
# @return [void]
|
36
38
|
def check_for_updates(xcodeproj_path)
|
37
|
-
remote_packages =
|
38
|
-
resolved_versions = get_resolved_versions(xcodeproj_path)
|
39
|
+
remote_packages = Xcode.get_packages(xcodeproj_path)
|
40
|
+
resolved_versions = Xcode.get_resolved_versions(xcodeproj_path)
|
41
|
+
$stderr.puts("Found resolved versions for #{resolved_versions.size} packages")
|
42
|
+
|
43
|
+
self.ignore_repos = self.ignore_repos&.map! { |repo| Git.trim_repo_url(repo) }
|
39
44
|
|
40
45
|
remote_packages.each { |repository_url, requirement|
|
41
|
-
next if ignore_repos&.include?(repository_url)
|
46
|
+
next if self.ignore_repos&.include?(repository_url)
|
42
47
|
|
43
|
-
name = repo_name(repository_url)
|
48
|
+
name = Git.repo_name(repository_url)
|
44
49
|
resolved_version = resolved_versions[repository_url]
|
45
50
|
kind = requirement["kind"]
|
46
51
|
|
47
52
|
if resolved_version.nil?
|
48
|
-
$stderr.puts("Unable to locate the current version for #{name} (#{repository_url})
|
53
|
+
$stderr.puts("Unable to locate the current version for #{name} (#{repository_url})")
|
49
54
|
next
|
50
55
|
end
|
51
56
|
|
52
57
|
if kind == "branch"
|
53
58
|
branch = requirement["branch"]
|
54
|
-
last_commit =
|
59
|
+
last_commit = Git.branch_last_commit(repository_url, branch)
|
55
60
|
warn("Newer commit available for #{name} (#{branch}): #{last_commit}") unless last_commit == resolved_version
|
56
61
|
next
|
57
62
|
end
|
58
63
|
|
59
|
-
available_versions =
|
64
|
+
available_versions = Git.version_tags(repository_url)
|
60
65
|
next if available_versions.first.to_s == resolved_version
|
61
66
|
|
62
67
|
if kind == "exactVersion" && @check_when_exact
|
@@ -71,60 +76,6 @@ module Danger
|
|
71
76
|
}
|
72
77
|
end
|
73
78
|
|
74
|
-
# Extracts remote packages from an Xcode project
|
75
|
-
# @param [String] xcodeproj_path
|
76
|
-
# The path to your Xcode project
|
77
|
-
# @return [Hash<String, Hash>]
|
78
|
-
def get_remote_package(xcodeproj_path)
|
79
|
-
raise(XcodeprojPathMustBeSet) if xcodeproj_path.nil?
|
80
|
-
|
81
|
-
filter_remote_packages(Xcodeproj::Project.open(xcodeproj_path))
|
82
|
-
end
|
83
|
-
|
84
|
-
# Extracts resolved versions from Package.resolved relative to an Xcode project
|
85
|
-
# @param [String] xcodeproj_path
|
86
|
-
# The path to your Xcode project
|
87
|
-
# @return [Hash<String, String>]
|
88
|
-
def get_resolved_versions(xcodeproj_path)
|
89
|
-
resolved_path = find_packages_resolved_file(xcodeproj_path)
|
90
|
-
raise(CouldNotFindResolvedFile) unless File.exist?(resolved_path)
|
91
|
-
|
92
|
-
JSON.load_file!(resolved_path)["pins"]
|
93
|
-
.to_h { |pin| [pin["location"], pin["state"]["version"] || pin["state"]["revision"]] }
|
94
|
-
end
|
95
|
-
|
96
|
-
# Extract a readable name for the repo given the url, generally org/repo
|
97
|
-
# @return [String]
|
98
|
-
def repo_name(repo_url)
|
99
|
-
match = repo_url.match(%r{([\w-]+/[\w-]+)(.git)?$})
|
100
|
-
|
101
|
-
if match
|
102
|
-
match[1] || match[0]
|
103
|
-
else
|
104
|
-
repo_url
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
# Find the configured SPM dependencies in the xcodeproj
|
109
|
-
# @return [Hash<String, Hash>]
|
110
|
-
def filter_remote_packages(project)
|
111
|
-
project.objects.select { |obj|
|
112
|
-
obj.kind_of?(Xcodeproj::Project::Object::XCRemoteSwiftPackageReference) &&
|
113
|
-
obj.requirement["kind"] != "commit"
|
114
|
-
}
|
115
|
-
.to_h { |package| [package.repositoryURL, package.requirement] }
|
116
|
-
end
|
117
|
-
|
118
|
-
# Find the Packages.resolved file
|
119
|
-
# @return [String]
|
120
|
-
def find_packages_resolved_file(xcodeproj_path)
|
121
|
-
if Dir.exist?(xcodeproj_path.sub("xcodeproj", "xcworkspace"))
|
122
|
-
File.join(xcodeproj_path.sub("xcodeproj", "xcworkspace"), "xcshareddata", "swiftpm", "Package.resolved")
|
123
|
-
else
|
124
|
-
File.join(xcodeproj_path, "project.xcworkspace", "xcshareddata", "swiftpm", "Package.resolved")
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
79
|
private
|
129
80
|
|
130
81
|
def warn_for_new_versions_exact(available_versions, name, resolved_version)
|
@@ -173,44 +124,5 @@ Newest version of #{name}: #{available_versions.first} (but this package is conf
|
|
173
124
|
TEXT
|
174
125
|
) unless newest_above_reqs == newest_meeting_reqs || newest_meeting_reqs.to_s == resolved_version
|
175
126
|
end
|
176
|
-
|
177
|
-
# Call git to list tags
|
178
|
-
# @param [String] repo_url
|
179
|
-
# The URL of the dependency's repository
|
180
|
-
# @return [Array<Semantic::Version>]
|
181
|
-
def git_versions(repo_url)
|
182
|
-
versions = `git ls-remote -t #{repo_url}`
|
183
|
-
.split("\n")
|
184
|
-
.map { |line| line.split("/tags/").last }
|
185
|
-
.filter_map { |line|
|
186
|
-
begin
|
187
|
-
Semantic::Version.new(line)
|
188
|
-
rescue ArgumentError
|
189
|
-
nil
|
190
|
-
end
|
191
|
-
}
|
192
|
-
versions.sort!
|
193
|
-
versions.reverse!
|
194
|
-
versions
|
195
|
-
end
|
196
|
-
|
197
|
-
# Calkl git to find the last commit on a branch
|
198
|
-
# @param [String] repo_url
|
199
|
-
# The URL of the dependency's repository
|
200
|
-
# @param [String] branch_name
|
201
|
-
# The name of the branch on which to find the last commit
|
202
|
-
# @return [String]
|
203
|
-
def git_branch_last_commit(repo_url, branch_name)
|
204
|
-
`git ls-remote -h #{repo_url}`
|
205
|
-
.split("\n")
|
206
|
-
.find { |line| line.split("\trefs/heads/")[1] == branch_name }
|
207
|
-
.split("\trefs/heads/")[0]
|
208
|
-
end
|
209
|
-
end
|
210
|
-
|
211
|
-
class XcodeprojPathMustBeSet < StandardError
|
212
|
-
end
|
213
|
-
|
214
|
-
class CouldNotFindResolvedFile < StandardError
|
215
127
|
end
|
216
128
|
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "xcodeproj"
|
4
|
+
|
5
|
+
module Xcode
|
6
|
+
# Find the configured SPM dependencies in the xcodeproj
|
7
|
+
# @param [String] xcodeproj_path
|
8
|
+
# The path of the Xcode project
|
9
|
+
# @return [Hash<String, Hash>]
|
10
|
+
def self.get_packages(xcodeproj_path)
|
11
|
+
raise(XcodeprojPathMustBeSet) if xcodeproj_path.nil? || xcodeproj_path.empty?
|
12
|
+
|
13
|
+
project = Xcodeproj::Project.open(xcodeproj_path)
|
14
|
+
project.objects.select { |obj|
|
15
|
+
obj.kind_of?(Xcodeproj::Project::Object::XCRemoteSwiftPackageReference) &&
|
16
|
+
obj.requirement["kind"] != "commit"
|
17
|
+
}
|
18
|
+
.to_h { |package|
|
19
|
+
[Git.trim_repo_url(package.repositoryURL), package.requirement]
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
# Extracts resolved versions from Package.resolved relative to an Xcode project
|
24
|
+
# @param [String] xcodeproj_path
|
25
|
+
# The path to your Xcode project
|
26
|
+
# @raise [CouldNotFindResolvedFile] if no Package.resolved files were found
|
27
|
+
# @return [Hash<String, String>]
|
28
|
+
def self.get_resolved_versions(xcodeproj_path)
|
29
|
+
resolved_paths = find_packages_resolved_file(xcodeproj_path)
|
30
|
+
raise(CouldNotFindResolvedFile) if resolved_paths.empty?
|
31
|
+
|
32
|
+
resolved_versions = resolved_paths.map { |resolved_path|
|
33
|
+
JSON.load_file!(resolved_path)["pins"]
|
34
|
+
.to_h { |pin|
|
35
|
+
[Git.trim_repo_url(pin["location"]), pin["state"]["version"] || pin["state"]["revision"]]
|
36
|
+
}
|
37
|
+
}
|
38
|
+
resolved_versions.reduce(:merge!)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Find the Packages.resolved file
|
42
|
+
# @return [Array<String>]
|
43
|
+
def self.find_packages_resolved_file(xcodeproj_path)
|
44
|
+
locations = []
|
45
|
+
# First check the workspace for a resolved file
|
46
|
+
workspace = xcodeproj_path.sub("xcodeproj", "xcworkspace")
|
47
|
+
if Dir.exist?(workspace)
|
48
|
+
path = File.join(workspace, "xcshareddata", "swiftpm", "Package.resolved")
|
49
|
+
locations << path if File.exist?(path)
|
50
|
+
end
|
51
|
+
|
52
|
+
# Then check the project for a resolved file
|
53
|
+
path = File.join(xcodeproj_path, "project.xcworkspace", "xcshareddata", "swiftpm", "Package.resolved")
|
54
|
+
locations << path if File.exist?(path)
|
55
|
+
|
56
|
+
$stderr.puts("Searching for resolved packages in: #{locations}")
|
57
|
+
locations
|
58
|
+
end
|
59
|
+
|
60
|
+
private_class_method :find_packages_resolved_file
|
61
|
+
|
62
|
+
class XcodeprojPathMustBeSet < StandardError
|
63
|
+
end
|
64
|
+
|
65
|
+
class CouldNotFindResolvedFile < StandardError
|
66
|
+
end
|
67
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: danger-spm_version_updates
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Harold Martin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-03-
|
11
|
+
date: 2024-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: danger-plugin-api
|
@@ -284,20 +284,6 @@ executables: []
|
|
284
284
|
extensions: []
|
285
285
|
extra_rdoc_files: []
|
286
286
|
files:
|
287
|
-
- ".editorconfig"
|
288
|
-
- ".github/workflows/docs.yml"
|
289
|
-
- ".github/workflows/lint_and_test.yml"
|
290
|
-
- ".github/workflows/push_gem.yml"
|
291
|
-
- ".github/workflows/readme.yml"
|
292
|
-
- ".gitignore"
|
293
|
-
- ".idea/.gitignore"
|
294
|
-
- ".idea/danger-plugin-spm-version-updates.iml"
|
295
|
-
- ".idea/misc.xml"
|
296
|
-
- ".idea/modules.xml"
|
297
|
-
- ".idea/vcs.xml"
|
298
|
-
- ".markdownlint.jsonc"
|
299
|
-
- ".reek.yml"
|
300
|
-
- ".rubocop.yml"
|
301
287
|
- CODE_OF_CONDUCT.md
|
302
288
|
- Gemfile
|
303
289
|
- Gemfile.lock
|
@@ -309,20 +295,9 @@ files:
|
|
309
295
|
- lib/danger_plugin.rb
|
310
296
|
- lib/danger_spm_version_updates.rb
|
311
297
|
- lib/spm_version_updates/gem_version.rb
|
298
|
+
- lib/spm_version_updates/git.rb
|
312
299
|
- lib/spm_version_updates/plugin.rb
|
313
|
-
-
|
314
|
-
- spec/spm_version_updates_spec.rb
|
315
|
-
- spec/support/fixtures/Branch.xcodeproj/project.pbxproj
|
316
|
-
- spec/support/fixtures/Branch.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
|
317
|
-
- spec/support/fixtures/ExactVersion.xcodeproj/project.pbxproj
|
318
|
-
- spec/support/fixtures/ExactVersion.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
|
319
|
-
- spec/support/fixtures/NoResolvedVersion.xcodeproj/project.pbxproj
|
320
|
-
- spec/support/fixtures/NoResolvedVersion.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
|
321
|
-
- spec/support/fixtures/UpToNextMajor.xcodeproj/project.pbxproj
|
322
|
-
- spec/support/fixtures/UpToNextMajor.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
|
323
|
-
- spec/support/fixtures/VersionRange.xcodeproj/project.pbxproj
|
324
|
-
- spec/support/fixtures/VersionRange.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
|
325
|
-
- spec/support/fixtures/github_pr.json
|
300
|
+
- lib/spm_version_updates/xcode.rb
|
326
301
|
homepage: https://github.com/hbmartin/danger-spm_version_updates
|
327
302
|
licenses:
|
328
303
|
- MIT
|
data/.editorconfig
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
root = true
|
2
|
-
|
3
|
-
[*]
|
4
|
-
end_of_line = lf
|
5
|
-
insert_final_newline = true
|
6
|
-
charset = utf-8
|
7
|
-
trim_trailing_whitespace = true
|
8
|
-
|
9
|
-
[*.{rb,yml,gemspec}]
|
10
|
-
indent_style = space
|
11
|
-
indent_size = 2
|
12
|
-
|
13
|
-
[Dangerfile, Rakefile, Guardfile, Gemfile]
|
14
|
-
indent_style = space
|
15
|
-
indent_size = 2
|
data/.github/workflows/docs.yml
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
name: Publish Yard HTML to GitHub Pages
|
2
|
-
|
3
|
-
on:
|
4
|
-
push:
|
5
|
-
tags:
|
6
|
-
- v*
|
7
|
-
workflow_dispatch:
|
8
|
-
|
9
|
-
jobs:
|
10
|
-
build:
|
11
|
-
runs-on: ubuntu-latest
|
12
|
-
steps:
|
13
|
-
- uses: actions/checkout@v3
|
14
|
-
- name: Set up Ruby
|
15
|
-
uses: ruby/setup-ruby@v1
|
16
|
-
with:
|
17
|
-
ruby-version: 3.2
|
18
|
-
bundler-cache: true
|
19
|
-
- name: Build HTML docs
|
20
|
-
run: bundle exec yard
|
21
|
-
- name: Upload artifact
|
22
|
-
uses: actions/upload-pages-artifact@v2
|
23
|
-
with:
|
24
|
-
path: ./doc
|
25
|
-
deploy:
|
26
|
-
needs: build
|
27
|
-
|
28
|
-
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
|
29
|
-
permissions:
|
30
|
-
pages: write # to deploy to Pages
|
31
|
-
id-token: write # to verify the deployment originates from an appropriate source
|
32
|
-
|
33
|
-
# Deploy to the github-pages environment
|
34
|
-
environment:
|
35
|
-
name: github-pages
|
36
|
-
url: ${{ steps.deployment.outputs.page_url }}
|
37
|
-
|
38
|
-
# Specify runner + deployment step
|
39
|
-
runs-on: ubuntu-latest
|
40
|
-
steps:
|
41
|
-
- name: Deploy to GitHub Pages
|
42
|
-
id: deployment
|
43
|
-
uses: actions/deploy-pages@v2 # or the latest "vX.X.X" version tag for this action
|
@@ -1,32 +0,0 @@
|
|
1
|
-
name: CI
|
2
|
-
|
3
|
-
on:
|
4
|
-
push:
|
5
|
-
branches: [ main ]
|
6
|
-
pull_request:
|
7
|
-
branches: [ main ]
|
8
|
-
|
9
|
-
jobs:
|
10
|
-
build:
|
11
|
-
strategy:
|
12
|
-
matrix:
|
13
|
-
ruby-version:
|
14
|
-
- "3.0"
|
15
|
-
- "3.1"
|
16
|
-
- "3.2"
|
17
|
-
runs-on: ubuntu-latest
|
18
|
-
steps:
|
19
|
-
- uses: actions/checkout@v4
|
20
|
-
- name: Set up Ruby
|
21
|
-
uses: ruby/setup-ruby@v1
|
22
|
-
with:
|
23
|
-
ruby-version: ${{ matrix.ruby-version }}
|
24
|
-
bundler-cache: true
|
25
|
-
- name: Running Tests
|
26
|
-
run: bundle exec rake spec
|
27
|
-
- name: Upload coverage reports to Codecov
|
28
|
-
uses: codecov/codecov-action@v4
|
29
|
-
with:
|
30
|
-
fail_ci_if_error: true
|
31
|
-
env:
|
32
|
-
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
@@ -1,26 +0,0 @@
|
|
1
|
-
name: Push Gem
|
2
|
-
|
3
|
-
on:
|
4
|
-
push:
|
5
|
-
tags:
|
6
|
-
- v*
|
7
|
-
|
8
|
-
jobs:
|
9
|
-
push:
|
10
|
-
runs-on: ubuntu-latest
|
11
|
-
|
12
|
-
permissions:
|
13
|
-
contents: write
|
14
|
-
id-token: write
|
15
|
-
|
16
|
-
steps:
|
17
|
-
# Set up
|
18
|
-
- uses: actions/checkout@v4
|
19
|
-
- name: Set up Ruby
|
20
|
-
uses: ruby/setup-ruby@v1
|
21
|
-
with:
|
22
|
-
bundler-cache: true
|
23
|
-
ruby-version: ruby
|
24
|
-
|
25
|
-
# Release
|
26
|
-
- uses: rubygems/release-gem@v1
|
@@ -1,21 +0,0 @@
|
|
1
|
-
name: Readme formatting and typo checking
|
2
|
-
|
3
|
-
on:
|
4
|
-
push:
|
5
|
-
branches: ["main"]
|
6
|
-
pull_request:
|
7
|
-
branches: ["main"]
|
8
|
-
|
9
|
-
jobs:
|
10
|
-
lint:
|
11
|
-
runs-on: ubuntu-latest
|
12
|
-
steps:
|
13
|
-
- name: Check out repository code
|
14
|
-
uses: actions/checkout@v4
|
15
|
-
- name: Markdown Lint
|
16
|
-
uses: avto-dev/markdown-lint@v1.5.0
|
17
|
-
with:
|
18
|
-
args: "./README.md"
|
19
|
-
config: "./.markdownlint.jsonc"
|
20
|
-
- name: Typos
|
21
|
-
uses: crate-ci/typos@v1.19.0
|
data/.gitignore
DELETED
@@ -1,136 +0,0 @@
|
|
1
|
-
.DS_Store
|
2
|
-
|
3
|
-
*.gem
|
4
|
-
*.rbc
|
5
|
-
/.config
|
6
|
-
/coverage/
|
7
|
-
/InstalledFiles
|
8
|
-
/pkg/
|
9
|
-
/spec/reports/
|
10
|
-
/spec/examples.txt
|
11
|
-
/test/tmp/
|
12
|
-
/test/version_tmp/
|
13
|
-
/tmp/
|
14
|
-
|
15
|
-
# Used by dotenv library to load environment variables.
|
16
|
-
# .env
|
17
|
-
|
18
|
-
# Ignore Byebug command history file.
|
19
|
-
.byebug_history
|
20
|
-
|
21
|
-
## Specific to RubyMotion:
|
22
|
-
.dat*
|
23
|
-
.repl_history
|
24
|
-
build/
|
25
|
-
*.bridgesupport
|
26
|
-
build-iPhoneOS/
|
27
|
-
build-iPhoneSimulator/
|
28
|
-
|
29
|
-
## Specific to RubyMotion (use of CocoaPods):
|
30
|
-
#
|
31
|
-
# We recommend against adding the Pods directory to your .gitignore. However
|
32
|
-
# you should judge for yourself, the pros and cons are mentioned at:
|
33
|
-
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
|
34
|
-
#
|
35
|
-
# vendor/Pods/
|
36
|
-
|
37
|
-
## Documentation cache and generated files:
|
38
|
-
/.yardoc/
|
39
|
-
/_yardoc/
|
40
|
-
/doc/
|
41
|
-
/rdoc/
|
42
|
-
|
43
|
-
## Environment normalization:
|
44
|
-
/.bundle/
|
45
|
-
/vendor/bundle
|
46
|
-
/lib/bundler/man/
|
47
|
-
|
48
|
-
# for a library or gem, you might want to ignore these files since the code is
|
49
|
-
# intended to run in multiple environments; otherwise, check them in:
|
50
|
-
# Gemfile.lock
|
51
|
-
# .ruby-version
|
52
|
-
# .ruby-gemset
|
53
|
-
|
54
|
-
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
55
|
-
.rvmrc
|
56
|
-
|
57
|
-
# Used by RuboCop. Remote config files pulled in from inherit_from directive.
|
58
|
-
.rubocop-https?--*
|
59
|
-
|
60
|
-
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
61
|
-
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
62
|
-
|
63
|
-
# User-specific stuff
|
64
|
-
.idea/**/workspace.xml
|
65
|
-
.idea/**/tasks.xml
|
66
|
-
.idea/**/usage.statistics.xml
|
67
|
-
.idea/**/dictionaries
|
68
|
-
.idea/**/shelf
|
69
|
-
|
70
|
-
# AWS User-specific
|
71
|
-
.idea/**/aws.xml
|
72
|
-
|
73
|
-
# Generated files
|
74
|
-
.idea/**/contentModel.xml
|
75
|
-
|
76
|
-
# Sensitive or high-churn files
|
77
|
-
.idea/**/dataSources/
|
78
|
-
.idea/**/dataSources.ids
|
79
|
-
.idea/**/dataSources.local.xml
|
80
|
-
.idea/**/sqlDataSources.xml
|
81
|
-
.idea/**/dynamic.xml
|
82
|
-
.idea/**/uiDesigner.xml
|
83
|
-
.idea/**/dbnavigator.xml
|
84
|
-
|
85
|
-
# Gradle
|
86
|
-
.idea/**/gradle.xml
|
87
|
-
.idea/**/libraries
|
88
|
-
|
89
|
-
# Gradle and Maven with auto-import
|
90
|
-
# When using Gradle or Maven with auto-import, you should exclude module files,
|
91
|
-
# since they will be recreated, and may cause churn. Uncomment if using
|
92
|
-
# auto-import.
|
93
|
-
# .idea/artifacts
|
94
|
-
# .idea/compiler.xml
|
95
|
-
# .idea/jarRepositories.xml
|
96
|
-
# .idea/modules.xml
|
97
|
-
# .idea/*.iml
|
98
|
-
# .idea/modules
|
99
|
-
# *.iml
|
100
|
-
# *.ipr
|
101
|
-
|
102
|
-
# CMake
|
103
|
-
cmake-build-*/
|
104
|
-
|
105
|
-
# Mongo Explorer plugin
|
106
|
-
.idea/**/mongoSettings.xml
|
107
|
-
|
108
|
-
# File-based project format
|
109
|
-
*.iws
|
110
|
-
|
111
|
-
# IntelliJ
|
112
|
-
out/
|
113
|
-
|
114
|
-
# mpeltonen/sbt-idea plugin
|
115
|
-
.idea_modules/
|
116
|
-
|
117
|
-
# JIRA plugin
|
118
|
-
atlassian-ide-plugin.xml
|
119
|
-
|
120
|
-
# Cursive Clojure plugin
|
121
|
-
.idea/replstate.xml
|
122
|
-
|
123
|
-
# SonarLint plugin
|
124
|
-
.idea/sonarlint/
|
125
|
-
|
126
|
-
# Crashlytics plugin (for Android Studio and IntelliJ)
|
127
|
-
com_crashlytics_export_strings.xml
|
128
|
-
crashlytics.properties
|
129
|
-
crashlytics-build.properties
|
130
|
-
fabric.properties
|
131
|
-
|
132
|
-
# Editor-based Rest Client
|
133
|
-
.idea/httpRequests
|
134
|
-
|
135
|
-
# Android studio 3.1+ serialized cache file
|
136
|
-
.idea/caches/build_file_checksums.ser
|