У меня проблема с ботами Xcode. Я могу скомпилировать, протестировать и заархивировать свой проект, но я хотел бы использовать внешний инструмент, который проверяет, сделал ли я проверку кода для последних коммитов. Я хотел бы иметь возможность прервать сборку, если нет проверки кода. Я пытался добавить exit 1
или exit 0
в скрипт pre-build
, но это просто завершает данный скрипт, а не весь процесс сборки. Итак, мой вопрос: как я могу прервать сборку (интеграцию) бота Xcode?
Как прервать сборку XCode Bot?
Ответы (2)
Технически это возможно. Вы можете отменить интеграцию, которая немедленно прерывает ее. Это очень похоже на запуск интеграции из командной строки, которую я описал здесь, но сначала вам нужно найти из _id
интеграции, вызвав конечную точку /xcode/api/bots/BOT_ID/integrations
, и первая интеграция должна быть последней. Скопируйте _id
, а затем вызовите POST для /xcode/api/integrations/INTEGRATION_ID/cancel
, что отменит интеграцию.
Я использую все эти API в своем инструменте Buildasaur, поэтому для получения дополнительной информации ознакомьтесь с исходным кодом.
Благодаря ответу czechboy, вот решение для копирования и вставки друзей. Используйте что-то вроде этого в качестве сценария предварительной интеграции:
#!/bin/sh
# something returning an error code like:
${XCS_PRIMARY_REPO_DIR}/customPreIntegrationConfiguration.sh
# if script exits with error code 1:
if (( $? )); then
echo "canceling integration ${XCS_INTEGRATION_ID}..."
curl -kX POST "https://localhost:20343/api/integrations/${XCS_INTEGRATION_ID}/cancel"
fi
$?
проверяет код выхода последней команды, в данном случае script. Если вы где-то используете канал, может потребоваться использовать set -o pipefail
для возврата 1, если только один компонент канала возвращает 1.