ManageIQ / manageiq

ManageIQ Open-Source Management Platform
https://manageiq.org
Apache License 2.0
1.35k stars 896 forks source link

Use Kernel system exception handling #23186

Closed jrafanie closed 2 weeks ago

jrafanie commented 2 weeks ago

This pattern can be used wherever we rolled our own exception handling like this one.

Found while working on https://github.com/ManageIQ/manageiq-ui-classic/pull/9263

Before

WAT

Run bundle exec rake app:locale:po_to_json
** Using session_store: ActionDispatch::Session::MemoryStore
** ManageIQ master, codename: Spassky
Fatal error running 'msgmft --check on file: /home/runner/worker/manageiq-ui-classic/manageiq-ui-classic/spec/manageiq/locale/de/manageiq.po.  Review the output above.
Error: Process completed with exit code 1.

After

It's very obvious I failed to install gettext for the msgfmt tool in this new github action:

Run bundle exec rake app:locale:po_to_json
** Using session_store: ActionDispatch::Session::MemoryStore
** ManageIQ master, codename: Spassky
rake aborted!
Errno::ENOENT: No such file or directory - msgfmt
/home/runner/work/manageiq-ui-classic/manageiq-ui-classic/spec/manageiq/lib/tasks/locale.rake:304:in `system'
/home/runner/work/manageiq-ui-classic/manageiq-ui-classic/spec/manageiq/lib/tasks/locale.rake:304:in `block (4 levels) in <main>'
/home/runner/work/manageiq-ui-classic/manageiq-ui-classic/spec/manageiq/lib/tasks/locale.rake:303:in `each'
/home/runner/work/manageiq-ui-classic/manageiq-ui-classic/spec/manageiq/lib/tasks/locale.rake:303:in `block (3 levels) in <main>'
/home/runner/work/manageiq-ui-classic/manageiq-ui-classic/spec/manageiq/lib/tasks/locale.rake:302:in `each'
/home/runner/work/manageiq-ui-classic/manageiq-ui-classic/spec/manageiq/lib/tasks/locale.rake:302:in `block (2 levels) in <main>'
/home/runner/work/manageiq-ui-classic/manageiq-ui-classic/vendor/bundle/ruby/3.1.0/gems/rake-[13](https://github.com/jrafanie/manageiq-ui-classic/actions/runs/10854106197/job/30123837888#step:8:14).2.1/exe/rake:27:in `<top (required)>'
/opt/hostedtoolcache/Ruby/3.1.6/x64/bin/bundle:25:in `load'
/opt/hostedtoolcache/Ruby/3.1.6/x64/bin/bundle:25:in `<main>'
Tasks: TOP => app:locale:po_to_json
(See full trace by running task with --trace)
Error: Process completed with exit code 1.
miq-bot commented 2 weeks ago

Checked commit https://github.com/jrafanie/manageiq/commit/81f76d94eaf82439a178e8138f68445de388382f with ruby 3.1.5, rubocop 1.56.3, haml-lint 0.51.0, and yamllint 1 file checked, 0 offenses detected Everything looks fine. :+1: