|
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
|
|||
---|---|---|---|
#18+
Здравствуйте. Цепочку CI настроил. Вот содержимое . build-job: stage: build script: - dotnet build ./MyService/MyService.csproj - echo $env:CI_PROJECT_DIR test-job: stage: test script: - dotnet test ./MyService.UnitTests/MyService.UnitTests.csproj deploy-job: stage: deploy script: - pscp -i d:\temp\private.ppk -P 22 c:\temp\readme.txt gl_runner@192.168.2.70:/home/myService/gitlab-runner В GitLab привязал раннер к этому проекту. Проблема в том, что как только я делаю push в репозиторий, стартует сборка (шаг build), я вижу, в логе раннера, что всё прошло успешно, папка билда появилась, файлы в ней, но нет самих dll и exe файлов. Но! Если я шаг "build" запускаю с сайта gitlab он также отрабатывает успешно, а в папке с билдом - все dll-ки и exe-шники уже есть. Поясните почему так? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 09:45 |
|
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
|
|||
---|---|---|---|
#18+
Посмотрел внимательно. Происходит следующее: 1. git push 2. Стартует задача билда 3. Вижу что на сервере, где запущен раннер, в папке с билдом появляются файлы, появляется каталог build с компилированными файлами. как только джоб отработал, файлы компиляции удаляются! Подскажите, что сделать, чтобы файлы не удалялись? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 10:35 |
|
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
|
|||
---|---|---|---|
#18+
MAULER, Вы полный (желательно с форматированием) .gitlab-ci.yml вставьте то... В том, что Вы привели, нет как минимум шапочки: Код: sql 1. 2. 3. 4.
(круглый) ЗЫ Ну и если это полный файл Вы сюда закопипастили, то ... то разные stage происходят в разных запусках на ранере(ах). А вот передача результатов - то обычно делают через артифакты (время хранения указывайте например 1 час). ЗЫ ЗЫ Доставку результата так-же возможно делать через ранер работающий на том железе куда доставляете. Тогда в скрипте будет тупое копирование из артифактов в нужное место в системе. ЗЫ ЗЫ ЗЫ Отвечая на Ваш вопрос - каждый stage начинается с подготовки ранером окружения сборки. запускается тот образ среды который указана (для определённых типов ранера), далее копируется ваш проект в рамках которого отрабатывается шаг и только после всего этого происходит передача управления Вашему скрипту ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 11:23 |
|
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
|
|||
---|---|---|---|
#18+
kolobok0, Спасибо Вам, что ответили! Действительно я привел весь код скрипта. Но добавил в самом начале список стадий, как Вы порекомендовали. Т.е. stages: - build - test - deploy Но по факту, это ни на что не повлияло. Если я правильно Вас понял, то "удержать" собранные экзешники возможно при помощи опции -artefacts Вы не могли бы примерно показать как это могло бы выглядеть в моем примере? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 13:31 |
|
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
|
|||
---|---|---|---|
#18+
MAULER, по возможностям гитлаба лучше смотреть хэлп от автора . Не удержать, а лучше наверное сказать сохранить. Т.е. потом Вы можете скачать из гитлаба (он покажет значёчек скачки артифактов), пока он будет там жив. Но стараются не забивать (особенно при большом интенсиве работы) диски гитлаба (кстати хранилище можно передвинуть на отдельные диски - см. конфиг). Обращаю Ваше внимание на важность форматирования текста при вопросе. дело в том, что яамл формат очень и очень нежен к отступам. И то что Вы запостили тут (то как показывает форум) - работать НЕ будет . Пример: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
В примере видно сохранение в артифактах файла gen/info.h по относительному пути от корня репозитория . как то так (круглый) ЗЫ Укажите тэги = имена раннеров где возможна работа данного шага. у Вас не указано и помойму последние версии гитлаба без этого работать не будут. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 14:29 |
|
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
|
|||
---|---|---|---|
#18+
kolobok0 Действительно, очень нежная штука в плане переносов, а сразу так и не скажешь! Я воспользовался встроенным инструментом проверки синтаксиса yml-файла, и добился того, что он стал валиден. Но засада в другом. При билде он выругнулся на то, что Uploading artifacts... Runtime platform arch=amd64 os=windows pid=1716 revision=738bbe5a version=13.3.1 WARNING: MyService/bin/*.*: no matching files ERROR: No files to upload а yml - файл такой: stages: - build - test - deploy build-job: stage: build script: - dotnet build ./MyService/MyService.csproj - echo $env:CI_PROJECT_DIR artifacts: paths: - MyService/bin/*.* test-job: stage: test script: - dotnet test ./MyService.UnitTests/MyService.UnitTests.csproj deploy-job: stage: deploy script: - pscp -i d:\temp\private.ppk -P 22 c:\temp\readme.txt gl_runner@192.168.0.70:/home/MyService/gitlab-runner я не могу понять в " artifacts:" я указываю все файлы, которые получатся в результате компиляции на сервере раннера в папке сборки? Или это должна быть папка в гите, куда оно потом должно скопироваться? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 14:52 |
|
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
|
|||
---|---|---|---|
#18+
MAULER, у Вас пробельная строка, (в данном случае это ошибка - перед указанием артифактов) и это другой шаг(пробельная строка в смысле) так начинается... ещё раз. Используйте кнопочку "SRC v" когда пишите на форуме... Иначе не понятно, что и где у вас не леквидно. ЗЫ то что нашли окно проверки - то правильная колбаса. методом отсечения там можно легко найти строчку проблемную. если совсем затык... ЗЫ ЗЫ tags добавьте(см. внимательно мой пример) в свой yaml ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 14:56 |
|
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
|
|||
---|---|---|---|
#18+
kolobok0, tags добавил! Но дело в том, что я папку указывал неправильно в артефактах. там ещё вложенность была. Но, блин! Заработало!!! )))))) Спасибо Вам, огромное! Бесценный опыт! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 15:26 |
|
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
|
|||
---|---|---|---|
#18+
Ещё вопрос по артефакту. Он после сборки, становится доступным для скачивания в zip-архиве прямо со страницы Gitlab-а А хранится этот артефакт на билдсервере где запущен раннер или это какое то хранилище на самом сервере gitlab-а ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 16:04 |
|
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
|
|||
---|---|---|---|
#18+
MAULER, это в самом гитлабе. в ранере сохраняется всё до следующего запуска задачи. вы можете со стороны оси сделать поиск на свои файлы из репы и увидите что экземпляр загруженный в ранер будет жить до запуска следующий любой задачи любой пайпы которая будет направлена на этот ранер. хранить бесконечно - тут надо очень хорошо подумать, т.к. возможно этот шаг пайпы будет отрабатываться на каждом пуше в каждом бранче. Если ведётся групповая разработка, и размер артефактов не стремиться к нулю - то диски переполняются не быстро, а очень быстро. и в самый не подходящий момент. и когда встанет вопрос об очистке, то головняк начинается как, где и сколько стирать. ну и в добавок у гитлаба помойму есть дофолтное время хранения (см. время в админке). около месяца помойму. (круглый) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 23:58 |
|
|
Start [/forum/topic.php?fid=37&tid=1555239]: |
0ms |
get settings: |
1ms |
get forum list: |
10ms |
check forum access: |
0ms |
check topic access: |
0ms |
track hit: |
33ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
15ms |
update_topic_read_status (1555239): 18.09.2020 09:33:22: |
0ms |
get tp. blocked users: |
0ms |
get online users: |
20ms |
check new: |
1ms |
others: | 97ms |
total: | 183ms |
0 / 0 |