Проект «SnakeProject» Михаила КозловаРегистрация

Навигация
⇒FreeBSD and Nix⇒

⇐CISCO
⇐Voice(Asterisk\Cisco)
⇐Microsoft
⇐Powershell
⇐Python
⇐SQL\T-SQL
⇐1С
⇐Общая
⇐WEB Разработка
⇐ORACLE SQL \ JAVA
⇐Мото

Git и GitLab пример проекта


 

 

Git и GitLab пример проекта


----Git----


Установка обычного Git в Linux:
apt-get install git-core
Или
yum install git-core


Создание пользователя:
useradd git
passwd git


Создание ssh ключей:
ssh-keygen -t rsa


Копируем ключ пользователю на другом сервере, чтоб он имел доступ:
cat ~/.ssh/id_rsa.pub | ssh git@remote-server "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"


Создаем проект на сервере:
mkdir -p /home/swapnil/project-1.git

cd /home/swapnil/project-1.git

git init --bare


На клиенте подключаем проект:

mkdir -p /home/swapnil/git/project

cd /home/swapnil/git/project

git init

git add .

git commit -m "message" -a

git remote add origin ssh://git@remote-server:/home/swapnil/project.git

git push origin master


Клонирование проекта на клиенте:
git clone git@remote-server:/home/swapnil/project.git


----GitLab----


Установка GitLab в Linux:
apt-get install postfix
Или
yum install postfix


Установка самого gitlab:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-сe/script.rpm.sh | sudo bash
Или:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash


Устанавливаем доменное имя для приложения:
EXTERNAL_URL="http://gitlab.local"
yum install gitlab-ce
Или:
apt install gitlab-ce


Смотрим настройки:
/etc/gitlab/gitlab.rb
letsencrypt['enable'] = true
external_url "http://gitlab.local"
letsencrypt['contact_emails'] = ['admin@local']


Перезагружаем:
gitlab-ctl reconfigure


Переходим, если нет имени просто по ip:
http://gitlab.local


Чтоб открыть доступ по ssh понадобится сгенерировать ключи:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_gitlab


Копируем содержимое файла ~/.ssh/id_rsa_gitlab.pub в web интерфейс gitlab:
cat ~/.ssh/id_rsa_gitlab.pub


Открываем раздел Admin Area -> Visibility and access controls -> Enabled Git access protocols -> Both SSH and HTTPS(S)
User Settings -> SSH Keys -> копируем свой pub ключ сюда


Создайте тестовый проект и попробуйте закачать файл


Пробуем:
git clone Your_Login@gitlab.local:test/test.git
cd test/
git add .
git commit -m "test commit"
git push origin master


----GitLab CI пример проекта----

Идея заимствована из статьи:

https://itnan.ru/post.php?c=1&p=309380


Для тестов и исполнения Job нам понадобится runner

Как установить и настроить я уже описывал например тут:
http://snakeproject.ru/rubric/article.php?art=gitlab_runner_18.07.2019

Пример настройки проекта с gitlab и runner описывал тут:
http://snakeproject.ru/rubric/article.php?art=gitlab3_06.08.2019

Предполагается далее, что он уже установлен и настроен


В гитлабе есть огромное количество возможностей и функционала

Рассмотрим простенький проект со сборкой


Допустим есть простейшая команда, возвращающая определенную строку из файла:
cat file.txt | grep -q "Im fine"


1. Задача: Прикрутим тесты

По дефолту GitLab использует Docker образ Ruby
Он достаточно замедляет компиляцию
Заменим дефолтный image на alpine

Создадим файл - .gitlab-ci.yml , в который напишим тест на это значение:


Собственно в логах Build увидим успешную сборку с кодом 0


Теперь заменим в файле file.txt слово "fine" например на "bad"

Следующая сборка провалится с кодом 1


Насколько видно, автоматические тесты работают корректно


2. Задача: Возможность скачать результаты сборки

.gitlab-ci.yml:


В результатах сборки появится вкладка "artefact", теперь можно скачать результаты сборки

Скачать последний artifacts.zip из GitLab

Синтаксис на публичный репозиторий GitLab:

Живой пример на приватный с помощью токена (в настройках юзера)


3. Задача: Добавляем стадии проверки выполнения

Собственно нужно сделать так, чтоб стадия artefact выполнялась только при успехе стадии test

.gitlab-ci.yml:


Теперь стадия "artefact" будет выполняться только при успешной сборке на стадии "test"

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

© Snakeproject.ru создан в 2013 году. При копировании материала с сайта - оставьте ссылку.


Яндекс.Метрика

Goon Каталог сайтов Рейтинг@Mail.ru