ashfurrow / danger-ruby-swiftlint

A Danger plugin for SwiftLint.
https://rubygems.org/gems/danger-swiftlint
MIT License
203 stars 80 forks source link

danger-swiftlint 0.34.0 fails on Jenkins CI #197

Closed ilkeyucel closed 6 days ago

ilkeyucel commented 8 months ago

After installing danger-swiftlint 0.34.0 PRs are breaking with the following error:

Ruby version: ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin22] bundler version: Bundler version 2.4.22

23:36:02  [!] The exception involves the following plugins:
23:36:02   -  danger-swiftlint
23:36:02  
23:36:02  
23:36:02  +---------------------------------------+
23:36:02  |           fastlane summary            |
23:36:02  +------+------------------+-------------+
23:36:02  | Step | Action           | Time (in s) |
23:36:02  +------+------------------+-------------+
23:36:02  | 1    | default_platform | 0           |
23:36:02  | 2    | setup_jenkins    | 0           |
23:36:02  | 3    | is_ci            | 0           |
23:36:02  | 4    | reset_git_repo   | 0           |
23:36:02  | 💥   | danger           | 5           |
23:36:02  | 6    | danger           | 3           |
23:36:02  +------+------------------+-------------+
23:36:02  
23:36:02  fastlane finished with errors
23:36:02  
23:36:02  Looking for related GitHub issues on fastlane/fastlane...
23:36:02  
23:36:02  bundler: failed to load command: fastlane (/Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/bin/fastlane)
23:36:02  /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/fastlane-2.217.0/fastlane_core/lib/fastlane_core/ui/interface.rb:153:in `shell_error!': [!] Exit status of command 'bundle exec danger --danger_id=Basic --dangerfile=fastlane/basic.Dangerfile' was 1 instead of 0. (FastlaneCore::Interface::FastlaneShellError)
23:36:02  bundler: failed to load command: danger (/Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/bin/danger)
23:36:02  /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-swiftlint-0.32.0/lib/danger_plugin.rb:68:in `lint_files':  (Danger::DSLError)
23:36:02  [!] Invalid `basic.Dangerfile` file: swiftlint is not installed
23:36:02   #  from fastlane/basic.Dangerfile:14
23:36:02   #  -------------------------------------------
23:36:02   #  
23:36:02   >  swiftlint.lint_files
23:36:02   #  
23:36:02   #  -------------------------------------------
23:36:02  
23:36:02    from fastlane/basic.Dangerfile:14:in `eval_file'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/danger_core/dangerfile.rb:311:in `eval'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/danger_core/dangerfile.rb:311:in `eval_file'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/danger_core/dangerfile.rb:204:in `block in parse'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/danger_core/dangerfile.rb:201:in `instance_eval'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/danger_core/dangerfile.rb:201:in `parse'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/danger_core/dangerfile.rb:287:in `run'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/danger_core/executor.rb:28:in `run'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/commands/runner.rb:73:in `run'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/bin/danger:5:in `<top (required)>'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/bin/danger:25:in `load'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/bin/danger:25:in `<top (required)>'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:58:in `load'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:58:in `kernel_load'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:23:in `run'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/cli.rb:492:in `exec'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/cli.rb:34:in `dispatch'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/cli.rb:28:in `start'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/exe/bundle:37:in `block in <top (required)>'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/exe/bundle:29:in `<top (required)>'
23:36:02    from /Users/****/.gem/ruby/3.2.2/bin/bundle:25:in `load'
23:36:02    from /Users/****/.gem/ruby/3.2.2/bin/bundle:25:in `<main>'
23:36:02  /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-swiftlint-0.32.0/lib/danger_plugin.rb:68:in `lint_files': swiftlint is not installed (RuntimeError)
23:36:02    from fastlane/basic.Dangerfile:14:in `eval_file'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/danger_core/dangerfile.rb:311:in `eval'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/danger_core/dangerfile.rb:311:in `eval_file'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/danger_core/dangerfile.rb:204:in `block in parse'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/danger_core/dangerfile.rb:201:in `instance_eval'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/danger_core/dangerfile.rb:201:in `parse'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/danger_core/dangerfile.rb:287:in `run'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/danger_core/executor.rb:28:in `run'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/lib/danger/commands/runner.rb:73:in `run'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/claide-1.1.0/lib/claide/command.rb:334:in `run'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/gems/danger-9.4.1/bin/danger:5:in `<top (required)>'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/bin/danger:25:in `load'
23:36:02    from /Users/****/JenkinsWorkspace/workspace/ios-test-pr/vendor/bundle/ruby/3.2.0/bin/danger:25:in `<top (required)>'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:58:in `load'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:58:in `kernel_load'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:23:in `run'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/cli.rb:492:in `exec'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/cli.rb:34:in `dispatch'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/cli.rb:28:in `start'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/exe/bundle:37:in `block in <top (required)>'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
23:36:02    from /Users/****/.gem/ruby/3.2.2/gems/bundler-2.4.22/exe/bundle:29:in `<top (required)>'
23:36:02    from /Users/****/.gem/ruby/3.2.2/bin/bundle:25:in `load'
23:36:02    from /Users/****/.gem/ruby/3.2.2/bin/bundle:25:in `<main>'
dirtyhabits97 commented 5 months ago

From the error you provided

23:36:02 [!] Invalid basic.Dangerfile file: swiftlint is not installed

It looks like you're hitting this error: https://github.com/ashfurrow/danger-ruby-swiftlint/blob/bf340a84953b303bb76168124c433d7e0e216dff/lib/danger_plugin.rb#L68 Also tested here: https://github.com/ashfurrow/danger-ruby-swiftlint/blob/bf340a84953b303bb76168124c433d7e0e216dff/spec/danger_plugin_spec.rb#L17-L20

The program can't find the SwiftLint executable. Can you make sure swiftlint is installed in the jenkins node?

puts `which swiftlint`

You can add the above code before invoking the swiftlint plugin in your dangerfile.

aiKrice commented 3 months ago

@ilkeyucel Did you fix your issue ? I will close it soon