对于每次提交,在单独的repo或分支中创建等效的编译提交

Zaz*_*Zaz 14 git githooks post-commit-hook

我正在使用Jekyll构建网站,它编译ERB,SASS和c.到纯HTML和CSS.

在大多数提交之后,我想编译站点并将编译后的版本提交到单独的存储库或分支中,以便可以将其推送到静态服务器.

最好的方法是什么?

我已经有了解决方案,但我希望有人可能会更优雅.

bln*_*dev 5

在大多数提交之后,我想编译站点并将编译后的版本提交到单独的存储库或分支中,以便可以将其推送到静态服务器.

正确的关键字是"持续集成".

您可以使用像Jenkins这样的CI软件在每次提交后,在创建或修改拉取请求之后构建系统,或者每晚.

您在CI软件中配置的构建脚本负责将构建工件(在这种情况下是您的编译版本)部署到目标系统(如s3存储桶).您还可以将您的人工制品程序化提交到不同的git仓库.

看看这里:https://jenkins.io/doc/


Zaz*_*Zaz 1

在 中初始化一个 Git 存储库_site/,然后添加一个 Git 提交后挂钩.git/hooks/post-commit

echo -n "Add commit to compiled version? (y/N) "
read answer < /dev/tty
if [ "$answer" != "y" ]; then exit; fi

message=$( git log -1 --pretty=%B )

git stash --all
bundle exec jekyll build

cd _site
    git add --all
    git commit -m "$message"
cd ..

git stash pop
Run Code Online (Sandbox Code Playgroud)

现在,每次提交时,系统都会询问您是否要向编译版本添加提交。