diff --git a/releasenotes/notes/fail-jobs-when-requirement-not-met-5e37516c241020f3.yaml b/releasenotes/notes/fail-jobs-when-requirement-not-met-5e37516c241020f3.yaml new file mode 100644 index 0000000000..41296d6f79 --- /dev/null +++ b/releasenotes/notes/fail-jobs-when-requirement-not-met-5e37516c241020f3.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - | + Jobs which use the :attr:`job.requires` attribute and fail to have + their requirements met are now recorded as "FAILED" rather than + "SKIPPED". This can happen if an earlier job which is expected to + produce artifacts fails to do so due to an error. diff --git a/tests/unit/test_v3.py b/tests/unit/test_v3.py index 42dafe2d76..17f73682d7 100644 --- a/tests/unit/test_v3.py +++ b/tests/unit/test_v3.py @@ -5596,7 +5596,7 @@ class TestProvidesRequires(ZuulDBTestCase): dict(name='hold', result='SUCCESS', changes='1,1'), dict(name='hold', result='SUCCESS', changes='1,1 2,1'), ], ordered=False) - self.assertIn('image-user : SKIPPED', B.messages[0]) + self.assertIn('image-user : FAILED', B.messages[0]) self.assertIn('not met by build', B.messages[0]) diff --git a/zuul/model.py b/zuul/model.py index e26421b346..65ea780ceb 100644 --- a/zuul/model.py +++ b/zuul/model.py @@ -2365,7 +2365,7 @@ class QueueItem(object): except RequirementsError as e: self.warning(str(e)) fakebuild = Build(job, None) - fakebuild.result = 'SKIPPED' + fakebuild.result = 'FAILED' self.addBuild(fakebuild) ret = True return ret