I'm moving from Jekyll to Hugo (awesome!).
My deployment hook has been working fine, but needed a minor update. The previous, and current flow is:
- create a new temporary clone of the source (bare) repo on the same machine
- run the generator
- move the files to the web server directory
- violà, new content
I wrote the shell script and when I execute it in the shell, on the sevrver, it works as expected! Yay!
However, when I make a trivial edit (to trigger the hook) and push, the hook runs, but I get errors from git. I've provided the most keenly odd output from set -x
below:
remote: + rm -rf /home/sgharms/tmp/stevengharms.com
remote: + mkdir /home/sgharms/tmp/stevengharms.com
remote: + cd /home/sgharms/tmp/stevengharms.com
remote: + echo Changing into /home/sgharms/tmp/stevengharms.com
remote: Changing into /home/sgharms/tmp/stevengharms.com
remote: + cd /home/sgharms/tmp/stevengharms.com
remote: + git init
remote: Initialized empty Git repository in /home/sgharms/tmp/stevengharms.com/
remote: + git remote add origin file:////home/sgharms/stevengharms.com.git
remote: + git fetch origin
remote: From file:////home/sgharms/stevengharms.com
remote: * [new branch] master -> origin/master
remote: + echo XXXXX
remote: XXXXX
remote: + pwd
remote: /home/sgharms/tmp/stevengharms.com
remote: + git checkout master
remote: fatal: This operation must be run in a work tree
But if I run the post-receive script with sh -x post-receive
...
+ rm -rf /home/sgharms/tmp/stevengharms.com
+ mkdir /home/sgharms/tmp/stevengharms.com
+ cd /home/sgharms/tmp/stevengharms.com
+ echo Changing into /home/sgharms/tmp/stevengharms.com
Changing into /home/sgharms/tmp/stevengharms.com
+ cd /home/sgharms/tmp/stevengharms.com
+ git init
Initialized empty Git repository in /home/sgharms/tmp/stevengharms.com/.git/
+ git remote add origin file:////home/sgharms/stevengharms.com.git
+ git fetch origin
remote: Counting objects: 2304, done.
remote: Compressing objects: 100% (2222/2222), done.
remote: Total 2304 (delta 72), reused 2245 (delta 42)
Receiving objects: 100% (2304/2304), 118.65 MiB | 42.91 MiB/s, done.
Resolving deltas: 100% (72/72), done.
From file:////home/sgharms/stevengharms.com
* [new branch] master -> origin/master
+ echo XXXXX
XXXXX
+ pwd
/home/sgharms/tmp/stevengharms.com
+ git checkout master
Branch master set up to track remote branch master from origin by rebasing.
+ ls .git
branches config description FETCH_HEAD HEAD hooks index info logs objects refs
...
...
+ git submodule update --init
Submodule 'themes/ananke' (https://github.com/budparr/gohugo-theme-ananke.git) registered for path 'themes/ananke'
OK. I have some useful data. But I'm not sure where to go from here.
- Is the problem the git submodule?
whoami
reports executing at the same user
I'm pretty stumped about what to do next to debug this. I've added all sorts of ls -al .git
to make sure that the git stuff is always present, and it is. While I'm stymied, I'm also really curious as to what I'm missing here. Any takers?