danger-spm_version_updates 0.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/README.md +5 -3
  4. data/danger-spm_version_updates.gemspec +1 -1
  5. data/lib/spm_version_updates/gem_version.rb +1 -1
  6. data/lib/spm_version_updates/git.rb +56 -0
  7. data/lib/spm_version_updates/plugin.rb +19 -97
  8. data/lib/spm_version_updates/xcode.rb +67 -0
  9. metadata +4 -27
  10. data/.editorconfig +0 -15
  11. data/.github/workflows/docs.yml +0 -43
  12. data/.github/workflows/lint_and_test.yml +0 -32
  13. data/.github/workflows/push_gem.yml +0 -26
  14. data/.github/workflows/readme.yml +0 -21
  15. data/.gitignore +0 -136
  16. data/.idea/.gitignore +0 -8
  17. data/.idea/danger-plugin-spm-version-updates.iml +0 -130
  18. data/.idea/misc.xml +0 -4
  19. data/.idea/modules.xml +0 -8
  20. data/.idea/vcs.xml +0 -6
  21. data/.markdownlint.jsonc +0 -6
  22. data/.reek.yml +0 -129
  23. data/.rubocop.yml +0 -501
  24. data/spec/spec_helper.rb +0 -61
  25. data/spec/spm_version_updates_spec.rb +0 -180
  26. data/spec/support/fixtures/Branch.xcodeproj/project.pbxproj +0 -80
  27. data/spec/support/fixtures/Branch.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +0 -265
  28. data/spec/support/fixtures/ExactVersion.xcodeproj/project.pbxproj +0 -80
  29. data/spec/support/fixtures/ExactVersion.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +0 -265
  30. data/spec/support/fixtures/UpToNextMajor.xcodeproj/project.pbxproj +0 -80
  31. data/spec/support/fixtures/UpToNextMajor.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +0 -265
  32. data/spec/support/fixtures/VersionRange.xcodeproj/project.pbxproj +0 -81
  33. data/spec/support/fixtures/VersionRange.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +0 -265
  34. data/spec/support/fixtures/github_pr.json +0 -268
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b4b25309d2ebf835c0a6f0a13d22605cc95ef04aab3b73b48d2f780c273bec47
4
- data.tar.gz: 0421f910cdbbba4b4b39912510a5272b898e2ecf0b420e7bb50211d3fc2c3f97
3
+ metadata.gz: 45434b8470d53708ee3261e6415b61eb6ca22dd4c3bd2080cbb0f28014c48276
4
+ data.tar.gz: c41a9d67f408fdaeaec72bdca65a8b0abefd998c0e852d9ce1f4c4ed76bda79c
5
5
  SHA512:
6
- metadata.gz: 55238e841c8c1509667baf8dc4f44116eb4d3a792d24527bad0c00093daa69fc796155637489c986d4b5aecfa99a30122400cd98d3959b3678b747e3036b0270
7
- data.tar.gz: 85af80394fffbb6ec7779b633022b8d6315defd422731e49827b135081620e5b004624ec5980fff6878ba11df0e2ee0e2378b02849f379c557fab519207e0cc5
6
+ metadata.gz: 949714767a85ebbf99c10aa1e8b424344a54a0cd3d8c7e1dcaae759b3f656a92f45b6df6adf9bf90468448f80636025ec659758c9309bf1a3c723f2c24ccfe18
7
+ data.tar.gz: 75e265f2a49a1efddae3c0272818ef67e2254739ce100bf3551306e670fe0e7e9fc5b608a49e91aa7b218bde1a92ae2d856ee87bd8e58276d4d01d53e18932ee
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- danger-spm_version_updates (0.1.1)
4
+ danger-spm_version_updates (0.1.3)
5
5
  danger-plugin-api (~> 1.0)
6
6
  semantic (~> 1.6)
7
7
  xcodeproj (~> 1.24)
data/README.md CHANGED
@@ -15,7 +15,9 @@ Note that version 0.1.0 is the last version to support Ruby 2.7
15
15
 
16
16
  ## Installation
17
17
 
18
- `gem install danger-spm_version_updates`
18
+ ```sh
19
+ gem install danger-spm_version_updates
20
+ ```
19
21
 
20
22
  or add the following to your Gemfile:
21
23
 
@@ -43,7 +45,7 @@ spm_version_updates.report_above_maximum = true
43
45
  # Whether to report pre-release versions, default false
44
46
  spm_version_updates.report_pre_releases = true
45
47
 
46
- # A list of repositories to ignore entirely, must exactly match the URL as configured in the Xcode project
48
+ # A list of repository URLs for packages to ignore entirely
47
49
  spm_version_updates.ignore_repos = ["https://github.com/pointfreeco/swift-snapshot-testing"]
48
50
  ```
49
51
 
@@ -63,7 +65,7 @@ spm_version_updates.ignore_repos = ["https://github.com/pointfreeco/swift-snapsh
63
65
 
64
66
  Swift and the Swift logo are trademarks of Apple Inc.
65
67
 
66
- Copyright (c) 2023 Harold Martin <harold.martin@gmail.com>
68
+ Copyright (c) 2023 Harold Martin
67
69
 
68
70
  MIT License
69
71
 
@@ -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 = `git ls-files`.split($/)
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"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SpmVersionUpdates
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.3"
5
5
  end
@@ -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,16 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "semantic"
4
- require "xcodeproj"
4
+ require_relative "git"
5
+ require_relative "xcode"
5
6
 
6
7
  module Danger
7
- # A plugin for checking if there are versions upgrades available for SPM packages
8
+ # A Danger plugin for checking if there are versions upgrades available for SPM dependencies
8
9
  #
9
10
  # @example Check if MyApp's SPM dependencies are up to date
10
- #
11
11
  # spm_version_updates.check_for_updates("MyApp.xcodeproj")
12
12
  #
13
- # @see Harold Martin/danger-spm_version_updates
13
+ # @see hbmartin/danger-spm_version_updates
14
14
  # @tags swift, spm, swift package manager, xcode, xcodeproj, version, updates
15
15
  #
16
16
  class DangerSpmVersionUpdates < Plugin
@@ -26,35 +26,42 @@ module Danger
26
26
  # @return [Boolean]
27
27
  attr_accessor :report_pre_releases
28
28
 
29
- # A list of repositories to ignore entirely, must exactly match the URL as configured in the Xcode project
29
+ # A list of repository URLs for packages to ignore entirely
30
30
  # @return [Array<String>]
31
31
  attr_accessor :ignore_repos
32
32
 
33
33
  # A method that you can call from your Dangerfile
34
34
  # @param [String] xcodeproj_path
35
35
  # The path to your Xcode project
36
+ # @raise [XcodeprojPathMustBeSet] if the xcodeproj_path is blank
36
37
  # @return [void]
37
38
  def check_for_updates(xcodeproj_path)
38
- remote_packages = get_remote_package(xcodeproj_path)
39
- 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) }
40
44
 
41
45
  remote_packages.each { |repository_url, requirement|
42
- next if ignore_repos&.include?(repository_url)
46
+ next if self.ignore_repos&.include?(repository_url)
43
47
 
44
- name = repo_name(repository_url)
48
+ name = Git.repo_name(repository_url)
45
49
  resolved_version = resolved_versions[repository_url]
46
50
  kind = requirement["kind"]
47
51
 
48
- # kind can be major, minor, range, exact, branch, or commit
52
+ if resolved_version.nil?
53
+ $stderr.puts("Unable to locate the current version for #{name} (#{repository_url})")
54
+ next
55
+ end
49
56
 
50
57
  if kind == "branch"
51
58
  branch = requirement["branch"]
52
- last_commit = git_branch_last_commit(repository_url, branch)
59
+ last_commit = Git.branch_last_commit(repository_url, branch)
53
60
  warn("Newer commit available for #{name} (#{branch}): #{last_commit}") unless last_commit == resolved_version
54
61
  next
55
62
  end
56
63
 
57
- available_versions = git_versions(repository_url)
64
+ available_versions = Git.version_tags(repository_url)
58
65
  next if available_versions.first.to_s == resolved_version
59
66
 
60
67
  if kind == "exactVersion" && @check_when_exact
@@ -69,60 +76,6 @@ module Danger
69
76
  }
70
77
  end
71
78
 
72
- # Extracts remote packages from an Xcode project
73
- # @param [String] xcodeproj_path
74
- # The path to your Xcode project
75
- # @return [Hash<String, Hash>]
76
- def get_remote_package(xcodeproj_path)
77
- raise(XcodeprojPathMustBeSet) if xcodeproj_path.nil?
78
-
79
- filter_remote_packages(Xcodeproj::Project.open(xcodeproj_path))
80
- end
81
-
82
- # Extracts resolved versions from Package.resolved relative to an Xcode project
83
- # @param [String] xcodeproj_path
84
- # The path to your Xcode project
85
- # @return [Hash<String, String>]
86
- def get_resolved_versions(xcodeproj_path)
87
- resolved_path = find_packages_resolved_file(xcodeproj_path)
88
- raise(CouldNotFindResolvedFile) unless File.exist?(resolved_path)
89
-
90
- JSON.load_file!(resolved_path)["pins"]
91
- .to_h { |pin| [pin["location"], pin["state"]["version"] || pin["state"]["revision"]] }
92
- end
93
-
94
- # Extract a readable name for the repo given the url, generally org/repo
95
- # @return [String]
96
- def repo_name(repo_url)
97
- match = repo_url.match(%r{([\w-]+/[\w-]+)(.git)?$})
98
-
99
- if match
100
- match[1] || match[0]
101
- else
102
- repo_url
103
- end
104
- end
105
-
106
- # Find the configured SPM dependencies in the xcodeproj
107
- # @return [Hash<String, Hash>]
108
- def filter_remote_packages(project)
109
- project.objects.select { |obj|
110
- obj.kind_of?(Xcodeproj::Project::Object::XCRemoteSwiftPackageReference) &&
111
- obj.requirement["kind"] != "commit"
112
- }
113
- .to_h { |package| [package.repositoryURL, package.requirement] }
114
- end
115
-
116
- # Find the Packages.resolved file
117
- # @return [String]
118
- def find_packages_resolved_file(xcodeproj_path)
119
- if Dir.exist?(xcodeproj_path.sub("xcodeproj", "xcworkspace"))
120
- File.join(xcodeproj_path.sub("xcodeproj", "xcworkspace"), "xcshareddata", "swiftpm", "Package.resolved")
121
- else
122
- File.join(xcodeproj_path, "project.xcworkspace", "xcshareddata", "swiftpm", "Package.resolved")
123
- end
124
- end
125
-
126
79
  private
127
80
 
128
81
  def warn_for_new_versions_exact(available_versions, name, resolved_version)
@@ -171,36 +124,5 @@ Newest version of #{name}: #{available_versions.first} (but this package is conf
171
124
  TEXT
172
125
  ) unless newest_above_reqs == newest_meeting_reqs || newest_meeting_reqs.to_s == resolved_version
173
126
  end
174
-
175
- # Remove git call to list tags
176
- # @return [Array<Semantic::Version>]
177
- def git_versions(repo_url)
178
- versions = `git ls-remote -t #{repo_url}`
179
- .split("\n")
180
- .map { |line| line.split("/tags/").last }
181
- .filter_map { |line|
182
- begin
183
- Semantic::Version.new(line)
184
- rescue ArgumentError
185
- nil
186
- end
187
- }
188
- versions.sort!
189
- versions.reverse!
190
- versions
191
- end
192
-
193
- def git_branch_last_commit(repo_url, branch_name)
194
- `git ls-remote -h #{repo_url}`
195
- .split("\n")
196
- .find { |line| line.split("\trefs/heads/")[1] == branch_name }
197
- .split("\trefs/heads/")[0]
198
- end
199
- end
200
-
201
- class XcodeprojPathMustBeSet < StandardError
202
- end
203
-
204
- class CouldNotFindResolvedFile < StandardError
205
127
  end
206
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.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-15 00:00:00.000000000 Z
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,18 +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
- - spec/spec_helper.rb
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/UpToNextMajor.xcodeproj/project.pbxproj
320
- - spec/support/fixtures/UpToNextMajor.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
321
- - spec/support/fixtures/VersionRange.xcodeproj/project.pbxproj
322
- - spec/support/fixtures/VersionRange.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
323
- - spec/support/fixtures/github_pr.json
300
+ - lib/spm_version_updates/xcode.rb
324
301
  homepage: https://github.com/hbmartin/danger-spm_version_updates
325
302
  licenses:
326
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
@@ -1,43 +0,0 @@
1
- name: Publish Yard HTML to GitHub Pages
2
-
3
- on:
4
- push:
5
- tags:
6
- - "*"
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