On 10/13/20 4:18 PM, Philippe Mathieu-Daudé wrote: > On 10/12/20 4:01 PM, Daniel P. Berrangé wrote: >> On Mon, Oct 12, 2020 at 03:44:00PM +0200, Philippe Mathieu-Daudé wrote: >>> Hi Thomas, Alex, >>> >>> +Daniel >>> >>> On 5/28/20 12:10 PM, Thomas Huth wrote: >>>> We have a dedicated folder for the gitlab-ci - so there is no need >>>> to clutter the top directory with these .yml files. >>>> >>>> Message-Id: <20200525131823.715-5-th...@redhat.com> >>>> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> >>>> Reviewed-by: Alex Bennée <alex.ben...@linaro.org> >>>> Signed-off-by: Thomas Huth <th...@redhat.com> >>>> --- >>>> .gitlab-ci-edk2.yml => .gitlab-ci.d/edk2.yml | 0 >>>> .gitlab-ci-opensbi.yml => .gitlab-ci.d/opensbi.yml | 0 >>>> .gitlab-ci.yml | 4 ++-- >>>> MAINTAINERS | 2 +- >>>> 4 files changed, 3 insertions(+), 3 deletions(-) >>>> rename .gitlab-ci-edk2.yml => .gitlab-ci.d/edk2.yml (100%) >>>> rename .gitlab-ci-opensbi.yml => .gitlab-ci.d/opensbi.yml (100%) >>>> >>>> diff --git a/.gitlab-ci-edk2.yml b/.gitlab-ci.d/edk2.yml >>>> similarity index 100% >>>> rename from .gitlab-ci-edk2.yml >>>> rename to .gitlab-ci.d/edk2.yml >>>> diff --git a/.gitlab-ci-opensbi.yml b/.gitlab-ci.d/opensbi.yml >>>> similarity index 100% >>>> rename from .gitlab-ci-opensbi.yml >>>> rename to .gitlab-ci.d/opensbi.yml >>>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml >>>> index bc6aee6aba..5208d93ff8 100644 >>>> --- a/.gitlab-ci.yml >>>> +++ b/.gitlab-ci.yml >>>> @@ -1,6 +1,6 @@ >>>> include: >>>> - - local: '/.gitlab-ci-edk2.yml' >>>> - - local: '/.gitlab-ci-opensbi.yml' >>>> + - local: '/.gitlab-ci.d/edk2.yml' >>>> + - local: '/.gitlab-ci.d/opensbi.yml' >>> >>> It seems these jobs are now always run, the "rules:changes" >>> to restrict them is ignored. >>> >>> I searched a bit and found a plausible explanation here: >>> https://docs.gitlab.com/ee/ci/yaml/#onlychangesexceptchanges >>> >>> "Caution: In pipelines with sources other than the three above >>> changes can’t >>> determine if a given file is new or old and always returns true. This >>> includes pipelines triggered by pushing new tags. Configuring jobs to >>> use >>> only: changes with other only: refs keywords is possible, but not >>> recommended." >>> >>> I don't understand what they mean by "three", is a directory considered >>> a three? Then that would explain the change. >> >> The edk2.yml file as a "when: always" clause attached to every rule, >> so surely this negates the point of filtering by making it always >> run ?
git show 71920809ceab +docker-edk2: + stage: build + rules: # Only run this job when the Dockerfile is modified + - changes: + - .gitlab-ci-edk2.yml + - .gitlab-ci.d/edk2/Dockerfile + when: always Per https://docs.gitlab.com/ee/ci/yaml/#rules-clauses Rules are evaluated in order until a match is found. The job is not added to the pipeline: If no rules match, and there is no standalone when: on_success, when: delayed or when: always. For docker-edk2 the rule is "If .gitlab-ci-edk2.yml or .gitlab-ci.d/edk2/Dockerfile changed, then always add; else do not add". > I understand it runs regardless a job in any previous stage failed. > > From https://docs.gitlab.com/ee/ci/yaml/#when > > * always - execute job regardless of the status of jobs from prior stages. > * on_success - execute job only when all jobs from prior stages succeed > (or are considered succeeding because they have allow_failure: true). > This is the default. > > I think I used that because at the time I sent that patch > some docker image builds were failing. But we don't really > need it, I'll remove. Also because this is a long job burning free tier credits pointlessly. (I'll also do it for the OpenSBI job). > > Anyhow this used to work with "when: always", see: > https://gitlab.com/qemu-project/qemu/-/pipelines/168158357 > >> >> Regards, >> Daniel >> >