>  Now stage 2 has a failed job, will no more jobs in stage 3 be started? 
Honestly, I’m not sure. According to these stale MR's 
https://gitlab.com/gitlab-org/gitlab/-/issues/30476 
<https://gitlab.com/gitlab-org/gitlab/-/issues/30476> , 
https://gitlab.com/gitlab-org/gitlab/-/issues/23605 
<https://gitlab.com/gitlab-org/gitlab/-/issues/23605> this question has been 
raised before. As per 
https://gitlab.com/gitlab-org/gitlab/-/issues/30476#note_215843706 
<https://gitlab.com/gitlab-org/gitlab/-/issues/30476#note_215843706> It seems 
like the only way to cull the whole pipeline on failure is to add a 
“after_script” to every job which conditionally kills the pipeline if the job 
fails.

Best regards,

Jacob Faibussowitsch
(Jacob Fai - booss - oh - vitch)
Cell: (312) 694-3391

> On Jul 6, 2020, at 2:47 PM, Barry Smith <bsm...@petsc.dev> wrote:
> 
> 
>   This sounds like a good idea but is confusing to me.
>  
>   We use stages so if anything fails in stage 2 we don't waste compute time 
> on anything in stage 3 or higher. 
> 
>   If one uses this needs how does that affect this? Will it run everything to 
> the end despite failures in earlier stages or will it stop any more higher 
> stage jobs from starting if there is a failure on a stage? So for example 
> stage 2 is running and because of needs job x of stage 3 starts. Now stage 2 
> has a failed job, will no more jobs in stage 3 be started? 
> 
> Ideally if anything fails in stage 2 it kills the jobs started in stage 3 but 
> I guess it doesn't do that.
> 
>   Barry
> 
> 
>> On Jul 6, 2020, at 1:15 PM, Jacob Faibussowitsch <jacob....@gmail.com 
>> <mailto:jacob....@gmail.com>> wrote:
>> 
>>> If we did this in the pipeline they could be significantly faster
>> We might also consider not locking _all_ stage n+1 jobs behind completion of 
>> stage n. Gitlab supports this via the “needs” command 
>> https://gitlab.com/help/ci/yaml/README.md#needs 
>> <https://gitlab.com/help/ci/yaml/README.md#needs> which allows you to run 
>> jobs immediately after their prerequisite jobs have finished regardless of 
>> stage. For example, I find that I am quite often waiting on stage 2 freebsd 
>> jobs to start in order to advance to stage 3, even after every other stage 2 
>> job has run its course. 
>> 
>> Best regards,
>> 
>> Jacob Faibussowitsch
>> (Jacob Fai - booss - oh - vitch)
>> Cell: (312) 694-3391
>> 
>>> On Jul 6, 2020, at 12:47 PM, Barry Smith <bsm...@petsc.dev 
>>> <mailto:bsm...@petsc.dev>> wrote:
>>> 
>>> 
>>>   We should be more clever than checking just examples but also check 
>>> source code. If, for example, only KSP is changed then tests could skip the 
>>> sys/vec/mat levels saving time.
>>> 
>>>   If we did this in the pipeline they could be significantly faster; all 
>>> the time saved not testing sys to mat for Matt's changes :-)
>>> 
>>>   Is there a fallacy here?
>>> 
>>>   Barry
>>> 
>>>   Need to check changes in include files as well, of course.
>>> 
>>> 
>>>> On Jul 6, 2020, at 12:13 PM, Jacob Faibussowitsch <jacob....@gmail.com 
>>>> <mailto:jacob....@gmail.com>> wrote:
>>>> 
>>>> While were on this topic, I always parse git diff —name-only $(git 
>>>> merge-base —fork-point master) when testing. This gives you all the files 
>>>> that are different between your branch and master. You can switch it out 
>>>> for maint if needs be.
>>>> 
>>>> Best regards,
>>>> 
>>>> Jacob Faibussowitsch
>>>> (Jacob Fai - booss - oh - vitch)
>>>> Cell: (312) 694-3391
>>>> 
>>>>> On Jul 6, 2020, at 12:00 PM, Barry Smith <bsm...@petsc.dev 
>>>>> <mailto:bsm...@petsc.dev>> wrote:
>>>>> 
>>>>> 
>>>>> I couldn't see how Jed can avoid doing the filename hacking since 
>>>>> alltesttargets are the hacked filenames but probably I am missing 
>>>>> something. 
>>>>> 
>>>>>  Anyways this patch works for me based on Jed's email.
>>>>> 
>>>>>  Barry
>>>>> <since.patch>
>>>>> 
>>>>>> On Jul 6, 2020, at 9:40 AM, Jed Brown <j...@jedbrown.org 
>>>>>> <mailto:j...@jedbrown.org>> wrote:
>>>>>> 
>>>>>> It'd be possible to hack the file names, but I'd rather not duplicate 
>>>>>> that logic.
>>>>>> 
>>>>>> My inclination would be to filter similar to argsearch, which requires
>>>>>> adding the source files to testfiles.  Then you could use
>>>>>> 
>>>>>> make test since=@
>>>>>> 
>>>>>> ifdef since
>>>>>> gitchanged := $(shell git diff --name-only $(since) src/)
>>>>>> endif
>>>>>> 
>>>>>> Pierre Jolivet <pierre.joli...@enseeiht.fr 
>>>>>> <mailto:pierre.joli...@enseeiht.fr>> writes:
>>>>>> 
>>>>>>> Hello,
>>>>>>> To git/regexp enthusiasts and/or test harness people: is there some 
>>>>>>> script/command lying around to convert a list of modified examples 
>>>>>>> (according to git) into a list understandable by the test system?
>>>>>>> Thanks for your help,
>>>>>>> Pierre
>>>>>>> 
>>>>>>> PS: here is such a list
>>>>>>> $ git status -uno
>>>>>>> On branch master
>>>>>>> Your branch is up to date with 'origin/master'.
>>>>>>> 
>>>>>>> Changes not staged for commit:
>>>>>>> (use "git add <file>..." to update what will be committed)
>>>>>>> (use "git checkout -- <file>..." to discard changes in working 
>>>>>>> directory)
>>>>>>> 
>>>>>>>         modified:   config/BuildSystem/config/types.py
>>>>>>>         modified:   include/petscsys.h
>>>>>>>         modified:   src/dm/label/tutorials/ex1f90.F90
>>>>>>>         modified:   src/ksp/ksp/tests/ex16f.F90
>>>>>>>         modified:   src/ksp/ksp/tutorials/ex5f.F90
>>>>>>>         modified:   src/ksp/ksp/tutorials/ex75f.F90
>>>>>>>         modified:   src/ksp/ksp/tutorials/ex76f.F90
>>>>>>>         modified:   src/ksp/ksp/tutorials/ex77f.F90
>>>>>>>         modified:   src/ksp/ksp/tutorials/ex7f.F90
>>>>>>>         modified:   src/mat/tests/ex196f90.F90
>>>>>>>         modified:   src/sys/tests/ex13f.F90
>>>>>>>         modified:   src/sys/tests/ex47f.F90
>>>>>>>         modified:   src/sys/tutorials/ex17f.F90
>>>>>>>         modified:   src/sys/tutorials/ex2f.F90
>>>>>>>         modified:   src/vec/vec/tutorials/ex11f90.F90
>>>>>>>         modified:   src/vec/vec/tutorials/ex18f.F90
>>>>>>>         modified:   src/vec/vec/tutorials/ex1f.F90
>>>>>>> 
>>>>>>> no changes added to commit (use "git add" and/or "git commit -a")
>>>>> 
>>>> 
>>> 
>> 
> 

Reply via email to