powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Управление процессом разработки ИС [игнор отключен] [закрыт для гостей] / Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
11 сообщений из 11, страница 1 из 1
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
    #39999643
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Цепочку 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-шники уже есть.

Поясните почему так?
...
Рейтинг: 0 / 0
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
    #39999664
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел внимательно.

Происходит следующее:

1. git push
2. Стартует задача билда
3. Вижу что на сервере, где запущен раннер, в папке с билдом появляются файлы, появляется каталог build с компилированными файлами.
как только джоб отработал, файлы компиляции удаляются!

Подскажите, что сделать, чтобы файлы не удалялись?
...
Рейтинг: 0 / 0
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
    #39999701
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAULER,

Вы полный (желательно с форматированием) .gitlab-ci.yml вставьте то...
В том, что Вы привели, нет как минимум шапочки:

Код: sql
1.
2.
3.
4.
stages:
  - build
  - test
  - deploy



(круглый)
ЗЫ
Ну и если это полный файл Вы сюда закопипастили, то ... то разные stage происходят в разных запусках на ранере(ах). А вот передача результатов - то обычно делают через артифакты (время хранения указывайте например 1 час).
ЗЫ ЗЫ
Доставку результата так-же возможно делать через ранер работающий на том железе куда доставляете. Тогда в скрипте будет тупое копирование из артифактов в нужное место в системе.
ЗЫ ЗЫ ЗЫ
Отвечая на Ваш вопрос - каждый stage начинается с подготовки ранером окружения сборки. запускается тот образ среды который указана (для определённых типов ранера), далее копируется ваш проект в рамках которого отрабатывается шаг и только после всего этого происходит передача управления Вашему скрипту
...
Рейтинг: 0 / 0
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
    #39999767
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0,
Спасибо Вам, что ответили!

Действительно я привел весь код скрипта. Но добавил в самом начале список стадий, как Вы порекомендовали.
Т.е.
stages:
- build
- test
- deploy

Но по факту, это ни на что не повлияло.

Если я правильно Вас понял, то "удержать" собранные экзешники возможно при помощи опции -artefacts
Вы не могли бы примерно показать как это могло бы выглядеть в моем примере?
...
Рейтинг: 0 / 0
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
    #39999821
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAULER,

по возможностям гитлаба лучше смотреть хэлп от автора .
Не удержать, а лучше наверное сказать сохранить. Т.е. потом Вы можете скачать из гитлаба (он покажет значёчек скачки артифактов), пока он будет там жив. Но стараются не забивать (особенно при большом интенсиве работы) диски гитлаба (кстати хранилище можно передвинуть на отдельные диски - см. конфиг).
Обращаю Ваше внимание на важность форматирования текста при вопросе. дело в том, что яамл формат очень и очень нежен к отступам. И то что Вы запостили тут (то как показывает форум) - работать НЕ будет .

Пример:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
#> INFO SECTION ################################################################

Generate-build-info:  
  stage: generate_info
  image: hm/ci/utils:0.2.4
  script:
    - mkdir gen
    - /ci/create_info.sh gen/info.sh
  rules:
    - if: '$CI_COMMIT_TAG'
      when: never
    - if: '$CI_COMMIT_BRANCH == "master"'
      when: always
    - if: '$CI_COMMIT_BRANCH == "develop"'
      when: always
  artifacts:
    paths:
      - gen/info.sh
    expire_in: 1h
  tags:
    - docker



В примере видно сохранение в артифактах файла gen/info.h по относительному пути от корня репозитория .

как то так
(круглый)
ЗЫ
Укажите тэги = имена раннеров где возможна работа данного шага. у Вас не указано и помойму последние версии гитлаба без этого работать не будут.
...
Рейтинг: 0 / 0
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
    #39999855
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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:" я указываю все файлы, которые получатся в результате компиляции на сервере раннера в папке сборки?

Или это должна быть папка в гите, куда оно потом должно скопироваться?
...
Рейтинг: 0 / 0
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
    #39999864
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAULER,

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

ещё раз. Используйте кнопочку "SRC v" когда пишите на форуме... Иначе не понятно, что и где у вас не леквидно.

ЗЫ
то что нашли окно проверки - то правильная колбаса. методом отсечения там можно легко найти строчку проблемную. если совсем затык...
ЗЫ ЗЫ
tags добавьте(см. внимательно мой пример) в свой yaml
...
Рейтинг: 0 / 0
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
    #39999893
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0,
tags добавил!

Но дело в том, что я папку указывал неправильно в артефактах. там ещё вложенность была.

Но, блин! Заработало!!! ))))))

Спасибо Вам, огромное! Бесценный опыт!
...
Рейтинг: 0 / 0
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
    #39999927
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё вопрос по артефакту.
Он после сборки, становится доступным для скачивания в zip-архиве прямо со страницы Gitlab-а

А хранится этот артефакт на билдсервере где запущен раннер или это какое то хранилище на самом сервере gitlab-а ?
...
Рейтинг: 0 / 0
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
    #40000085
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAULER,

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

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

(круглый)
...
Рейтинг: 0 / 0
Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
    #40000155
MAULER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0,

Спасибо Вам!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Управление процессом разработки ИС [игнор отключен] [закрыт для гостей] / Настроил цепочку CI в GitLab но шаг BUILD компилирует только при ручном запуске.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (2): Анонимы (2)
Пользователи онлайн (15): Анонимы (13), Yandex Bot, Bing Bot 7 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]