agora inbox for [email protected]
help / color / mirror / Atom feed[PATCH v29 01/11] Add a syntax to create Incrementally Maintainable Materialized Views
115+ messages / 2 participants
[nested] [flat]
* [PATCH v29 01/11] Add a syntax to create Incrementally Maintainable Materialized Views
@ 2019-12-20 01:05 Yugo Nagata <[email protected]>
0 siblings, 0 replies; 115+ messages in thread
From: Yugo Nagata @ 2019-12-20 01:05 UTC (permalink / raw)
Allow to create Incrementally Maintainable Materialized View (IMMV)
by using INCREMENTAL option in CREATE MATERIALIZED VIEW command
as follow:
CREATE [INCREMANTAL] MATERIALIZED VIEW xxxxx AS SELECT ....;
---
src/backend/parser/gram.y | 32 +++++++++++++++++++++-----------
src/include/nodes/primnodes.h | 1 +
src/include/parser/kwlist.h | 1 +
3 files changed, 23 insertions(+), 11 deletions(-)
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 7d2032885e..33c647b0c7 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -465,6 +465,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
%type <range> OptTempTableName
%type <into> into_clause create_as_target create_mv_target
+%type <boolean> incremental
%type <defelt> createfunc_opt_item common_func_opt_item dostmt_opt_item
%type <fun_param> func_arg func_arg_with_default table_func_column aggr_arg
@@ -718,7 +719,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
HANDLER HAVING HEADER_P HOLD HOUR_P
IDENTITY_P IF_P ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IMPORT_P IN_P INCLUDE
- INCLUDING INCREMENT INDENT INDEX INDEXES INHERIT INHERITS INITIALLY INLINE_P
+ INCLUDING INCREMENT INCREMENTAL INDENT INDEX INDEXES INHERIT INHERITS INITIALLY INLINE_P
INNER_P INOUT INPUT_P INSENSITIVE INSERT INSTEAD INT_P INTEGER
INTERSECT INTERVAL INTO INVOKER IS ISNULL ISOLATION
@@ -4652,32 +4653,34 @@ opt_with_data:
*****************************************************************************/
CreateMatViewStmt:
- CREATE OptNoLog MATERIALIZED VIEW create_mv_target AS SelectStmt opt_with_data
+ CREATE OptNoLog incremental MATERIALIZED VIEW create_mv_target AS SelectStmt opt_with_data
{
CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
- ctas->query = $7;
- ctas->into = $5;
+ ctas->query = $8;
+ ctas->into = $6;
ctas->objtype = OBJECT_MATVIEW;
ctas->is_select_into = false;
ctas->if_not_exists = false;
/* cram additional flags into the IntoClause */
- $5->rel->relpersistence = $2;
- $5->skipData = !($8);
+ $6->rel->relpersistence = $2;
+ $6->skipData = !($9);
+ $6->ivm = $3;
$$ = (Node *) ctas;
}
- | CREATE OptNoLog MATERIALIZED VIEW IF_P NOT EXISTS create_mv_target AS SelectStmt opt_with_data
+ | CREATE OptNoLog incremental MATERIALIZED VIEW IF_P NOT EXISTS create_mv_target AS SelectStmt opt_with_data
{
CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
- ctas->query = $10;
- ctas->into = $8;
+ ctas->query = $11;
+ ctas->into = $9;
ctas->objtype = OBJECT_MATVIEW;
ctas->is_select_into = false;
ctas->if_not_exists = true;
/* cram additional flags into the IntoClause */
- $8->rel->relpersistence = $2;
- $8->skipData = !($11);
+ $9->rel->relpersistence = $2;
+ $9->skipData = !($12);
+ $9->ivm = $3;
$$ = (Node *) ctas;
}
;
@@ -4694,9 +4697,14 @@ create_mv_target:
$$->tableSpaceName = $5;
$$->viewQuery = NULL; /* filled at analysis time */
$$->skipData = false; /* might get changed later */
+ $$->ivm = false;
}
;
+incremental: INCREMENTAL { $$ = true; }
+ | /*EMPTY*/ { $$ = false; }
+ ;
+
OptNoLog: UNLOGGED { $$ = RELPERSISTENCE_UNLOGGED; }
| /*EMPTY*/ { $$ = RELPERSISTENCE_PERMANENT; }
;
@@ -17141,6 +17149,7 @@ unreserved_keyword:
| INCLUDE
| INCLUDING
| INCREMENT
+ | INCREMENTAL
| INDENT
| INDEX
| INDEXES
@@ -17709,6 +17718,7 @@ bare_label_keyword:
| INCLUDE
| INCLUDING
| INCREMENT
+ | INCREMENTAL
| INDENT
| INDEX
| INDEXES
diff --git a/src/include/nodes/primnodes.h b/src/include/nodes/primnodes.h
index 60d72a876b..cecb968b36 100644
--- a/src/include/nodes/primnodes.h
+++ b/src/include/nodes/primnodes.h
@@ -146,6 +146,7 @@ typedef struct IntoClause
/* materialized view's SELECT query */
Node *viewQuery pg_node_attr(query_jumble_ignore);
bool skipData; /* true for WITH NO DATA */
+ bool ivm; /* true for WITH IVM */
} IntoClause;
diff --git a/src/include/parser/kwlist.h b/src/include/parser/kwlist.h
index 5984dcfa4b..d60eb98d65 100644
--- a/src/include/parser/kwlist.h
+++ b/src/include/parser/kwlist.h
@@ -207,6 +207,7 @@ PG_KEYWORD("in", IN_P, RESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("include", INCLUDE, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("including", INCLUDING, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("increment", INCREMENT, UNRESERVED_KEYWORD, BARE_LABEL)
+PG_KEYWORD("incremental", INCREMENTAL, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("indent", INDENT, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("index", INDEX, UNRESERVED_KEYWORD, BARE_LABEL)
PG_KEYWORD("indexes", INDEXES, UNRESERVED_KEYWORD, BARE_LABEL)
--
2.25.1
--Multipart=_Mon__28_Aug_2023_16_05_30_+0900_b1OvQD_3A3ZMTGvj
Content-Type: text/x-diff;
name="v29-0002-Add-relisivm-column-to-pg_class-system-catalog.patch"
Content-Disposition: attachment;
filename="v29-0002-Add-relisivm-column-to-pg_class-system-catalog.patch"
Content-Transfer-Encoding: 7bit
^ permalink raw reply [nested|flat] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ 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; 115+ 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] 115+ messages in thread
end of thread, other threads:[~2026-06-03 17:15 UTC | newest]
Thread overview: 115+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2019-12-20 01:05 [PATCH v29 01/11] Add a syntax to create Incrementally Maintainable Materialized Views Yugo Nagata <[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