我需要获取自上次部署(git diff)以来发生更改的文件列表,gzip这些文件并将这些文件发送到S3。我需要获取所有的css文件并将它们gzip,然后我需要获取所有html文件,gzip它们以及所有的JS文件并将它们gzip。只有在最后一次提交后发生了变化。gzip和git diff以及s3
我可以轻松地从上次部署中获取提交哈希。我也有来自当前部署的提交散列。
下面是我有gzips所有的css文件的代码。我想修改这个代码仅gzip的所有CSS文件,改变了
find . -iname '*.css' -exec gzip -9 {} \; -exec mv {}.gz {} \;
下面是我不得不AWS示例代码同步所有的HTML文件(我有独立的AWS同步命令为CSS,JS, HTML文件,因为我需要不同的内容类型和内容编码和缓存参数)。我想修改这个代码仅AWS同步,改变
aws s3 sync . s3://test --content-type "text/html" --cache-control "max-age=31536000" --exclude "*" --include "*.html"
如何配合这个代码git的差异的HTML文件?只能gzip已更改的文件?并且只会同步更改过的文件(git diff返回的文件列表中的文件)?
另外,我想复制一些文件,git diff返回到一个单独的目录。例如,需要将images /文件夹中的所有文件复制到StaticAssets /目录。如何获取已更改并位于图像文件夹中的文件列表并将它们复制到单独的文件夹?
我想用bash来做到这一点。
所以我知道我可以使用git diff --name-only
命令。我的问题是,我该如何使用该命令在bash做到以下几点:
- Gzip已全部改变 css文件,Gzip已全部更改的js文件,Gzip已全部单独改变的HTML文件(注意,该css文件可能位于另一个目录内的目录中)。我需要检索父目录中的所有css文件。因此,如果父目录有文件夹测试,并且该文件夹有另一个名为test1的文件夹,并带有一个名为test.css的css文件,我需要能够将该css文件gzip即使其2个目录下载到
- AWS Sync全部已更改 js文件,AWS同步所有改变CSS的单独文件
- 有改变以及在图像复制的文件/文件夹复制到另一个目录
你有一个标签或其他一些标记最后部署?你有部署文件的副本吗? –
我有上次部署的git commit hash。 – Jasmine
你是否要求在这里需要'git diff'命令?你在问如何将输出钩到'gzip'和's3 sync'(或其他)?你是否有任何代码作为这方面的尝试? –