Довольно часто необходимо вести проект командой или отчитываться перед заказчиком объемом кода, а также показывать результат — как он работает.
Я в своей работе использую Bitbucket и OpenShift. Думаю нет необходимости рассказывать о этих сервисах. Без каких либо материальных вложений мы получаем:
- приватные репозитории на 5 пользователей в совместном доступе
- трекер задач (issue tracker)
- вики (wiki)
- 3 облачных площадки для развертования проектов
Этого достаточно, чтобы вести проекты небольшой командой. И в этом посте я расскажу типичный рабочий процесс (workflow) на примере создания и развертывания проекта на Laravel.
Вопервых создайте приватный репозиторий на BitBucket. Laravel использует Composer для установки и управления зависимостями:
1 2 3 4 5 6 7 8 9 10 |
composer create-project laravel/laravel your-project-name --prefer-dist cd your-project-name # создадим репозиторий и сделаем первый коммит git init git add . git commit -m "init" # добавим удаленный репозиторий bitbucket git remote add origin <bitbucket-git-repo-url> # и отправим на него все что есть сейчас в репозитории git push -u origin --all |
Подключаем еще один удаленный репозиторий с OpenShift:
1 2 3 4 5 6 |
git remote add openshift -f <openshift-git-repo-url> git merge openshift/master -s recursive -X ours # удаляем папку php rm -r php/ # и создаем символическую ссылку на папку public ln -s public/ php |
Создаем файл .openshift/action_hooks/build со следующим содержимым:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/bin/bash export COMPOSER_HOME="$OPENSHIFT_DATA_DIR/.composer" if [ ! -f "$OPENSHIFT_DATA_DIR/composer.phar" ]; then curl -s https://getcomposer.org/installer | php -- --install-dir=$OPENSHIFT_DATA_DIR else php $OPENSHIFT_DATA_DIR/composer.phar self-update fi unset GIT_DIR cd $OPENSHIFT_REPO_DIR php $OPENSHIFT_DATA_DIR/composer.phar install --prefer-source |
Он будет выполняться после каждого push-а на репозиторий OpenShift. Сделаем его исполняемым:
1 |
chmod +x .openshift/action_hooks/build |
И наконец сделаем коммит и отправим все изменения на оба удаленных репозитория:
1 2 3 4 |
git add . git commit -m "clean" git push git push openshift HEAD |
В итоге мы развернули проект на OpenShift и можем одной строчкой в терминале отправить проект с локальной среды разработки на удаленный сервер.