Я использую 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
Как это может быть?