qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH-for-6.1] gitlab-ci: Extract OpenSBI job rules to reusable sec


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH-for-6.1] gitlab-ci: Extract OpenSBI job rules to reusable section
Date: Thu, 22 Jul 2021 19:53:35 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

On 7/22/21 5:49 PM, Daniel P. Berrangé wrote:
> On Tue, Jul 20, 2021 at 06:48:29PM +0200, Philippe Mathieu-Daudé wrote:
>> All jobs depending on 'docker-opensbi' job must use at most all
>> the rules that triggers it. The simplest way to ensure that
>> is to always use the same rules. Extract all the rules to a
>> reusable section, and include this section (with the 'extends'
>> keyword) in both 'docker-opensbi' and 'build-opensbi' jobs.
>>
>> The problem was introduced in commit c6fc0fc1a71 ("gitlab-ci.yml:
>> Add jobs to build OpenSBI firmware binaries"), but was revealed in
>> commit 91e9c47e50a ("docker: OpenSBI build job depends on OpenSBI
>> container").
>>
>> This fix is similar to the one used with the EDK2 firmware job in
>> commit ac0595cf6b3 ("gitlab-ci: Extract EDK2 job rules to reusable
>> section").
>>
>> Reported-by: Daniel P. Berrangé <berrange@redhat.com>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>> ---
>> Latent bug on CI, safe for 6.1.
>> ---
>>  .gitlab-ci.d/opensbi.yml | 28 +++++++++++++++++-----------
>>  1 file changed, 17 insertions(+), 11 deletions(-)
>>
>> diff --git a/.gitlab-ci.d/opensbi.yml b/.gitlab-ci.d/opensbi.yml
>> index f66cd1d9089..d8a0456679e 100644
>> --- a/.gitlab-ci.d/opensbi.yml
>> +++ b/.gitlab-ci.d/opensbi.yml
>> @@ -1,10 +1,23 @@
>> -docker-opensbi:
>> - stage: containers
>> - rules: # Only run this job when the Dockerfile is modified
>> +# All jobs needing docker-opensbi must use the same rules it uses.
>> +.opensbi_job_rules:
>> + rules: # Only run this job when ...
>>   - changes:
>> +   # this file is modified
>>     - .gitlab-ci.d/opensbi.yml
>> +   # or the Dockerfile is modified
>>     - .gitlab-ci.d/opensbi/Dockerfile
>>     when: always
>> + - changes: # or roms/opensbi/ is modified (submodule updated)
>> +   - roms/opensbi/*
>> +   when: always
>> + - if: '$CI_COMMIT_REF_NAME =~ /^opensbi/' # or the branch/tag starts with 
>> 'opensbi'
>> +   when: always
>> + - if: '$CI_COMMIT_MESSAGE =~ /opensbi/i' # or last commit description 
>> contains 'OpenSBI'
>> +   when: always
> 
> In debugging why the acceptance jobs rnu despite their prerequisite
> jobs failing, I've realized we've been making a mistake in most of
> 'rules' sections.
> 
> 'when: always'  will make the job run regardless of status of any
> dependant jobs. IOW, if you have a 'needs: [....]', it is almost
> always wrong to use 'when: always'. Instead  we need 'when: on_success'

Indeed, when the first job fail, the second is marked "skipped" with
no "retry" option.

> So this patch needs to make that change, and likewise the edk2 patch
> with the same logic.
> 
> Alex has queued this one, but I don't see it in a PULL yet, so I
> guess we can just do a v2 of this.

Sure, thanks for updating me.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]