我正在使用Deployer并享受它。
我还没有想出如何去做的一件事是写一个我的部署的日志文件。
我正在尝试将提交哈希和日期附加到 revisions.txt:
task('log_the_deployment', function () {//https://stackoverflow.com/a/4546755/470749
$selectedStage = Deployer::get()->getInput()->getArgument('stage'); //https://github.com/deployphp/deployer/blob/6180366acff3ca5b2ec511a84e671321c02e7af1/recipe/config/hosts.php#L15
runLocally('set -e'); //https://deployer.org/docs/api.html#runlocally
runLocally('commit_short_hash=$(git rev-parse --short HEAD)');
runLocally('commit=$(git log -1 --pretty="%H%n%ci")');
runLocally('commit_hash=$(echo "$commit" | head -1)');
runLocally('commit_date=$(echo "$commit" | head -2 | tail -1)');
runLocally('branch_name=$(git symbolic-ref -q HEAD)');
runLocally('branch_name=${branch_name##refs/heads/}');
runLocally('branch_name=${branch_name:-HEAD}');
runLocally('echo -e "$commit_date ' . $selectedStage . ' $commit_short_hash branch=\'$branch\' $commit_hash" >> releases.txt');//TODO: prepend instead https://stackoverflow.com/questions/10587615/unix-command-to-prepend-text-to-a-file
});
结果应该类似于:2020-01-09 22:07:00 -0500 staging 146f012d branch='master' 146f012d28d866105aa12605cec6f374d45aec75
不幸的是,我的任务目前仅将其写入文件:-e staging branch=''
我对 Deployer、runLocally、git 或 Unix 有什么误解?
如果有更好的方法来实现我的目标,我很乐意走一条完全不同的道路。