Использование крючка после получения для создания застежки-молнии

Я уже какое-то время играю с крючками, но, похоже, я не могу заставить крючок post-receive работать так, как мне нужно.

Я пытаюсь использовать хук post-receive для создания zip-папки и размещения ее где-нибудь за пределами папок репозитория git после того, как я отправил свои изменения в репозиторий.


person MikeyJ    schedule 18.12.2012    source источник
comment
Вы должны включить крючок, который вы написали, в свой вопрос.   -  person jbowes    schedule 18.12.2012


Ответы (1)


У вас есть хороший пример развертывания zip-архива с помощью обработчика post-receive в эту статью от Дэниела Бирна:

Идея состоит в том, чтобы использовать git archive --format=zip:

#!/bin/bash
#
# A post commit hook that takes any updates pushed to the 'release' branch
# and creates a release directory for the new version under the webroot.
# Live site is then symlinked to this new release directory.

oldrev=$1
newrev=$2
branch=$3

# this is the root of the website (a symlink to a release directory)
webroot=/var/www/danielbyrne.net/www

if [ "$branch" == "release" ]
then

    # create a release directory to extract files into
    target=/var/www/danielbyrne.net/releases/$2/
    mkdir $target

    echo "Making target directory: $target"

    # create an archive in the webroot of danielbyrne.net
    /usr/bin/git archive master --format zip --output $target/deploy.zip

    echo "unzipping archive..."

    # extract the archive
    unzip -o -q $target/deploy.zip -d $target

    echo "removing deployment archive"

    # remove the archive file
    rm $target/deploy.zip

    echo "switching symbolic link to $target"

    # now switch the live site to point to the new release
    ln -nsf $target $webroot

    echo "done";
fi
person VonC    schedule 19.12.2012
comment
Я пробовал использовать это, но продолжаю получать ту же ошибку, что и раньше: «warnign: не удалось найти / tmp, пожалуйста, создайте« Проблема в том, что я не знаю, как и где создать / tmp » - person MikeyJ; 20.12.2012
comment
@MikeyJ странно, потому что /tmp, как указывает его собственное имя, должен находиться под / (корневой каталог, если сервер). Возможно, проблема с правом доступа. - person VonC; 20.12.2012
comment
Прикольно видеть, что некоторые из моих кодов ссылаются на SO :-) @MikeyJ - вы используете Linux или cgywin в Windows? В большинстве дистрибутивов есть каталог / tmp ... в какой момент вы видите ошибку и где? - person managedheap84; 22.04.2013
comment
@ managedheap84 да, мне понравился ваш подход в этом крючке. Обратите внимание, что MikeJ последний раз видели на Stack Overflow в феврале прошлого года. Возможно, вы не сразу получите ответ на свой вопрос;) - person VonC; 22.04.2013