я все посмотрела, повторила, у меня получилось, да - не без ошибок, и не за 1 день, а дня за 3 головной боли))) но все получилось, ура!! прям счастье. СПАСИБО!
Очень годный контент у нас , просто находка , расскажите еще про ci-cd , очень уж интересно как в даных реалиях запускать, через Docker, docker-compose , спасибо за старания
@@EugeneOkulik В данный момент я использую упрощенный YML-файл на GitHub Pages. Он, можно сказать, на "костылях" прогоняет тесты и отправляет результаты в Telegram-бота с помощью следующего кода:- name: Send result to Telegram uses: appleboy/telegram-action@master if: always() with: debug: true token: ${{ secrets.TELEGRAM_TOKEN }} to: ${{ secrets.TELEGRAM_TO }} message: | Ссылка на отчет: ${{ env.REPORT_URL }} Моя идея заключается в том, чтобы выполнять actions через Docker Compose и запускать их через GitLab или Jenkins. В теории я понимаю, как это все можно реализовать. Раньше у меня не было полноценных отчетов в виде историй в Allure, но сейчас мои отчеты выглядят более профессионально благодаря только вам . Я был бы благодарен за вашу экспертизу в области CI/CD.
Ну почему сразу девопсятина? Сейчас очень часто, как минимум, CI от тестеров требуют. Было бы очень интересно посмотреть и научиться как, скажем, подружить и запускать тесты c allure отчетом как плагином в jenkins, запущенном в docker.
@@SeniorTester я имел ввиду локальный докер, в нем запустить дженкинс, в нем аллюр отчеты и все это настроить. настроить сборки в дженкинсе, настроить аллюр отчеты (параметры, шаги..) и так далее. нет пределов совершенству:))
Здравствуйте! Евгений, спасибо большое за контент! Подскажите, вы сказали, что получить id первого allure results в json можно несколькими способами. А какие способы еще есть, если не через python?
Там все способы подзамороченные. Я и выбрал Python, потому что он наиболее понятный. Еще есть достаточно простой способ, но через установку программы jq на комп, но что-то у меня с этим не срослось, не помню что. Можете погуглить "bash get json field".
Теоретически можно. Но это нужно настраивать джобы в другом репозитории, для которых создавать вебхуки и давать этому другому репозиторию право на получение артефактов этого репозитория
Cпасибо большое за классный контент! Подскажите, а возможно ли создавать несколько allure отчетов на разных github pages, но в одном проекте? У меня есть два yaml файла для разных тестов. Столкнулась с проблемой, что это все создается в одном github page.
Не пытался решить такое. Но теоретически можно сделать как-то, что один отчет у вас будет по адресу username.github.io/repo/first, а второй username.github.io/repo/second
Это pop os, основана на Ubuntu, почти то же самое, но немного перелицована. Просто понравилась больше чем Ubuntu. Может, попробовал бы что-то ещё, но тогда, когда выбирал, закончилось время на эксперименты.
Сейчас получается, что дата старта - 9 октября. Дата может немного измениться, но где-то в тех числах начинаем. Запись и оплата у меня на сайте (ссылка есть в описании к видео)
Спасибо большое за видео! Очень доступно и понятно, для работы супер пригодилось!) Хочу уточнить такой момент, не сохраняется история для trends и на шаге "run: mkdir allure-results && unzip artifacts.zip -d allure-results", выдает "Process completed with exit code 9." :( Видела, что у вас вроде тоже такую ошибку выдает, может быть есть решение?
Евгений, спасибо! Но вопрос. У меня такая ситуация: если какие то из тестов не проходят (FAILED), тогда вторая джоба Generate report даже не запускается. Даже не так. Внутри джобы Test , если тесты с ошибками (шаг завершает так: Error: Process completed with exit code 1.), то следующие шаги джобы не выполняются и джоба не завершается
Большое спасибо! Очень круто всё объяснили) Я реализовал на своем проекте на Jave данный метод. но вот столкнулся с проблемой: если переименовать тест в проекте и запушить на гитхаб, то в истории продолжает хранится тест со старым названием (а его уже не существует). Не подскажет как обойти эту проблему?)
Я бы сказал, что это, скорее, хорошо, чем плохо. История хранится в том виде, в котором всё и выполнялось. Но если есть желание избавиться от этого теста в истории, то придется попотеть ))) Нужно будет найти в артефактах все данные от этом тесте, дописать джобу, которая эти данные удаляет и один раз запустить пайплайн. После этого добавленную джобу можно убрать. И я сейчас чуть поизучал и у меня есть предположение, что папку allure-results можно не копировать, а копировать только файлы истории. И, возможно, это починит эту ситуацию, но нужно экспериментировать.
@@SeniorTester будет время займусь экспериментами, сейчас возможности попотеть нет :) А пока поставил заглушку, а то тест был упавшим и вносил смуту в общую картину) Еще раз спасибо!)
спасибо за качественный видос! ВОпрос а если запуск первый и никаких артефактов еще нету ? не найдет артефакт по id и упадет с ошибкой? УЖе про jenkins писали но и я напишу) хотелось бы для сравнения увидеть урок именно от тебя так как очень подробно и доступно обьясняешь) Например в этом уроке понравилось что ты сначала на примере api запросов показал что и для чего делать будем. Мне помогло потом найти свою ошибку именно благодаря тому, что тоже поигрался с запросами Короче спасибо еще раз за качественный материал)
Список артефактов вернётся пустой и упадёт, да. Первый раз лучше запустить без копирования истории. С дженкинсом подумаю. Я там не очень дружу с пайплайнами
@@SeniorTester спасибо, так и понял ну в любом случае уроки классные и полезные, даже пускай если длинные, кому надо за пару дней пройдет если что. Так что будем ждать, если не дженкинс, то другие темы в которых хорошо разбираешься и уверенней себя чувствуешь
можно пометить строчки, где происходит распаковка и копирование результатом " ||true", тогда если данных нет, то пройдет на следующий этап. В тестах напишет "Download history (имя джобы) No files were found with the provided path: allure-results. No artifacts will be uploaded."
Евгений, здравствуйте! Делал все по вашему гайду и столкнулся с ошибкой на этапе Store allure results в job-e 'test'. Ошибка следующая: Error: Failed to CreateArtifact: Received non-retryable error: Failed request: (409) Conflict: an artifact with this name already exists on the workflow run Как я понимаю, проблема связана с тем, что в job-ax 'download-history' и 'test' создается артефакт с одинаковым именем allure-results. Подскажите, пожалуйста, как можно решить данную проблему?
Странно. У меня не было такой проблемы. Возможно, что-то уже поменялось. Можно тогда в джобе с историей сохранять всё в results и эту же папку оставлять артефактом. А в джобе test после скачивания артефакта results переименовывать скачанную папку в allure-results
@@SeniorTester Здравствуйте, Евгений! Я сразу не упомянул, что использовал все последние версии actions. Это и есть причина такой ошибки, а конкретно использование upload-artifact@v4 (у вас в гайде использовалась предыдущая v3). В ней как раз и появились изменения, касательно уникальных имен артефактов. Также появятся и другие проблемы при использовании новых версий некоторых других actions. В итоге проблему я решил просто оставшись на более старых версиях некоторых actions. Совет для других - для начала повторите точь в точь как в видео. Все будет работать корректно. Евгений, cпасибо вам большое за ответ, очень люблю ваши видео, успехов вам!
при добавлении jobs: download-history начала появляться ошибка - IndexError: list index out of range -- я так понимаю не находит аллюр отчет для скачивания... как исправить? подскажите плиз
Может быть несколько причин. Мог умереть токен или срок хранения последнего отчёта истёк. Если второе, то можно или разрешить этому шагу падать или запустить один раз без скачивания истории
@@SeniorTester не помогает, тесты проходят, но скачивание истории все равно падает ну и аллюр отчеты не обновляются.. можете чекнуть репозиторий, может в yml файле ошибка?
Нужно видеть что там у вас прячется под этим all. Можете скинуть ссылку на репозиторий? TH-cam ссылку не пропустит, можете написать мне в LinkedIn, telegram или Instagram
@@SeniorTester просто скипает тесты, ошибок нет. Я добавила кусочек кода и указала саму папку с тестами, но это тоже не помогло - name: all if: "github.event.inputs.deployment_target == 'all'" run: pytest tests --alluredir=allure-results
Отличная подача, все рассказываете по этапам. спасибо что делитесь с нами.
я все посмотрела, повторила, у меня получилось, да - не без ошибок, и не за 1 день, а дня за 3 головной боли))) но все получилось, ура!! прям счастье. СПАСИБО!
спасибо! очень полезное видео!
Большое спасибо! Годный контент! 👍
Спасибо! Запишите такое же видео про Gitlab.
Спасибо! Все получилось!
Кайф!!!
Очень годный контент у нас , просто находка , расскажите еще про ci-cd , очень уж интересно как в даных реалиях запускать, через Docker, docker-compose , спасибо за старания
Ой, ну это вообще девопсятина. Могу попробовать. Довольно обширная тема. А можете какой-то сценарий накинуть, чтобы рассказать о нужном?
@@EugeneOkulik В данный момент я использую упрощенный YML-файл на GitHub Pages. Он, можно сказать, на "костылях" прогоняет тесты и отправляет результаты в Telegram-бота с помощью следующего кода:- name: Send result to Telegram
uses: appleboy/telegram-action@master
if: always()
with:
debug: true
token: ${{ secrets.TELEGRAM_TOKEN }}
to: ${{ secrets.TELEGRAM_TO }}
message: |
Ссылка на отчет: ${{ env.REPORT_URL }}
Моя идея заключается в том, чтобы выполнять actions через Docker Compose и запускать их через GitLab или Jenkins. В теории я понимаю, как это все можно реализовать. Раньше у меня не было полноценных отчетов в виде историй в Allure, но сейчас мои отчеты выглядят более профессионально благодаря только вам . Я был бы благодарен за вашу экспертизу в области CI/CD.
Ну почему сразу девопсятина? Сейчас очень часто, как минимум, CI от тестеров требуют. Было бы очень интересно посмотреть и научиться как, скажем, подружить и запускать тесты c allure отчетом как плагином в jenkins, запущенном в docker.
Я как-то не совсем понял, запустить дженкинс в докере на github actions?
Здесь как раз и показал ту информацию о CI, знание которой требуется от QA
@@SeniorTester я имел ввиду локальный докер, в нем запустить дженкинс, в нем аллюр отчеты и все это настроить. настроить сборки в дженкинсе, настроить аллюр отчеты (параметры, шаги..) и так далее. нет пределов совершенству:))
Здравствуйте! Евгений, спасибо большое за контент! Подскажите, вы сказали, что получить id первого allure results в json можно несколькими способами. А какие способы еще есть, если не через python?
Там все способы подзамороченные. Я и выбрал Python, потому что он наиболее понятный. Еще есть достаточно простой способ, но через установку программы jq на комп, но что-то у меня с этим не срослось, не помню что.
Можете погуглить "bash get json field".
Давай повторим только с self-host? 😊 Как будет там? По идеи там уже все артифаты останутся и не нужно будет каждый раз скачивать?
По идее, подход будет таким же. Но нужно будет поэкспериментировать, да
Супер, спасибо! Вопрос: а можно ли как-то деплоить отчет в github pages внутри другого репозитория, а не того, где тесты крутятся? 👀
Теоретически можно. Но это нужно настраивать джобы в другом репозитории, для которых создавать вебхуки и давать этому другому репозиторию право на получение артефактов этого репозитория
Cпасибо большое за классный контент! Подскажите, а возможно ли создавать несколько allure отчетов на разных github pages, но в одном проекте? У меня есть два yaml файла для разных тестов. Столкнулась с проблемой, что это все создается в одном github page.
Не пытался решить такое. Но теоретически можно сделать как-то, что один отчет у вас будет по адресу username.github.io/repo/first, а второй username.github.io/repo/second
(off topic) Евгений, какой дистрибутив линукс вы используете и почему именно его?)
Это pop os, основана на Ubuntu, почти то же самое, но немного перелицована. Просто понравилась больше чем Ubuntu. Может, попробовал бы что-то ещё, но тогда, когда выбирал, закончилось время на эксперименты.
Спасибо! Такой вопрос, а можно ли все эти действия: запуск тестов, генерация отчета и публикация сделать в одной джобе?
Технически, да. А практически, обычно здесь как и в программировании придерживаются принципа - на каждое действие отдельная функция. Ну, здесь, джоба
@@SeniorTester спасибо)
Евгений здравствуйте! Когда Вы планируете запустить обучение следующей группы??
Здравствуйте. Где-то в начале октября, ближе к 10-му числу. График: понедельник, четверг.
Сейчас получается, что дата старта - 9 октября. Дата может немного измениться, но где-то в тех числах начинаем.
Запись и оплата у меня на сайте (ссылка есть в описании к видео)
Спасибо большое за видео! Очень доступно и понятно, для работы супер пригодилось!) Хочу уточнить такой момент, не сохраняется история для trends и на шаге "run: mkdir allure-results && unzip artifacts.zip -d allure-results", выдает "Process completed with exit code 9." :( Видела, что у вас вроде тоже такую ошибку выдает, может быть есть решение?
Евгений, спасибо! Но вопрос. У меня такая ситуация: если какие то из тестов не проходят (FAILED), тогда вторая джоба Generate report даже не запускается. Даже не так. Внутри джобы Test , если тесты с ошибками (шаг завершает так: Error: Process completed with exit code 1.), то следующие шаги джобы не выполняются и джоба не завершается
Посмотрите в мои настройки. Там есть настройка, которая называется как-то типа continue on failure
Спасибо. Решил проблему проставлением во всех шагах всех джоб условия : if: always()
Большое спасибо! Очень круто всё объяснили) Я реализовал на своем проекте на Jave данный метод. но вот столкнулся с проблемой: если переименовать тест в проекте и запушить на гитхаб, то в истории продолжает хранится тест со старым названием (а его уже не существует). Не подскажет как обойти эту проблему?)
Я бы сказал, что это, скорее, хорошо, чем плохо. История хранится в том виде, в котором всё и выполнялось. Но если есть желание избавиться от этого теста в истории, то придется попотеть )))
Нужно будет найти в артефактах все данные от этом тесте, дописать джобу, которая эти данные удаляет и один раз запустить пайплайн. После этого добавленную джобу можно убрать.
И я сейчас чуть поизучал и у меня есть предположение, что папку allure-results можно не копировать, а копировать только файлы истории. И, возможно, это починит эту ситуацию, но нужно экспериментировать.
@@SeniorTester будет время займусь экспериментами, сейчас возможности попотеть нет :) А пока поставил заглушку, а то тест был упавшим и вносил смуту в общую картину) Еще раз спасибо!)
спасибо за качественный видос!
ВОпрос а если запуск первый и никаких артефактов еще нету ? не найдет артефакт по id и упадет с ошибкой?
УЖе про jenkins писали но и я напишу) хотелось бы для сравнения увидеть урок именно от тебя так как очень подробно и доступно обьясняешь)
Например в этом уроке понравилось что ты сначала на примере api запросов показал что и для чего делать будем. Мне помогло потом найти свою ошибку именно благодаря тому, что тоже поигрался с запросами
Короче спасибо еще раз за качественный материал)
Список артефактов вернётся пустой и упадёт, да. Первый раз лучше запустить без копирования истории.
С дженкинсом подумаю. Я там не очень дружу с пайплайнами
@@SeniorTester спасибо, так и понял
ну в любом случае уроки классные и полезные, даже пускай если длинные, кому надо за пару дней пройдет если что. Так что будем ждать, если не дженкинс, то другие темы в которых хорошо разбираешься и уверенней себя чувствуешь
можно пометить строчки, где происходит распаковка и копирование результатом " ||true", тогда если данных нет, то пройдет на следующий этап. В тестах напишет "Download history (имя джобы) No files were found with the provided path: allure-results. No artifacts will be uploaded."
Евгений, здравствуйте!
Делал все по вашему гайду и столкнулся с ошибкой на этапе Store allure results в job-e 'test'.
Ошибка следующая:
Error: Failed to CreateArtifact: Received non-retryable error: Failed request: (409) Conflict: an artifact with this name already exists on the workflow run
Как я понимаю, проблема связана с тем, что в job-ax 'download-history' и 'test' создается артефакт с одинаковым именем allure-results.
Подскажите, пожалуйста, как можно решить данную проблему?
Странно. У меня не было такой проблемы. Возможно, что-то уже поменялось.
Можно тогда в джобе с историей сохранять всё в results и эту же папку оставлять артефактом. А в джобе test после скачивания артефакта results переименовывать скачанную папку в allure-results
@@SeniorTester
Здравствуйте, Евгений! Я сразу не упомянул, что использовал все последние версии actions. Это и есть причина такой ошибки, а конкретно использование upload-artifact@v4 (у вас в гайде использовалась предыдущая v3).
В ней как раз и появились изменения, касательно уникальных имен артефактов. Также появятся и другие проблемы при использовании новых версий некоторых других actions. В итоге проблему я решил просто оставшись на более старых версиях некоторых actions. Совет для других - для начала повторите точь в точь как в видео. Все будет работать корректно. Евгений, cпасибо вам большое за ответ, очень люблю ваши видео, успехов вам!
при добавлении jobs: download-history начала появляться ошибка - IndexError: list index out of range -- я так понимаю не находит аллюр отчет для скачивания... как исправить? подскажите плиз
Может быть несколько причин. Мог умереть токен или срок хранения последнего отчёта истёк.
Если второе, то можно или разрешить этому шагу падать или запустить один раз без скачивания истории
@@SeniorTester не помогает, тесты проходят, но скачивание истории все равно падает ну и аллюр отчеты не обновляются.. можете чекнуть репозиторий, может в yml файле ошибка?
Нужно смотреть что возвращает запрос, который запрашивает старые артефакты. Возможно, там как раз и написано что не так
подскажите пожалуйста, как запустить все тесты? у меня не получается. если просто выбрать all - не работает.
Нужно видеть что там у вас прячется под этим all. Можете скинуть ссылку на репозиторий? TH-cam ссылку не пропустит, можете написать мне в LinkedIn, telegram или Instagram
@@SeniorTester у меня все как у вас:)
А есть ошибки какие-то или просто ничего не запускется?
@@SeniorTester просто скипает тесты, ошибок нет. Я добавила кусочек кода и указала саму папку с тестами, но это тоже не помогло
- name: all
if: "github.event.inputs.deployment_target == 'all'"
run: pytest tests --alluredir=allure-results
Ну странно. Если всё как у меня, то должно работать. Хорошо бы посмотреть что пишется в логе этой джобы
и про Дженкинс !!
Обязательно
Будет классно если раскажите как деплоить на сваой веб сервер
Ох. Это, скорее, к девопсам. Но мне всегда и самому было интересно. Возможно, однажды доберусь - тогда обязательно расскажу что узнал.
@@SeniorTester а такое применяется в проектах. Деполой отчета allure на веб сервер? Или достаточно гит?