首页 > 解决方案 > 强制重新运行失败的 Gitlab 测试或禁用测试缓存

问题描述

我正在使用 Gitlab 并使用以下测试描述:

   ldap:
   stage: test
   script:
     - cd ZEDAT-HPC-LDAP
     - ls -la /usr/share/perl5/Test
     - prove -l t
   tags:
     - perl

该测试最初失败是因为测试使用的标准 Perl 库没有安装在 Gitlab 服务器上。在我安装了缺少的库之后,测试仍然失败,并且ls测试中显示了文件系统的旧状态。显然测试没有重新运行,并且显示了测试结果的缓存版本。

问题似乎是安装缺少的库不会改变存储库中的任何内容,因此 Gitlab 似乎认为不重新运行测试是可以的。date在测试通过后,我修改了测试ls

那么如何强制运行测试,或者如何禁用缓存机制?

[更新]

测试的输出是

Skipping Git submodules setup
$ date
Fri Nov 22 11:51:33 CET 2019
$ cd ZEDAT-HPC-LDAP
$ ls -la /usr/share/perl5/Test
total 24
drwxr-xr-x  4 root root 4096 Apr 23  2018 .
drwxr-xr-x 49 root root 4096 Jun 21 06:09 ..
drwxr-xr-x  3 root root 4096 Apr 23  2018 Perl
drwxr-xr-x  2 root root 4096 Apr 23  2018 Pod
-rw-r--r--  1 root root 7533 Jul  4  2015 Pod.pm

gitlab-runner而以我得到的用户身份登录服务器

gitlab-runner@sc-git:~$ date
Fri Nov 22 12:55:53 CET 2019
gitlab-runner@sc-git:~$ ls -la /usr/share/perl5/Test/
total 68
drwxr-xr-x  6 root root  4096 Nov 21 09:53 .
drwxr-xr-x 54 root root  4096 Nov 21 09:53 ..
-rw-r--r--  1 root root 11301 Dec 10  2014 Fatal.pm
drwxr-xr-x  2 root root  4096 Nov 21 09:53 MockObject
-rw-r--r--  1 root root 23464 Dec  3  2016 MockObject.pm
drwxr-xr-x  3 root root  4096 May 31  2018 Net
drwxr-xr-x  3 root root  4096 Apr 23  2018 Perl
drwxr-xr-x  2 root root  4096 Apr 23  2018 Pod
-rw-r--r--  1 root root  7533 Jul  4  2015 Pod.pm

这个怎么可能?

标签: gitlabgitlab-ci

解决方案


您可以使用 UI (CI/CD > Pipelines) 重新运行管道:

在此处输入图像描述

并选择要运行的分支。或者使用API

单击“运行管道”旁边的“清除运行器缓存”按钮可以手动清除缓存:

在此处输入图像描述


推荐阅读