0

我正在使用 Gitlab 来部署我的代码库。每次,我部署一个分支(实际上一天多次),我的 CI 做以下事情(非常简化):

#1 使用我的分支名称创建一个特定的部署文件夹并在其中克隆整个项目

branch-1
/data/www/branch-1/....
branch-2
/data/www/branch-2/....

#2 运行 PHPStan(没有覆盖配置)

- cd /data/www/branch-1
- bin/phpstan analyze --level 1 --no-progress

因此,默认情况下,我的缓存文件夹设置为/tmp/phpstan. 这个文件夹越来越大。现在,我有一个定期删除文件夹的 cron,但这似乎是一种解决方法......

我可以在 CI/CD 中使用更好的方法来保持合理的/tmp/phpstan文件夹大小并且不破坏缓存的性能吗?

4

1 回答 1

1

听起来您正在使用shellexecutor ,因此一种解决方案是切换到使用dockerexecutor。执行器将在 Docker 容器中运行您的docker所有管道作业,当它完成时,容器(以及其中的所有数据)将被销毁,因此每次作业运行时都会有新的石板。

第二个选项是/tmp/phpstan在你运行后清除bin/phpstan(除非它导致其他问题,你必须调查一下):

- cd /data/www/branch-1
- bin/phpstan analyze --level 1 --no-progress
- rm -r /tmp/phpstan/*

第二种解决方案更简单,但是在 Docker 中运行作业还有很多其他好处,最重要的是,您不需要在 Runner 进程所在的主机上安装包,而是在使用的 Docker 映像中安装包。

于 2021-08-18T16:17:42.840 回答