ее прошлого запуска?
в кеши оно чаще не попадает, чем попадает, переиспользовать кеш из других пайплайнов нельзя
кажется, только через апи
щас поясню, зачем это нужно
у меня есть набор джобов, внутри которых запускают долгие и не всегда успешные тесты
на 10 запущенных тестов может быть 1 упавший
хочу при перезапуске джоба перезапускать только один этот упавший тест, а не все 11, ибо они долгие
для этого я в джейсонину записывают имена упавших тестов, а при перезапуске, если нахожу эту джейсонину, то читаю оттуда список упавших тестов и перезапускаю только их
с артефактами приколдэс.в том, что перезапускаемая джоба своих артефактов из предыдущего запуска не видит, даже если написано when: always, но другие джобы и старые, и затем новые артефакты оттуда видят )))
с кешем сложность в том, что раннеров много, кеш хранится локально, при перезапуске джобы вообще не факт, что она уедет на тот же раннер, где уже упала и через кеш подхватит джейсонину свою
ищу какие-нибудь простые способы, которые я не увидел
иначе придется идти в апишку, брать там зипчик (который, к слову, может быть оче объемным, ибо там логи, отчеты, вот это все), распаковывать и выгружать оттуда джейсонину
короче, вот такое не работает Some job: needs: - artifacts: true job: Some job optional: true ибо optional тут влияет только на наличие этого задания в пайплайне, а не на доступность его артефактов получается бесконечный пайплайн, который бесконечно чет ждет
А почему вы думаете что другие тесты не сломаются, если изменится код? Может быть можно описать запуск только конкретных тестов только при определенных изменениях в коде?
ну потому что такой вот флоу там вообще прикладного кода нет, это пайплайн для монореп с кучей тестов, которые проверяют прикладные комплексы целиком нет, нужно перезапускать только покрасневшие тесты, а не вообще все, потому что - починка прикладного компрлекса не зависит от появления новых коммитов в монорепе с тестами - прогон всех тестов это слишком долго тут нужно еще понимать, что тестов овер9000, и запускаются они не овер9000 джобов, а в специальных джобах-агрегаторах, называемыми в контексте этого пайплайна "планы" таким образом, джобов получается не овер9000, а пара десятков каждый план описывает список тестов, которые нужно запустить и описывает, чем их нужно запустить (там целый зоопарк всяких тулов) механика про вычитывание сломанных тестов изх джейсонины она как раз на уровне этого плана работает
есть подозрение, что артефакты джобов, записанных в dependencies и правда опциональные — не блокируют старт джобы, если их нет
В чем смысл запускать только часть тестов когда их овре9000? Так можно один чинить другой ломать и поитогу тестирование не нужно
это нужно для непосредственной, оперативной работы куа-инженеров полные прогоны всех тестов выполняют по ночам, там все вот эти сломанные тесты всплывают если инженеру нужно перезапустить все тесты, а не только красные,, нет проблем, просто нужно перезапустить пайплайн
Тогда кажется будто бы просто сделать перед стартом джобы проверку на предыдущую и курлом с апи выдернуть будет не очень сложно
угу этот способ я оставил на десерт, и похоже, его время пришло мне, кстати, не очень ясно, как мне артефакты выдергивать, надо апишку раскуривать в чем я вижу сложность: когда в пайплане запускает джоба, у нее появляется айди этот адйи постоянен и неизменен, он однозначно идентифицирует джобу, артефакты джобы доступны через ее айди а вот когда я джрбу перезапускаю, хоть в интерфейсе это и выглядит как та же самая джоба, на самом деле это уже новая джоба с новым айди, и со своими собственными артефактами таким образом, сначала нужно у пайплайна получить самую современную джобу по ее имени, и только за тем уже доставать артефакты я пока не знаю, как это делается )) но я еще и не пробовал, канеш ну и еще момент — у меня динамический пайплайн, соответственно есть дочерний и родительский, надеюсь это нигде не выстрелит
Обсуждают сегодня