GitHub Actions删除scss目录后推送目标分支仍存在该文件夹问题
问题原因
删除操作不生效的核心原因是操作路径和实际推送路径不一致:
- 你执行
rm -rf scss时,默认工作目录是actions/checkout拉取代码的仓库根目录,两次ls输出看到scss被删除,仅代表根目录下的scss文件夹被移除了。 - 推送步骤里给
actions-js/push@master配置了directory: github/workspace参数,说明最终推送到compressed-master分支的所有文件,都来自github/workspace子目录——这个目录是amireshoon/minifyAction压缩完静态资源后,输出处理后文件的专属目录。你从未删除过这个子目录内的scss文件夹,推送时自然会把该目录下完整的内容(包括残留的scss)全部上传,最终目标分支就会出现scss文件夹残留的问题。
修复方案
调整删除步骤的操作路径,直接对要推送的github/workspace目录执行删除即可,参考配置如下:
- name: Removing unnecessary files run: | # 先查看推送目录内的文件确认结构 ls -la github/workspace # 删除推送目录内的scss文件夹 rm -rf github/workspace/scss # 再次确认删除结果 ls -la github/workspace
如果觉得写全路径容易出错,也可以先切换到推送目录再执行操作:
- name: Removing unnecessary files run: | cd github/workspace ls -la rm -rf scss ls -la
修改后重新运行工作流,推送后的分支就不会再残留scss目录。
内容的提问来源于stack exchange,提问作者Josip Domazet
相关产品推荐
相关产品推荐

