From 6845acd596be3795bac1384c9dd84e6162618fdf Mon Sep 17 00:00:00 2001
From: Rafael Guterres Jeffman <rjeffman@redhat.com>
Date: Fri, 9 Jun 2023 11:02:03 -0300
Subject: [PATCH] upstream CI: Build containers in parallel jobs

In the current build container pipeline, all steps are serialized in a
single job, and if one of the jobs fail to build, due to broken
dependent image, or some Azure glitch, like slow connection, the only
way to rebuild the failed container is to rebuild all containers.

By building containers in parallel jobs, if a container fails to build
it is possible to restart only the failed job.
---
 tests/azure/build-containers.yml | 77 +++++++++++++++++++-------------
 1 file changed, 46 insertions(+), 31 deletions(-)

diff --git a/tests/azure/build-containers.yml b/tests/azure/build-containers.yml
index 1e5c7be9..0423dfd9 100644
--- a/tests/azure/build-containers.yml
+++ b/tests/azure/build-containers.yml
@@ -13,34 +13,49 @@ trigger: none
 pool:
   vmImage: 'ubuntu-20.04'
 
-jobs:
-
-- template: templates/build_container.yml
-  parameters:
-    job_name_suffix: Centos7
-    container_name: centos-7
-    build_scenario_name: centos-7-build
-
-- template: templates/build_container.yml
-  parameters:
-    job_name_suffix: C8S
-    container_name: c8s
-    build_scenario_name: c8s-build
-
-- template: templates/build_container.yml
-  parameters:
-    job_name_suffix: C9S
-    container_name: c9s
-    build_scenario_name: c9s-build
-
-- template: templates/build_container.yml
-  parameters:
-    job_name_suffix: FedoraLatest
-    container_name: fedora-latest
-    build_scenario_name: fedora-latest-build
-
-- template: templates/build_container.yml
-  parameters:
-    job_name_suffix: FedoraRawhide
-    container_name: fedora-rawhide
-    build_scenario_name: fedora-rawhide-build
+stages:
+
+- stage: CentOS_7
+  dependsOn: []
+  jobs:
+  - template: templates/build_container.yml
+    parameters:
+      job_name_suffix: Centos7
+      container_name: centos-7
+      build_scenario_name: centos-7-build
+
+- stage: CentOS_8_Stream
+  dependsOn: []
+  jobs:
+  - template: templates/build_container.yml
+    parameters:
+      job_name_suffix: C8S
+      container_name: c8s
+      build_scenario_name: c8s-build
+
+- stage: CentOS_9_Stream
+  dependsOn: []
+  jobs:
+  - template: templates/build_container.yml
+    parameters:
+      job_name_suffix: C9S
+      container_name: c9s
+      build_scenario_name: c9s-build
+
+- stage: Fedora_Latest
+  dependsOn: []
+  jobs:
+  - template: templates/build_container.yml
+    parameters:
+      job_name_suffix: FedoraLatest
+      container_name: fedora-latest
+      build_scenario_name: fedora-latest-build
+
+- stage: Fedora_Rawhide
+  dependsOn: []
+  jobs:
+  - template: templates/build_container.yml
+    parameters:
+      job_name_suffix: FedoraRawhide
+      container_name: fedora-rawhide
+      build_scenario_name: fedora-rawhide-build
-- 
GitLab