t.me/atinfo_chat Telegram группа по автоматизации тестирования

Как заставить джобу скачивать репозиторий только если в нем были идменения после последнего билда

team-city
Теги: #<Tag:0x00007f9c4e973758>

(Яна Телегина) #1

Билд запускается каждые 10 минут
изменения в репозитории бывают раз в пару дней
как пропускать шаг копирования репозитория при сборке если изменений не было?


(Alexandr D.) #2

Немного не по теме - у вас деплой происходит каждые 10 минут без изменений? Для чего?


(Яна Телегина) #3

тесты


(Alexandr D.) #4

А зачем гонять тесты каждые 10 минут, если там изменений не было? =)


(Alexandr D.) #5

Честно говоря не знаю, как с этим работает именно ТС, но я думаю по аналогии как и Jenkins.
Если изменения в репо есть - то он их стянет.
Если нет - то не стянет…

В чем проблема-то, можете подробнее описать?


(Яна Телегина) #6

много внешних партнеров(апи) которые могут отваливаться
тесты покрывают этот функционал взаимодействия
и дают уверенность заказчику в том что те или действия\функционал доступен для использования например пользователям на портале
ну и статистику


(Яна Телегина) #7

да дженкиинс так делает по дефолту
но в тс в логах сборки вижу что каждый раз он тянет ропозиторий - а где это настраивается не пойму


(Alexandr D.) #8

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


(Яна Телегина) #9

да не особо много, но неприятно же ) зачем лишние действия
секунд 10
а если тесты нужно будет прогонять каждые минуты 2 - 10 секунд уже значительно будет задерживать


(Alexandr D.) #10

Я думаю в данном случае вряд ли что-то получится сделать.
Что-то мне подсказывает, что эти 10 секунд он ищет изменения.


(Valentin G ) #11

У меня в проекте сделана следующая система (тоже используется ТимСити):

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

(Яна Телегина) #12

Попробовала сделать так же , но не пойму почему ошибка при этом
хотя такая ошибка только после 6 билда появилась внезапно - ничего не менялось
[12:50:15] Using vcs information from agent file: e81090648487d4e6.xml

[12:50:15] Checkout directory: C:\TeamCity\buildAgent\work\e81090648487d4e6

[12:50:15] Updating sources : auto checkout (on agent)

[12:50:15] [Updating sources] Will use agent side checkout

[12:50:15] [Updating sources] VCS Root: http://gitlab.reksoft.ru/cargobar/tests.git#refs/heads/master

[12:50:15] [VCS Root: http://gitlab.reksoft.ru/cargobar/tests.git#refs/heads/master] revision: bf65074994dfc87779537c64525d6960cad53bab

[12:50:15] [VCS Root: http://gitlab.reksoft.ru/cargobar/tests.git#refs/heads/master] Git version: 2.21.0.0

[12:50:15] [Updating sources] Failed to perform checkout on agent: Error while configuring remote repository at C:\TeamCity\buildAgent\system\git\git-F3321C49.git

[12:50:15] Publishing internal artifacts

[12:50:15] Build failed to start. Artifacts will not be published for this build

[12:50:15] Clearing temporary directory: C:\TeamCity\buildAgent\temp\buildTmp


(Valentin G ) #13

Мне сложно сказать, не зная - который из билдов это, что за проект (какие инструменты в тестах), что в настройках билдов.


(Яна Телегина) #14

увидела что кто-то дабавил тригер (либо он был создан по дефолту в tc)
может дело в нем ? http://joxi.ru/Y2LYBykt7xMqVA
вот как ностоен первый шаг http://joxi.ru/V2VLEaYudB8adr


(Valentin G ) #15

В первом билде - который собирает изменения, там должен быть лишь один - VCS trigger, который реагирует на изменения в Мастере. Ни на что другое он не должен реагировать (разве что если сами вручную запускаете).
В билдах, в которых выполняются тесты - там уже ставите триггер на выполнение в то время, которое вам нужно.


(Valentin G ) #16

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