Я пытаюсь, чтобы Cargo выдавал предупреждения в CI, но не при локальной разработке.
У меня было рабочее решение, которое должно было установить RUSTFLAGS=“-D warnings”
в задании CI. Это сработало хорошо, так как это действительно провалило бы сборку для локальных ящиков, но не для ящиков зависимости (из-за —cap-lints
).
В последнее время некоторые ржавые флажки должны были быть установлены (проверены) .cargo/config
файл:
[target.’cfg(target_os = “linux”)’]
rustflags = [“some”, “options”]
Это не сработало, поскольку RUSTFLAGS
имеет приоритет, а флаги .cargo/config
будут игнорироваться. Я не хочу добавлять -D warnings
к config
, так как это может быть проблемой при разработке.
В настоящее время обходится сценарий, который настраивает config
до задания CI:
sed -i "s:\(rustflags = .*\)]:\1, \"-D\", \"warnings\"]:g" .cargo/config
echo '[build]' >> .cargo/config
echo 'rustflags = [ "-D", "warnings"]' >> .cargo/config
Это добавляет -D warnings
к существующему rustflags
в конфигурации , а создает дополнительную универсальную запись config
, которая гарантирует, что -D warnings
также включена в сборках CI, отличных от Linux.
Это ужасно нахально; Есть ли лучшее решение, которое я пропускаю?
Возможно, это должен быть запрос функции в репозитории Cargo, но я не знаю, как будет выглядеть идеальное решение.