lftp删除的负模式匹配



在GitHub操作中,我想在部署新捆绑包后从FTP服务器中删除旧捆绑包文件。为了实现这一点,我想到

  1. 部署新捆绑包
  2. 解析(main-*.jspolyfills-*.js等(的散列
  3. 删除除具有新哈希的文件外的所有匹配文件

对于(3(,我打算将lftp与mrm main-*.!(328276e83108ad3616fd).js一起使用。然而,这似乎与lftp的预期模式不匹配。Shopts exglob在父shell中被激活,但我担心这对lftp没有影响。

任何关于如何实现上述目标的提示都将不胜感激。谢谢

您需要启用扩展的globbing才能工作https://www.linuxjournal.com/content/bash-extended-globbing

问题是,这个github操作没有在alpine docker文件中启用它,所以你需要编写自己的

对你来说,最简单的方法是分叉回购,并创建一个PR来支持它进入StephanThierry/ftp删除操作回购,同时在你的管道中使用分叉回购

分叉repo后,编辑此文件https://github.com/StephanThierry/ftp-delete-action/blob/master/Dockerfile

RUN apk --no-cache add lftp bash # adds bash to support shopt extglob
RUN: shopt -s extglob # enables extended globbing

然后在将分支合并到分支中后创建一个新版本的分支,并将该新分支用作工作流中的操作

最新更新