[Ruby][Sorbet] Как проверить пропуск обновления файла RBI с помощью CI

Переведите en на en

Для тапиоки существует опция —verify, поэтому используйте ее.

bin/tapioca gems --verify
bin/tapioca dsl --verify
Войдите в полноэкранный режим Выход из полноэкранного режима

Для сорбет-растирок, похоже, нет такого варианта, как тапиока, поэтому используйте следующее, чтобы проверить, есть ли разница.

bin/rails db:schema:load # ridgepoleを使っている場合にはridgepole --applyを。
bundle exec rake rails_rbi:all
git diff --exit-code --quiet
Войдите в полноэкранный режим Выход из полноэкранного режима

В реальности, текущая ситуация предполагает разрешение конфликтов между каждым RBI, поэтому я использую следующий метод.

bundle exec srb rbi sorbet-typed
bin/rails db:schema:load
bin/rails rails_rbi:all
bin/tapioca gem --workers=8
bin/tapioca todo
bundle exec srb rbi suggest-typed # コンフリクト解消をここで行ってから差分がでないことを確認する。こうしないとコンフリクト解消前の状態とコンフリクト解消後の状態の比較になってしまい差分が頻繁に発生する状態になってしまいほぼ常にCIで引っかかる状態になってしまう

git diff --exit-code --quiet
if [ $? -ne 0 ]; then
    echo "Please resolve the difference of RBI files"
    exit 1
fi
Войдите в полноэкранный режим Выход из полноэкранного режима

Справка:

  • https://github.com/Shopify/tapioca#keeping-rbi-files-for-gems-up-to-date
  • https://github.com/Shopify/tapioca#keeping-rbi-files-for-dsls-up-to-date

Оцените статью
devanswers.ru
Добавить комментарий