Использование GIT для развертывания сайта

Я подписался на эту превосходную статью http://toroid.org/ams/git-website - Как развернуть код на моем сервере, используя стратегию Git post-hooks.

У меня есть файл после обновления , который выглядит следующим образом:

GIT_WORK_TREE=/home/rajat/webapps/<project name> git checkout -f

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

  1. git push origin master -----> развертывает код для производства (/home /rajat /webapps /production)
  2. подготовка git push origin ----> развертывает код для постановки (/home /rajat /webapps /staging)
  3. тест источника git push ----> развертывает код для тестирования (/home /rajat /webapps /test)

Для этого хук после обновления должен понимать, какая ветвь была обновлена. Это возможно?

7 голосов | спросил Rajat 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 14 Sep 2013 21:37:24 +0400 2013, 21:37:24

2 ответа


0

Можно написать хук после обновления, который определяет имя ветви.
Смотрите для вдохновения:

В качестве примера (все эти хуки основаны на git rev-parse ):

#!/bin/bash
while read oldrev newrev refname
do
    branch=$(git rev-parse --symbolic --abbrev-ref $refname)
    if [ "master" == "$branch" ]; then
        # Do something
    fi
done
ответил VonC 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 14 Sep 2013 22:03:06 +0400 2013, 22:03:06
0

Обычно я добавляю два пустых репозитория git в разных местах на моем веб-сервере; один для испытаний, один для производства. У обоих репозиториев есть пост-хуки, чтобы оформить заказ в правильном каталоге. Затем я добавляю оба в качестве удаленных в моем (одном) локальном репо.

Используя этот метод, я могу в любое время перенести любую ветку на свой тестовый пульт или на производственный пульт. Не уверен, что это правильный способ, но он хорошо сработал для меня.

ответил Stenerson 3 TueEurope/Moscow2013-12-03T05:57:37+04:00Europe/Moscow12bEurope/MoscowTue, 03 Dec 2013 05:57:37 +0400 2013, 05:57:37

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132