Я часто получаю ошибки типа
warning: failed to remove Build/x86-vxworks-kernel-gcc-Release-Ninja: Permission denied
в моей сборке CI. Исследуя сервер сборки, я вижу, что в этой папке всегда застревает cc1plus.exe. Из командной строки cc1plus.exe я вижу, что это (случайный) cpp файл, который переводится. Я предполагаю, что настоящий компилятор, который я вызываю в CMake (c ++ pentium.exe), перенаправляет на этот исполняемый файл.
Я почти уверен (хотя я не могу это доказать), что это происходит на серверах, когда сборки отменяются. Сообщение об ошибке исходит не от отмененной сборки, а от пользовательских шагов очистки перед сборкой следующих сборок. Я net припоминаю, как получал это на месте. Может быть, это связано с тем, как CI останавливает сборку?
Настройка:
- Azure DevOps Server (локально)
- CMake + Ninja
- VxWorks 6.8 G CC компилятор (4.1.2) (я думаю, он основан на mingw)
Вы видели похожие проблемы? Какие-нибудь общие советы, где я мог бы продолжить изучение?
Могу ли я настроить сборку (yaml) так, чтобы не отменять шаги, а ждать, пока они завершатся sh или тайм-аут? Думаю, это также исправит проблему с довольно низкими накладными расходами на время сборки.