2015-03-12 4 views
30

Я строй рабочего процесса с Gitlab, Дженкинс и - возможно - Nexus (мне нужно для хранения артефактов). Я хотел бы иметь GitLab для хранения выпусков/двоичных файлов - возможно ли это удобным способом?Как хранить релизы/бинарные файлы в GitLab?

Я бы не хотел иметь другую услугу, из которой можно было бы загрузить версию (и документацию), но чтобы она каким-то образом интегрировалась с менеджером репозитория, так же, как и выпуски, обрабатываются, например. GitHub. Любые подсказки?

+2

Хранилища артефактов, такие как Nexus и Artifactory, были созданы для управления двоичными файлами с версиями, кэшированием, политиками очистки и элементами управления доступом. Git repo не очищают, они растут с течением времени. – bbaassssiiee

+1

Не тот ответ, который вам нужен, но ... очень плохой подход - это связать с последним стабильным артефактом jenkins в readme.md или wiki – KCD

ответ

24

Обновление от 2015 года: GitLab 8.2 now supports releases.

С его API теперь вы можете create and update a relase associated to a tag.
На данный момент это только возможность добавлять примечания к выпуску (текст и вложения) в теги git (например, релизы).

  • первый upload релиз двоичный
  • create a new release и разместить ссылку на загруженном двоичном в описании

Оригинальный ответ Март 2015

Это продолжается, и предложил в suggestions 4156755:

Мы прием запросов на слияние для минимального предложения по Чиро:

  1. Для каждого тега хранилища под https://github.com/cirosantilli/test/releases/tag/3.0, позволяют загружать и скачивать список файлов.
  2. Загрузка и загрузка могут быть сделаны непосредственно из представления списка тегов.
  3. Если тэг удаляется, загрузки удаляются. (мы не принимаем в тег сообщении редактирования, упомянутом в последних комментариях)

Комментарии к этому предложению относятся:

Что делает его более интересным является следующим шагом.
Мне бы очень хотелось, чтобы публичные загрузки артефактов из «выпусков» не были доступны для доступа к исходному коду (т. Е. Сделать источники частными для команды проекта, кроме всего остального, как вики, «релизы», трекер ошибок).

Однако такая дополнительная функция выглядит более общей и I submitted a separate feature request for that.

Тем не менее, я повторяю свою точку здесь:
Хотя упрощенная версию «выпуски» по-прежнему приятно иметь, многие человек могут легко настроить внешний файл сервер и точки URL-адреса в описании релиза/метке к этому серверу вне GitLab ,
Другими словами, «выпуски» могут не выглядеть привлекательно сейчас без какой-либо будущей картины интеграции.

1

Сам Gitlab (сервер) предназначен для репозиториев git. Вы не должны хранить двоичные файлы в git. Nexus будет здесь. Вы могли бы добавить ссылку на nexus в вашем описании репозитория или в файле readme (например, вы можете указать на вашу сборку jenkins).

Возможно, вы захотите взглянуть на непрерывную интеграцию GitLab, которая интегрируется с Gitlab. Это похоже на Дженкинса. Я не знаю, идет ли это с хранилищем данных, например Nexus.

+0

Ну, да и нет, приложение git позволяет обрабатывать двоичные файлы в git , GitLab CI не может быть и речи, мне придется выбирать только между Дженкинсом и TeamCity. –

+0

Приложение git является исключением git с измененным задним концом. Несмотря на то, что вы всегда можете взломать среду CI и CD, я не думаю, что это возможно для выпуска релизов для git-приложения (даже если он может удалить старые версии, что является преимуществом Nexus & co). Проверка будет более сложной, как простой запрос на получение от Nexus/FTP/HTTP (S)/S3/и т. Д. – volker

1

Мы используем scp для копирования файлов, таких как двоичные файлы или отчеты, созданные в GitlabCI.

# capture test exit code 
set +e 
bash build/ci/test.sh; TESTS_EXIT_CODE=$? 
set -e 

# copy reports 
sshpass -p "$SFTP_PASS" ssh -o StrictHostKeyChecking=no [email protected] "mkdir -p ${CI_REPORTS_PATH}" 
sshpass -p "$SFTP_PASS" scp -r ${CI_APP_VOLUME}/tests/_output/* [email protected]:${CI_REPORTS_PATH} 

# return test exit-code 
exit ${TESTS_EXIT_CODE} 
Смежные вопросы