agora inbox for [email protected]  
help / color / mirror / Atom feed
[PATCH v20 4/8] Row pattern recognition patch (planner).
124+ messages / 2 participants
[nested] [flat]

* [PATCH v20 4/8] Row pattern recognition patch (planner).
@ 2024-05-24 02:26  Tatsuo Ishii <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Tatsuo Ishii @ 2024-05-24 02:26 UTC (permalink / raw)

---
 src/backend/optimizer/plan/createplan.c   | 24 +++++++++++++++-----
 src/backend/optimizer/plan/planner.c      |  3 +++
 src/backend/optimizer/plan/setrefs.c      | 27 ++++++++++++++++++++++-
 src/backend/optimizer/prep/prepjointree.c |  9 ++++++++
 src/include/nodes/plannodes.h             | 19 ++++++++++++++++
 5 files changed, 76 insertions(+), 6 deletions(-)

diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c
index 6b64c4a362..ef2101e216 100644
--- a/src/backend/optimizer/plan/createplan.c
+++ b/src/backend/optimizer/plan/createplan.c
@@ -287,9 +287,11 @@ static WindowAgg *make_windowagg(List *tlist, Index winref,
 								 int ordNumCols, AttrNumber *ordColIdx, Oid *ordOperators, Oid *ordCollations,
 								 int frameOptions, Node *startOffset, Node *endOffset,
 								 Oid startInRangeFunc, Oid endInRangeFunc,
-								 Oid inRangeColl, bool inRangeAsc, bool inRangeNullsFirst,
-								 List *runCondition, List *qual, bool topWindow,
-								 Plan *lefttree);
+								 Oid inRangeColl, bool inRangeAsc, bool inRangeNullsFirst, List *runCondition,
+								 RPSkipTo rpSkipTo, List *patternVariable, List *patternRegexp,
+								 List *defineClause,
+								 List *defineInitial,
+								 List *qual, bool topWindow, Plan *lefttree);
 static Group *make_group(List *tlist, List *qual, int numGroupCols,
 						 AttrNumber *grpColIdx, Oid *grpOperators, Oid *grpCollations,
 						 Plan *lefttree);
@@ -2700,6 +2702,11 @@ create_windowagg_plan(PlannerInfo *root, WindowAggPath *best_path)
 						  wc->inRangeAsc,
 						  wc->inRangeNullsFirst,
 						  best_path->runCondition,
+						  wc->rpSkipTo,
+						  wc->patternVariable,
+						  wc->patternRegexp,
+						  wc->defineClause,
+						  wc->defineInitial,
 						  best_path->qual,
 						  best_path->topwindow,
 						  subplan);
@@ -6629,8 +6636,10 @@ make_windowagg(List *tlist, Index winref,
 			   int ordNumCols, AttrNumber *ordColIdx, Oid *ordOperators, Oid *ordCollations,
 			   int frameOptions, Node *startOffset, Node *endOffset,
 			   Oid startInRangeFunc, Oid endInRangeFunc,
-			   Oid inRangeColl, bool inRangeAsc, bool inRangeNullsFirst,
-			   List *runCondition, List *qual, bool topWindow, Plan *lefttree)
+			   Oid inRangeColl, bool inRangeAsc, bool inRangeNullsFirst, List *runCondition,
+			   RPSkipTo rpSkipTo, List *patternVariable, List *patternRegexp, List *defineClause,
+			   List *defineInitial,
+			   List *qual, bool topWindow, Plan *lefttree)
 {
 	WindowAgg  *node = makeNode(WindowAgg);
 	Plan	   *plan = &node->plan;
@@ -6656,6 +6665,11 @@ make_windowagg(List *tlist, Index winref,
 	node->inRangeAsc = inRangeAsc;
 	node->inRangeNullsFirst = inRangeNullsFirst;
 	node->topWindow = topWindow;
+	node->rpSkipTo = rpSkipTo,
+		node->patternVariable = patternVariable;
+	node->patternRegexp = patternRegexp;
+	node->defineClause = defineClause;
+	node->defineInitial = defineInitial;
 
 	plan->targetlist = tlist;
 	plan->lefttree = lefttree;
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index 032818423f..a5d17e3fda 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -870,6 +870,9 @@ subquery_planner(PlannerGlobal *glob, Query *parse, PlannerInfo *parent_root,
 												EXPRKIND_LIMIT);
 		wc->endOffset = preprocess_expression(root, wc->endOffset,
 											  EXPRKIND_LIMIT);
+		wc->defineClause = (List *) preprocess_expression(root,
+														  (Node *) wc->defineClause,
+														  EXPRKIND_TARGET);
 	}
 
 	parse->limitOffset = preprocess_expression(root, parse->limitOffset,
diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c
index 37abcb4701..cd0e7c57d8 100644
--- a/src/backend/optimizer/plan/setrefs.c
+++ b/src/backend/optimizer/plan/setrefs.c
@@ -210,7 +210,6 @@ static List *set_windowagg_runcondition_references(PlannerInfo *root,
 												   List *runcondition,
 												   Plan *plan);
 
-
 /*****************************************************************************
  *
  *		SUBPLAN REFERENCES
@@ -2471,6 +2470,32 @@ set_upper_references(PlannerInfo *root, Plan *plan, int rtoffset)
 					   NRM_EQUAL,
 					   NUM_EXEC_QUAL(plan));
 
+	/*
+	 * Modifies an expression tree in each DEFINE clause so that all Var
+	 * nodes's varno refers to OUTER_VAR.
+	 */
+	if (IsA(plan, WindowAgg))
+	{
+		WindowAgg  *wplan = (WindowAgg *) plan;
+
+		if (wplan->defineClause != NIL)
+		{
+			foreach(l, wplan->defineClause)
+			{
+				TargetEntry *tle = (TargetEntry *) lfirst(l);
+
+				tle->expr = (Expr *)
+					fix_upper_expr(root,
+								   (Node *) tle->expr,
+								   subplan_itlist,
+								   OUTER_VAR,
+								   rtoffset,
+								   NRM_EQUAL,
+								   NUM_EXEC_QUAL(plan));
+			}
+		}
+	}
+
 	pfree(subplan_itlist);
 }
 
diff --git a/src/backend/optimizer/prep/prepjointree.c b/src/backend/optimizer/prep/prepjointree.c
index 5482ab85a7..f54db3f044 100644
--- a/src/backend/optimizer/prep/prepjointree.c
+++ b/src/backend/optimizer/prep/prepjointree.c
@@ -2175,6 +2175,15 @@ perform_pullup_replace_vars(PlannerInfo *root,
 	parse->returningList = (List *)
 		pullup_replace_vars((Node *) parse->returningList, rvcontext);
 
+	foreach(lc, parse->windowClause)
+	{
+		WindowClause *wc = lfirst_node(WindowClause, lc);
+
+		if (wc->defineClause != NIL)
+			wc->defineClause = (List *)
+				pullup_replace_vars((Node *) wc->defineClause, rvcontext);
+	}
+
 	if (parse->onConflict)
 	{
 		parse->onConflict->onConflictSet = (List *)
diff --git a/src/include/nodes/plannodes.h b/src/include/nodes/plannodes.h
index 1aeeaec95e..5b8d8a6dac 100644
--- a/src/include/nodes/plannodes.h
+++ b/src/include/nodes/plannodes.h
@@ -20,6 +20,7 @@
 #include "lib/stringinfo.h"
 #include "nodes/bitmapset.h"
 #include "nodes/lockoptions.h"
+#include "nodes/parsenodes.h"
 #include "nodes/primnodes.h"
 
 
@@ -1098,6 +1099,24 @@ typedef struct WindowAgg
 	/* nulls sort first for in_range tests? */
 	bool		inRangeNullsFirst;
 
+	/* Row Pattern Recognition AFTER MACH SKIP clause */
+	RPSkipTo	rpSkipTo;		/* Row Pattern Skip To type */
+
+	/* Row Pattern PATTERN variable name (list of String) */
+	List	   *patternVariable;
+
+	/*
+	 * Row Pattern RPATTERN regular expression quantifier ('+' or ''. list of
+	 * String)
+	 */
+	List	   *patternRegexp;
+
+	/* Row Pattern DEFINE clause (list of TargetEntry) */
+	List	   *defineClause;
+
+	/* Row Pattern DEFINE variable initial names (list of String) */
+	List	   *defineInitial;
+
 	/*
 	 * false for all apart from the WindowAgg that's closest to the root of
 	 * the plan
-- 
2.25.1


----Next_Part(Fri_May_24_11_39_19_2024_763)--
Content-Type: Text/X-Patch; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="v20-0005-Row-pattern-recognition-patch-executor.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread

* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements
@ 2026-06-03 17:15  Andres Freund <[email protected]>
  0 siblings, 0 replies; 124+ messages in thread

From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw)

---
 .github/workflows/pg-ci.yml | 76 ++++++++++++++++++-------------------
 1 file changed, 36 insertions(+), 40 deletions(-)

diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml
index 72d306feb14..a570b9e2c8d 100644
--- a/.github/workflows/pg-ci.yml
+++ b/.github/workflows/pg-ci.yml
@@ -126,7 +126,10 @@ env:
 
 
 jobs:
-  # Parse "ci-os-only: ..." from the commit message and expose flags
+
+  # Job: Determine enabled jobs
+  #
+  # Parses "ci-os-only: ..." from the commit message and exposes flags
   # consumed by the jobs' `if:` conditions.
   setup:
     name: Determine enabled jobs
@@ -144,6 +147,7 @@ jobs:
       # context is not available.
       container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }}
       container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }}
+
     steps:
       # Anchor reused by other jobs further down. GitHub Actions supports YAML
       # anchors/aliases but not merge keys, so the alias copies the whole step
@@ -180,6 +184,8 @@ jobs:
           cat "$GITHUB_OUTPUT"
 
 
+  # Job: SanityCheck
+  #
   # To avoid unnecessarily spinning up a lot of VMs / containers for entirely
   # broken commits, have a minimal task that all others depend on.
   #
@@ -219,6 +225,7 @@ jobs:
     env:
       # no options enabled, should be small
       CCACHE_MAXSIZE: "150M"
+
     steps:
       - *nix_sysinfo_step
 
@@ -238,7 +245,7 @@ jobs:
             ccache-${{ github.job }}-${{ github.ref_name }}-
             ccache-${{ github.job }}-
 
-      - &linux_prepare_workspace
+      - &linux_prepare_workspace_step
         name: Prepare workspace
         run: |
           useradd -m postgres
@@ -271,7 +278,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: &ninja_build_command |
+        run: &ninja_build_cmd |
           ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}}
           ninja -C build -t missingdeps
 
@@ -312,7 +319,7 @@ jobs:
 
           meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}}
 
-      - &linux_collect_cores
+      - &linux_collect_cores_step
         name: Core backtraces
         if: failure() && !cancelled()
         run: src/tools/ci/cores_backtrace.sh linux /tmp/cores
@@ -333,7 +340,7 @@ jobs:
           if-no-files-found: ignore
 
 
-  # Linux, Autoconf
+  # Job: Linux - Autoconf
   #
   # SPECIAL:
   # - Uses undefined & alignment sanitizers (sanitizer failures are typically
@@ -398,7 +405,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -423,11 +430,11 @@ jobs:
         run: |
           make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS}
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 32 bit
+  # Job: Linux - Meson (32-bit)
   #
   # SPECIAL:
   # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures
@@ -458,7 +465,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -474,7 +481,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -515,11 +522,11 @@ jobs:
 
           build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
-  # Linux Meson, 64 bit
+  # Linux - Meson (64-bit)
   #
   # SPECIAL:
   # - Uses address sanitizer, (sanitizer failures are typically printed in the
@@ -546,7 +553,7 @@ jobs:
       - *nix_sysinfo_step
       - *checkout_step
       - *ccache_restore_step
-      - *linux_prepare_workspace
+      - *linux_prepare_workspace_step
 
       - name: Configure
         shell: *su_postgres_shell
@@ -560,7 +567,7 @@ jobs:
 
       - name: Build
         shell: *su_postgres_shell
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -568,10 +575,12 @@ jobs:
         shell: *su_postgres_shell
         run: *meson_test_world_cmd
 
-      - *linux_collect_cores
+      - *linux_collect_cores_step
       - *upload_logs_step
 
 
+  # Job: macOS - Meson
+  #
   # SPECIAL:
   # - Enables --clone for pg_upgrade and pg_combinebackup
   # - Specifies configuration options that test reading/writing/copying of node trees
@@ -628,8 +637,8 @@ jobs:
 
     steps:
       - *nix_sysinfo_step
-
       - *checkout_step
+      - *ccache_restore_step
 
       - name: Setup core files
         run: |
@@ -674,8 +683,6 @@ jobs:
           echo /opt/local/sbin >> "$GITHUB_PATH"
           echo /opt/local/bin >> "$GITHUB_PATH"
 
-      - *ccache_restore_step
-
       - name: Configure
         env:
           PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/
@@ -691,7 +698,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -708,6 +715,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - Visual Studio
   windows-vs:
     name: Windows - Visual Studio
     needs: [setup, sanity-check]
@@ -735,8 +743,9 @@ jobs:
     defaults:
       run:
         shell: cmd
+
     steps:
-      - &windows_disable_defender
+      - &windows_disable_defender_step
         name: Disable Windows Defender
         shell: powershell
         run: |
@@ -821,7 +830,6 @@ jobs:
           if (!$?) { throw 'cmdfail' }
           echo ::endgroup::
 
-
           # Install IPC::Run.
           # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty,
           #   which don't build on Windows ("This module requires a POSIX
@@ -879,6 +887,7 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: Windows - MinGW - Meson
   windows-mingw:
     name: Windows - MinGW - Meson
     needs: [setup, sanity-check]
@@ -912,7 +921,7 @@ jobs:
         shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"'
 
     steps:
-      - *windows_disable_defender
+      - *windows_disable_defender_step
       - *checkout_step
 
       # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to
@@ -981,7 +990,7 @@ jobs:
             build
 
       - name: Build
-        run: *ninja_build_command
+        run: *ninja_build_cmd
 
       - *ccache_save_step
 
@@ -993,6 +1002,8 @@ jobs:
       - *upload_logs_step
 
 
+  # Job: CompilerWarnings
+  #
   # Test that code can be built with both gcc and clang without warnings,
   # with various combinations of cassert/dtrace flags. Trace probes have
   # a history of getting accidentally broken; the matrix is there to
@@ -1017,20 +1028,10 @@ jobs:
       # compilers / flag combinations.
       CCACHE_MAXSIZE: "1G"
       DEFAULT_BUILD: world-bin
+
     steps:
-
-      - name: Sysinfo
-        run: |
-          id
-          uname -a
-          cat /proc/cmdline
-          ulimit -a -H && ulimit -a -S
-          gcc -v
-          clang -v
-          env
-
+      - *nix_sysinfo_step
       - *checkout_step
-
       - *ccache_restore_step
 
       - name: Setup workspace
@@ -1055,7 +1056,6 @@ jobs:
           make -s -j${{env.BUILD_JOBS}} clean
           make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}}
 
-
       # gcc, cassert on, dtrace off
       - name: gcc warnings + (cassert)
         if: ${{ !cancelled() }}
@@ -1065,7 +1065,6 @@ jobs:
           CXX: ccache g++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert off, dtrace off
       - name: clang warnings
         if: ${{ !cancelled() }}
@@ -1075,7 +1074,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       # clang, cassert on, dtrace on
       - name: clang warnings + (cassert + dtrace)
         if: ${{ !cancelled() }}
@@ -1085,7 +1083,6 @@ jobs:
           CXX: ccache clang++
         run: *compiler_warnings_cmd
 
-
       - name: mingw warnings (cross compilation)
         if: ${{ !cancelled() }}
         env:
@@ -1094,7 +1091,6 @@ jobs:
           CXX: ccache x86_64-w64-mingw32ucrt-g++
         run: *compiler_warnings_cmd
 
-
       ###
       # Verify docs can be built
       ###
-- 
2.54.0.380.gc69baaf57b


--lyfxwjjve3vodszg
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment;
	filename="v9a-0017-ci-Don-t-run-setup-twice.patch"



^ permalink  raw  reply  [nested|flat] 124+ messages in thread


end of thread, other threads:[~2026-06-03 17:15 UTC | newest]

Thread overview: 124+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2024-05-24 02:26 [PATCH v20 4/8] Row pattern recognition patch (planner). Tatsuo Ishii <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>
2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <[email protected]>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox