agora inbox for pgsql-hackers@postgresql.orghelp / color / mirror / Atom feed
[PATCH v44 06/10] rename routines on the logical output plugin side 478+ messages / 2 participants [nested] [flat]
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <alvherre@kurilemu.de> 0 siblings, 0 replies; 478+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 478+ 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] 478+ messages in thread
end of thread, other threads:[~2026-06-03 17:15 UTC | newest] Thread overview: 478+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <alvherre@kurilemu.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox