Nano Hash - криптовалюты, майнинг, программирование

Как заставить TeamCity встраивать каждый коммит в GIt?

Сейчас я счастливый пользователь TeamCity + Maven + Git. У меня есть одна сборка, например mvn deploy, которая должна запускаться при каждой фиксации в Git. Все тесты пройдены и все в порядке. знак равно

Но у этой схемы есть проблема: после того, как я запустил mvn release:prepeare на своей машине, он создает два коммита (с версиями, скажем, 1.1 и 1.2-SNAPSHOT) в центральном репозитории Git, один из которых помечен 1.1. Поскольку TeamCity проверяет наличие последней версии каждые N секунд, на самом деле он создает только последнюю версию с номером 1.2-SNAPSHOT. И таким образом сборка 1.1 фактически никогда не попадает в репозиторий Maven. Политики безопасности не позволяют мне запускать mvn deploy с моего собственного компьютера, а развертывание репозитория Maven можно выполнить только с компьютера TeamCity.

Таким образом, я хочу запустить обе сборки против обеих коммитов в репо. Насколько я знаю, это невозможно только с одной сборкой, настроенной в TeamCity.

Теперь я использую обходной путь: есть дополнительная сборка, которая создает только «выпускные» коммиты, которые запускаются триггерами с регулярным выражением фиксации. Другой возможный обходной путь — использование дополнительной сборки, созданной для специализированной ветки «выпуск».

Но я не хочу иметь обходные пути и хотел бы заставить TeamCity запускать сборку для каждой фиксации в Git. Это также поможет мне понять неудачные тесты.

05.07.2011

Ответы:


1

Проблема с созданием вещей из одной сборки в TeamCity заключается в том, что эта конкретная сборка привязана к ветке (предположим, что это ствол). Однако когда Maven выполняет release:prepare, он фактически создает тег. Когда он создает этот тег, у вас нет сборки для него, так как ваш существующий проект привязан к исходной ветке.

Мое предложение состояло бы в том, чтобы либо изменить политику вашей компании, либо создать отдельные сборки для каждого тега. Раньше мы использовали TeamCity, и у нас была ваша проблема. Я менеджер по сборке компании, а также занимаюсь релизом. Я считаю, что до тех пор, пока исходная сборка правильно проходит на сервере CI, вы можете делать mvn release:prepare release:perform и даже mvn deploy.

05.07.2011
  • Похоже, нет обходных путей, и я должен освободиться от TeaCity. Таким образом, я создам одну дополнительную сборку без триггеров, которую должен запускать только менеджер релизов, который в случае чего выпустит сборку и развернет ее во внутреннем репозитории maven. 10.07.2011
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..