0

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

  1. 部署新包
  2. 解析 ( 等) 的main-\*.js哈希polyfills-\*.js
  3. 删除所有匹配的文件,除了具有新哈希的文件

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

任何有关如何实现上述目标的提示都将受到高度赞赏。谢谢!

4

1 回答 1

1

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

问题是这个 github 操作没有在 alpine docker 文件中启用它,因此您需要编写自己的操作来执行此操作

为您解决这个问题的最简单方法是分叉存储库并创建一个 PR 以将其支持到 StephanThierry/ftp-delete-action 存储库中,同时在您的管道中使用分叉存储库

一旦你 fork 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

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

于 2020-08-31T20:28:26.740 回答