要创建一个简单的自动部署脚本,我在git上创建了一个后接收挂钩,如下所示:
#!/bin/sh
GIT_DIR="/srv/git/test.git"
TARGET="/srv/www/laravel"
BRANCH="master"
while read oldrev newrev ref
do
# only checking out the master (or whatever branch you would like to deploy)
if [[ $ref = refs/heads/$BRANCH ]] ;
then
echo "Ref $ref received. Deploying ${BRANCH} branch to ${TARGET}"
git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f
#expecting value from git describe --tag like v0.4-45-g0a0b538
pushd $TARGET
echo {tag}
php artisan make:version {tag}
popd
else
echo "Ref $ref received. Doing nothing: only the ${BRANCH} branch may be deployed on this server."
fi
done
但是,我找不到从裸仓库中将git describe --tag
之类的v0.4-45-g0a0b538
的打印值发送到我的{tag}的方法。
php artisan make:version
是将{tag}
保存到我的.env文件中的命令,该文件稍后将显示在我的网页上。
我想知道是否有一种方法可以在每次按下master分支时将其更新并保存到我的.env文件中。
已编辑:
我设法从裸仓库中获取git describe --tags
输出,但是我认为这有点混乱,因为我必须重复执行get worktree命令。
git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f
pushd $TARGET > /dev/null
php artisan iapms:version $(git --work-tree=$TARGET --git-dir=$GIT_DIR describe --tags)