From 2c9084e2245834094e14e9105e64b6062d70a0f1 Mon Sep 17 00:00:00 2001 From: Chris Evich Date: Thu, 25 Jun 2020 17:38:33 -0400 Subject: Cirrus: Implement podman automation 2.0 Reimplement CI-automation to remove accumulated technical-debt and optimize workflow. The task-dependency graph designed goal was to shorten it's depth and increase width (i.e. more parallelism). A reduction in redundant building (and 3rd party module download) was also realized by caching `$GOPATH` and `$GOCACHE` early on. This cache is then reused in favor of a fresh clone of the repository (when possible). Note: The system tests typically execute MUCH faster than the integration tests. However, contrary to a fail-fast/fail-early principal, they are executed last. This was implemented due to debug-ability related concerns/preferences of the primary (golang-centric) project developers. Signed-off-by: Chris Evich --- contrib/cirrus/cirrus_yaml_test.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'contrib/cirrus/cirrus_yaml_test.py') diff --git a/contrib/cirrus/cirrus_yaml_test.py b/contrib/cirrus/cirrus_yaml_test.py index c2ff8e69e..39de0c7b7 100755 --- a/contrib/cirrus/cirrus_yaml_test.py +++ b/contrib/cirrus/cirrus_yaml_test.py @@ -26,6 +26,7 @@ class TestCaseBase(unittest.TestCase): class TestDependsOn(TestCaseBase): ALL_TASK_NAMES = None + SUCCESS_DEPS_EXCLUDE = set(['success', 'release', 'release_test']) def setUp(self): super().setUp() @@ -33,23 +34,29 @@ class TestDependsOn(TestCaseBase): for key, _ in self.CIRRUS_YAML.items() if key.endswith('_task')]) - def test_00_dicts(self): + def test_dicts(self): """Expected dictionaries are present and non-empty""" self.assertIn('success_task', self.CIRRUS_YAML) self.assertIn('success_task'.replace('_task', ''), self.ALL_TASK_NAMES) self.assertIn('depends_on', self.CIRRUS_YAML['success_task']) self.assertGreater(len(self.CIRRUS_YAML['success_task']['depends_on']), 0) - def test_01_depends(self): + def test_task(self): + """There is no task named 'task'""" + self.assertNotIn('task', self.ALL_TASK_NAMES) + + def test_depends(self): """Success task depends on all other tasks""" success_deps = set(self.CIRRUS_YAML['success_task']['depends_on']) - for task_name in self.ALL_TASK_NAMES - set(['success']): + for task_name in self.ALL_TASK_NAMES - self.SUCCESS_DEPS_EXCLUDE: with self.subTest(task_name=task_name): msg=('Please add "{0}" to the "depends_on" list in "success_task"' "".format(task_name)) self.assertIn(task_name, success_deps, msg=msg) - + def not_task(self): + """Ensure no task is named 'task'""" + self.assertNotIn('task', self.ALL_TASK_NAMES) if __name__ == "__main__": unittest.main() -- cgit v1.2.3-54-g00ecf