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-thuth@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Thomas Huth <thuth@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'
.update_apt_template: &before_script_apt
before_script:
diff --git a/MAINTAINERS b/MAINTAINERS
index 71a0438843..0944d9c731 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2542,7 +2542,7 @@ F: roms/edk2
F: roms/edk2-*
F: tests/data/uefi-boot-images/
F: tests/uefi-test-tools/
-F: .gitlab-ci-edk2.yml
+F: .gitlab-ci.d/edk2.yml
F: .gitlab-ci.d/edk2/
Usermode Emulation
--
2.18.1
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-thuth@redhat.com> > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > Reviewed-by: Alex Bennée <alex.bennee@linaro.org> > Signed-off-by: Thomas Huth <thuth@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. Regards, Phil.
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-thuth@redhat.com> > > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > > Reviewed-by: Alex Bennée <alex.bennee@linaro.org> > > Signed-off-by: Thomas Huth <thuth@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 ? Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
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-thuth@redhat.com> >>> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> >>> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> >>> Signed-off-by: Thomas Huth <thuth@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 ? 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. Anyhow this used to work with "when: always", see: https://gitlab.com/qemu-project/qemu/-/pipelines/168158357 > > Regards, > Daniel >
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-thuth@redhat.com>
>>>> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>>> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
>>>> Signed-off-by: Thomas Huth <thuth@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
>>
>
© 2016 - 2025 Red Hat, Inc.